diff --git a/artifacts/build-info/7d80f87a51d3a5d7ae3341681c898b45.json b/artifacts/build-info/7d80f87a51d3a5d7ae3341681c898b45.json new file mode 100644 index 0000000..6304c94 --- /dev/null +++ b/artifacts/build-info/7d80f87a51d3a5d7ae3341681c898b45.json @@ -0,0 +1 @@ +{"id":"7d80f87a51d3a5d7ae3341681c898b45","_format":"hh-sol-build-info-1","solcVersion":"0.8.28","solcLongVersion":"0.8.28+commit.7893614a","input":{"language":"Solidity","sources":{"src/Upgrades.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity <0.9.0 >=0.4.22 >=0.6.2 ^0.8.0 ^0.8.20;\npragma experimental ABIEncoderV2;\n\n// lib/forge-std/src/Vm.sol\n// Automatically @generated by scripts/vm.py. Do not modify manually.\n\n/// The `VmSafe` interface does not allow manipulation of the EVM state or other actions that may\n/// result in Script simulations differing from on-chain execution. It is recommended to only use\n/// these cheats in scripts.\ninterface VmSafe {\n /// A modification applied to either `msg.sender` or `tx.origin`. Returned by `readCallers`.\n enum CallerMode {\n // No caller modification is currently active.\n None,\n // A one time broadcast triggered by a `vm.broadcast()` call is currently active.\n Broadcast,\n // A recurrent broadcast triggered by a `vm.startBroadcast()` call is currently active.\n RecurrentBroadcast,\n // A one time prank triggered by a `vm.prank()` call is currently active.\n Prank,\n // A recurrent prank triggered by a `vm.startPrank()` call is currently active.\n RecurrentPrank\n }\n\n /// The kind of account access that occurred.\n enum AccountAccessKind {\n // The account was called.\n Call,\n // The account was called via delegatecall.\n DelegateCall,\n // The account was called via callcode.\n CallCode,\n // The account was called via staticcall.\n StaticCall,\n // The account was created.\n Create,\n // The account was selfdestructed.\n SelfDestruct,\n // Synthetic access indicating the current context has resumed after a previous sub-context (AccountAccess).\n Resume,\n // The account's balance was read.\n Balance,\n // The account's codesize was read.\n Extcodesize,\n // The account's codehash was read.\n Extcodehash,\n // The account's code was copied.\n Extcodecopy\n }\n\n /// Forge execution contexts.\n enum ForgeContext {\n // Test group execution context (test, coverage or snapshot).\n TestGroup,\n // `forge test` execution context.\n Test,\n // `forge coverage` execution context.\n Coverage,\n // `forge snapshot` execution context.\n Snapshot,\n // Script group execution context (dry run, broadcast or resume).\n ScriptGroup,\n // `forge script` execution context.\n ScriptDryRun,\n // `forge script --broadcast` execution context.\n ScriptBroadcast,\n // `forge script --resume` execution context.\n ScriptResume,\n // Unknown `forge` execution context.\n Unknown\n }\n\n /// An Ethereum log. Returned by `getRecordedLogs`.\n struct Log {\n // The topics of the log, including the signature, if any.\n bytes32[] topics;\n // The raw data of the log.\n bytes data;\n // The address of the log's emitter.\n address emitter;\n }\n\n /// An RPC URL and its alias. Returned by `rpcUrlStructs`.\n struct Rpc {\n // The alias of the RPC URL.\n string key;\n // The RPC URL.\n string url;\n }\n\n /// An RPC log object. Returned by `eth_getLogs`.\n struct EthGetLogs {\n // The address of the log's emitter.\n address emitter;\n // The topics of the log, including the signature, if any.\n bytes32[] topics;\n // The raw data of the log.\n bytes data;\n // The block hash.\n bytes32 blockHash;\n // The block number.\n uint64 blockNumber;\n // The transaction hash.\n bytes32 transactionHash;\n // The transaction index in the block.\n uint64 transactionIndex;\n // The log index.\n uint256 logIndex;\n // Whether the log was removed.\n bool removed;\n }\n\n /// A single entry in a directory listing. Returned by `readDir`.\n struct DirEntry {\n // The error message, if any.\n string errorMessage;\n // The path of the entry.\n string path;\n // The depth of the entry.\n uint64 depth;\n // Whether the entry is a directory.\n bool isDir;\n // Whether the entry is a symlink.\n bool isSymlink;\n }\n\n /// Metadata information about a file.\n /// This structure is returned from the `fsMetadata` function and represents known\n /// metadata about a file such as its permissions, size, modification\n /// times, etc.\n struct FsMetadata {\n // True if this metadata is for a directory.\n bool isDir;\n // True if this metadata is for a symlink.\n bool isSymlink;\n // The size of the file, in bytes, this metadata is for.\n uint256 length;\n // True if this metadata is for a readonly (unwritable) file.\n bool readOnly;\n // The last modification time listed in this metadata.\n uint256 modified;\n // The last access time of this metadata.\n uint256 accessed;\n // The creation time listed in this metadata.\n uint256 created;\n }\n\n /// A wallet with a public and private key.\n struct Wallet {\n // The wallet's address.\n address addr;\n // The wallet's public key `X`.\n uint256 publicKeyX;\n // The wallet's public key `Y`.\n uint256 publicKeyY;\n // The wallet's private key.\n uint256 privateKey;\n }\n\n /// The result of a `tryFfi` call.\n struct FfiResult {\n // The exit code of the call.\n int32 exitCode;\n // The optionally hex-decoded `stdout` data.\n bytes stdout;\n // The `stderr` data.\n bytes stderr;\n }\n\n /// Information on the chain and fork.\n struct ChainInfo {\n // The fork identifier. Set to zero if no fork is active.\n uint256 forkId;\n // The chain ID of the current fork.\n uint256 chainId;\n }\n\n /// The result of a `stopAndReturnStateDiff` call.\n struct AccountAccess {\n // The chain and fork the access occurred.\n ChainInfo chainInfo;\n // The kind of account access that determines what the account is.\n // If kind is Call, DelegateCall, StaticCall or CallCode, then the account is the callee.\n // If kind is Create, then the account is the newly created account.\n // If kind is SelfDestruct, then the account is the selfdestruct recipient.\n // If kind is a Resume, then account represents a account context that has resumed.\n AccountAccessKind kind;\n // The account that was accessed.\n // It's either the account created, callee or a selfdestruct recipient for CREATE, CALL or SELFDESTRUCT.\n address account;\n // What accessed the account.\n address accessor;\n // If the account was initialized or empty prior to the access.\n // An account is considered initialized if it has code, a\n // non-zero nonce, or a non-zero balance.\n bool initialized;\n // The previous balance of the accessed account.\n uint256 oldBalance;\n // The potential new balance of the accessed account.\n // That is, all balance changes are recorded here, even if reverts occurred.\n uint256 newBalance;\n // Code of the account deployed by CREATE.\n bytes deployedCode;\n // Value passed along with the account access\n uint256 value;\n // Input data provided to the CREATE or CALL\n bytes data;\n // If this access reverted in either the current or parent context.\n bool reverted;\n // An ordered list of storage accesses made during an account access operation.\n StorageAccess[] storageAccesses;\n // Call depth traversed during the recording of state differences\n uint64 depth;\n }\n\n /// The storage accessed during an `AccountAccess`.\n struct StorageAccess {\n // The account whose storage was accessed.\n address account;\n // The slot that was accessed.\n bytes32 slot;\n // If the access was a write.\n bool isWrite;\n // The previous value of the slot.\n bytes32 previousValue;\n // The new value of the slot.\n bytes32 newValue;\n // If the access was reverted.\n bool reverted;\n }\n\n /// Gas used. Returned by `lastCallGas`.\n struct Gas {\n // The gas limit of the call.\n uint64 gasLimit;\n // The total gas used.\n uint64 gasTotalUsed;\n // DEPRECATED: The amount of gas used for memory expansion. Ref: \n uint64 gasMemoryUsed;\n // The amount of gas refunded.\n int64 gasRefunded;\n // The amount of gas remaining.\n uint64 gasRemaining;\n }\n\n // ======== Crypto ========\n\n /// Derives a private key from the name, labels the account with that name, and returns the wallet.\n function createWallet(string calldata walletLabel) external returns (Wallet memory wallet);\n\n /// Generates a wallet from the private key and returns the wallet.\n function createWallet(uint256 privateKey) external returns (Wallet memory wallet);\n\n /// Generates a wallet from the private key, labels the account with that name, and returns the wallet.\n function createWallet(uint256 privateKey, string calldata walletLabel) external returns (Wallet memory wallet);\n\n /// Derive a private key from a provided mnenomic string (or mnenomic file path)\n /// at the derivation path `m/44'/60'/0'/0/{index}`.\n function deriveKey(string calldata mnemonic, uint32 index) external pure returns (uint256 privateKey);\n\n /// Derive a private key from a provided mnenomic string (or mnenomic file path)\n /// at `{derivationPath}{index}`.\n function deriveKey(string calldata mnemonic, string calldata derivationPath, uint32 index)\n external\n pure\n returns (uint256 privateKey);\n\n /// Derive a private key from a provided mnenomic string (or mnenomic file path) in the specified language\n /// at the derivation path `m/44'/60'/0'/0/{index}`.\n function deriveKey(string calldata mnemonic, uint32 index, string calldata language)\n external\n pure\n returns (uint256 privateKey);\n\n /// Derive a private key from a provided mnenomic string (or mnenomic file path) in the specified language\n /// at `{derivationPath}{index}`.\n function deriveKey(string calldata mnemonic, string calldata derivationPath, uint32 index, string calldata language)\n external\n pure\n returns (uint256 privateKey);\n\n /// Adds a private key to the local forge wallet and returns the address.\n function rememberKey(uint256 privateKey) external returns (address keyAddr);\n\n /// Signs data with a `Wallet`.\n /// Returns a compact signature (`r`, `vs`) as per EIP-2098, where `vs` encodes both the\n /// signature's `s` value, and the recovery id `v` in a single bytes32.\n /// This format reduces the signature size from 65 to 64 bytes.\n function signCompact(Wallet calldata wallet, bytes32 digest) external returns (bytes32 r, bytes32 vs);\n\n /// Signs `digest` with `privateKey` using the secp256k1 curve.\n /// Returns a compact signature (`r`, `vs`) as per EIP-2098, where `vs` encodes both the\n /// signature's `s` value, and the recovery id `v` in a single bytes32.\n /// This format reduces the signature size from 65 to 64 bytes.\n function signCompact(uint256 privateKey, bytes32 digest) external pure returns (bytes32 r, bytes32 vs);\n\n /// Signs `digest` with signer provided to script using the secp256k1 curve.\n /// Returns a compact signature (`r`, `vs`) as per EIP-2098, where `vs` encodes both the\n /// signature's `s` value, and the recovery id `v` in a single bytes32.\n /// This format reduces the signature size from 65 to 64 bytes.\n /// If `--sender` is provided, the signer with provided address is used, otherwise,\n /// if exactly one signer is provided to the script, that signer is used.\n /// Raises error if signer passed through `--sender` does not match any unlocked signers or\n /// if `--sender` is not provided and not exactly one signer is passed to the script.\n function signCompact(bytes32 digest) external pure returns (bytes32 r, bytes32 vs);\n\n /// Signs `digest` with signer provided to script using the secp256k1 curve.\n /// Returns a compact signature (`r`, `vs`) as per EIP-2098, where `vs` encodes both the\n /// signature's `s` value, and the recovery id `v` in a single bytes32.\n /// This format reduces the signature size from 65 to 64 bytes.\n /// Raises error if none of the signers passed into the script have provided address.\n function signCompact(address signer, bytes32 digest) external pure returns (bytes32 r, bytes32 vs);\n\n /// Signs `digest` with `privateKey` using the secp256r1 curve.\n function signP256(uint256 privateKey, bytes32 digest) external pure returns (bytes32 r, bytes32 s);\n\n /// Signs data with a `Wallet`.\n function sign(Wallet calldata wallet, bytes32 digest) external returns (uint8 v, bytes32 r, bytes32 s);\n\n /// Signs `digest` with `privateKey` using the secp256k1 curve.\n function sign(uint256 privateKey, bytes32 digest) external pure returns (uint8 v, bytes32 r, bytes32 s);\n\n /// Signs `digest` with signer provided to script using the secp256k1 curve.\n /// If `--sender` is provided, the signer with provided address is used, otherwise,\n /// if exactly one signer is provided to the script, that signer is used.\n /// Raises error if signer passed through `--sender` does not match any unlocked signers or\n /// if `--sender` is not provided and not exactly one signer is passed to the script.\n function sign(bytes32 digest) external pure returns (uint8 v, bytes32 r, bytes32 s);\n\n /// Signs `digest` with signer provided to script using the secp256k1 curve.\n /// Raises error if none of the signers passed into the script have provided address.\n function sign(address signer, bytes32 digest) external pure returns (uint8 v, bytes32 r, bytes32 s);\n\n // ======== Environment ========\n\n /// Gets the environment variable `name` and parses it as `address`.\n /// Reverts if the variable was not found or could not be parsed.\n function envAddress(string calldata name) external view returns (address value);\n\n /// Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`.\n /// Reverts if the variable was not found or could not be parsed.\n function envAddress(string calldata name, string calldata delim) external view returns (address[] memory value);\n\n /// Gets the environment variable `name` and parses it as `bool`.\n /// Reverts if the variable was not found or could not be parsed.\n function envBool(string calldata name) external view returns (bool value);\n\n /// Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`.\n /// Reverts if the variable was not found or could not be parsed.\n function envBool(string calldata name, string calldata delim) external view returns (bool[] memory value);\n\n /// Gets the environment variable `name` and parses it as `bytes32`.\n /// Reverts if the variable was not found or could not be parsed.\n function envBytes32(string calldata name) external view returns (bytes32 value);\n\n /// Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`.\n /// Reverts if the variable was not found or could not be parsed.\n function envBytes32(string calldata name, string calldata delim) external view returns (bytes32[] memory value);\n\n /// Gets the environment variable `name` and parses it as `bytes`.\n /// Reverts if the variable was not found or could not be parsed.\n function envBytes(string calldata name) external view returns (bytes memory value);\n\n /// Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`.\n /// Reverts if the variable was not found or could not be parsed.\n function envBytes(string calldata name, string calldata delim) external view returns (bytes[] memory value);\n\n /// Gets the environment variable `name` and returns true if it exists, else returns false.\n function envExists(string calldata name) external view returns (bool result);\n\n /// Gets the environment variable `name` and parses it as `int256`.\n /// Reverts if the variable was not found or could not be parsed.\n function envInt(string calldata name) external view returns (int256 value);\n\n /// Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`.\n /// Reverts if the variable was not found or could not be parsed.\n function envInt(string calldata name, string calldata delim) external view returns (int256[] memory value);\n\n /// Gets the environment variable `name` and parses it as `bool`.\n /// Reverts if the variable could not be parsed.\n /// Returns `defaultValue` if the variable was not found.\n function envOr(string calldata name, bool defaultValue) external view returns (bool value);\n\n /// Gets the environment variable `name` and parses it as `uint256`.\n /// Reverts if the variable could not be parsed.\n /// Returns `defaultValue` if the variable was not found.\n function envOr(string calldata name, uint256 defaultValue) external view returns (uint256 value);\n\n /// Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`.\n /// Reverts if the variable could not be parsed.\n /// Returns `defaultValue` if the variable was not found.\n function envOr(string calldata name, string calldata delim, address[] calldata defaultValue)\n external\n view\n returns (address[] memory value);\n\n /// Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`.\n /// Reverts if the variable could not be parsed.\n /// Returns `defaultValue` if the variable was not found.\n function envOr(string calldata name, string calldata delim, bytes32[] calldata defaultValue)\n external\n view\n returns (bytes32[] memory value);\n\n /// Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`.\n /// Reverts if the variable could not be parsed.\n /// Returns `defaultValue` if the variable was not found.\n function envOr(string calldata name, string calldata delim, string[] calldata defaultValue)\n external\n view\n returns (string[] memory value);\n\n /// Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`.\n /// Reverts if the variable could not be parsed.\n /// Returns `defaultValue` if the variable was not found.\n function envOr(string calldata name, string calldata delim, bytes[] calldata defaultValue)\n external\n view\n returns (bytes[] memory value);\n\n /// Gets the environment variable `name` and parses it as `int256`.\n /// Reverts if the variable could not be parsed.\n /// Returns `defaultValue` if the variable was not found.\n function envOr(string calldata name, int256 defaultValue) external view returns (int256 value);\n\n /// Gets the environment variable `name` and parses it as `address`.\n /// Reverts if the variable could not be parsed.\n /// Returns `defaultValue` if the variable was not found.\n function envOr(string calldata name, address defaultValue) external view returns (address value);\n\n /// Gets the environment variable `name` and parses it as `bytes32`.\n /// Reverts if the variable could not be parsed.\n /// Returns `defaultValue` if the variable was not found.\n function envOr(string calldata name, bytes32 defaultValue) external view returns (bytes32 value);\n\n /// Gets the environment variable `name` and parses it as `string`.\n /// Reverts if the variable could not be parsed.\n /// Returns `defaultValue` if the variable was not found.\n function envOr(string calldata name, string calldata defaultValue) external view returns (string memory value);\n\n /// Gets the environment variable `name` and parses it as `bytes`.\n /// Reverts if the variable could not be parsed.\n /// Returns `defaultValue` if the variable was not found.\n function envOr(string calldata name, bytes calldata defaultValue) external view returns (bytes memory value);\n\n /// Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`.\n /// Reverts if the variable could not be parsed.\n /// Returns `defaultValue` if the variable was not found.\n function envOr(string calldata name, string calldata delim, bool[] calldata defaultValue)\n external\n view\n returns (bool[] memory value);\n\n /// Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`.\n /// Reverts if the variable could not be parsed.\n /// Returns `defaultValue` if the variable was not found.\n function envOr(string calldata name, string calldata delim, uint256[] calldata defaultValue)\n external\n view\n returns (uint256[] memory value);\n\n /// Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`.\n /// Reverts if the variable could not be parsed.\n /// Returns `defaultValue` if the variable was not found.\n function envOr(string calldata name, string calldata delim, int256[] calldata defaultValue)\n external\n view\n returns (int256[] memory value);\n\n /// Gets the environment variable `name` and parses it as `string`.\n /// Reverts if the variable was not found or could not be parsed.\n function envString(string calldata name) external view returns (string memory value);\n\n /// Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`.\n /// Reverts if the variable was not found or could not be parsed.\n function envString(string calldata name, string calldata delim) external view returns (string[] memory value);\n\n /// Gets the environment variable `name` and parses it as `uint256`.\n /// Reverts if the variable was not found or could not be parsed.\n function envUint(string calldata name) external view returns (uint256 value);\n\n /// Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`.\n /// Reverts if the variable was not found or could not be parsed.\n function envUint(string calldata name, string calldata delim) external view returns (uint256[] memory value);\n\n /// Returns true if `forge` command was executed in given context.\n function isContext(ForgeContext context) external view returns (bool result);\n\n /// Sets environment variables.\n function setEnv(string calldata name, string calldata value) external;\n\n // ======== EVM ========\n\n /// Gets all accessed reads and write slot from a `vm.record` session, for a given address.\n function accesses(address target) external returns (bytes32[] memory readSlots, bytes32[] memory writeSlots);\n\n /// Gets the address for a given private key.\n function addr(uint256 privateKey) external pure returns (address keyAddr);\n\n /// Gets all the logs according to specified filter.\n function eth_getLogs(uint256 fromBlock, uint256 toBlock, address target, bytes32[] calldata topics)\n external\n returns (EthGetLogs[] memory logs);\n\n /// Gets the current `block.blobbasefee`.\n /// You should use this instead of `block.blobbasefee` if you use `vm.blobBaseFee`, as `block.blobbasefee` is assumed to be constant across a transaction,\n /// and as a result will get optimized out by the compiler.\n /// See https://github.com/foundry-rs/foundry/issues/6180\n function getBlobBaseFee() external view returns (uint256 blobBaseFee);\n\n /// Gets the current `block.number`.\n /// You should use this instead of `block.number` if you use `vm.roll`, as `block.number` is assumed to be constant across a transaction,\n /// and as a result will get optimized out by the compiler.\n /// See https://github.com/foundry-rs/foundry/issues/6180\n function getBlockNumber() external view returns (uint256 height);\n\n /// Gets the current `block.timestamp`.\n /// You should use this instead of `block.timestamp` if you use `vm.warp`, as `block.timestamp` is assumed to be constant across a transaction,\n /// and as a result will get optimized out by the compiler.\n /// See https://github.com/foundry-rs/foundry/issues/6180\n function getBlockTimestamp() external view returns (uint256 timestamp);\n\n /// Gets the map key and parent of a mapping at a given slot, for a given address.\n function getMappingKeyAndParentOf(address target, bytes32 elementSlot)\n external\n returns (bool found, bytes32 key, bytes32 parent);\n\n /// Gets the number of elements in the mapping at the given slot, for a given address.\n function getMappingLength(address target, bytes32 mappingSlot) external returns (uint256 length);\n\n /// Gets the elements at index idx of the mapping at the given slot, for a given address. The\n /// index must be less than the length of the mapping (i.e. the number of keys in the mapping).\n function getMappingSlotAt(address target, bytes32 mappingSlot, uint256 idx) external returns (bytes32 value);\n\n /// Gets the nonce of an account.\n function getNonce(address account) external view returns (uint64 nonce);\n\n /// Get the nonce of a `Wallet`.\n function getNonce(Wallet calldata wallet) external returns (uint64 nonce);\n\n /// Gets all the recorded logs.\n function getRecordedLogs() external returns (Log[] memory logs);\n\n /// Gets the gas used in the last call.\n function lastCallGas() external view returns (Gas memory gas);\n\n /// Loads a storage slot from an address.\n function load(address target, bytes32 slot) external view returns (bytes32 data);\n\n /// Pauses gas metering (i.e. gas usage is not counted). Noop if already paused.\n function pauseGasMetering() external;\n\n /// Records all storage reads and writes.\n function record() external;\n\n /// Record all the transaction logs.\n function recordLogs() external;\n\n /// Resumes gas metering (i.e. gas usage is counted again). Noop if already on.\n function resumeGasMetering() external;\n\n /// Performs an Ethereum JSON-RPC request to the current fork URL.\n function rpc(string calldata method, string calldata params) external returns (bytes memory data);\n\n /// Performs an Ethereum JSON-RPC request to the given endpoint.\n function rpc(string calldata urlOrAlias, string calldata method, string calldata params)\n external\n returns (bytes memory data);\n\n /// Starts recording all map SSTOREs for later retrieval.\n function startMappingRecording() external;\n\n /// Record all account accesses as part of CREATE, CALL or SELFDESTRUCT opcodes in order,\n /// along with the context of the calls\n function startStateDiffRecording() external;\n\n /// Returns an ordered array of all account accesses from a `vm.startStateDiffRecording` session.\n function stopAndReturnStateDiff() external returns (AccountAccess[] memory accountAccesses);\n\n /// Stops recording all map SSTOREs for later retrieval and clears the recorded data.\n function stopMappingRecording() external;\n\n // ======== Filesystem ========\n\n /// Closes file for reading, resetting the offset and allowing to read it from beginning with readLine.\n /// `path` is relative to the project root.\n function closeFile(string calldata path) external;\n\n /// Copies the contents of one file to another. This function will **overwrite** the contents of `to`.\n /// On success, the total number of bytes copied is returned and it is equal to the length of the `to` file as reported by `metadata`.\n /// Both `from` and `to` are relative to the project root.\n function copyFile(string calldata from, string calldata to) external returns (uint64 copied);\n\n /// Creates a new, empty directory at the provided path.\n /// This cheatcode will revert in the following situations, but is not limited to just these cases:\n /// - User lacks permissions to modify `path`.\n /// - A parent of the given path doesn't exist and `recursive` is false.\n /// - `path` already exists and `recursive` is false.\n /// `path` is relative to the project root.\n function createDir(string calldata path, bool recursive) external;\n\n /// Deploys a contract from an artifact file. Takes in the relative path to the json file or the path to the\n /// artifact in the form of :: where and parts are optional.\n function deployCode(string calldata artifactPath) external returns (address deployedAddress);\n\n /// Deploys a contract from an artifact file. Takes in the relative path to the json file or the path to the\n /// artifact in the form of :: where and parts are optional.\n /// Additionaly accepts abi-encoded constructor arguments.\n function deployCode(string calldata artifactPath, bytes calldata constructorArgs)\n external\n returns (address deployedAddress);\n\n /// Returns true if the given path points to an existing entity, else returns false.\n function exists(string calldata path) external returns (bool result);\n\n /// Performs a foreign function call via the terminal.\n function ffi(string[] calldata commandInput) external returns (bytes memory result);\n\n /// Given a path, query the file system to get information about a file, directory, etc.\n function fsMetadata(string calldata path) external view returns (FsMetadata memory metadata);\n\n /// Gets the creation bytecode from an artifact file. Takes in the relative path to the json file or the path to the\n /// artifact in the form of :: where and parts are optional.\n function getCode(string calldata artifactPath) external view returns (bytes memory creationBytecode);\n\n /// Gets the deployed bytecode from an artifact file. Takes in the relative path to the json file or the path to the\n /// artifact in the form of :: where and parts are optional.\n function getDeployedCode(string calldata artifactPath) external view returns (bytes memory runtimeBytecode);\n\n /// Returns true if the path exists on disk and is pointing at a directory, else returns false.\n function isDir(string calldata path) external returns (bool result);\n\n /// Returns true if the path exists on disk and is pointing at a regular file, else returns false.\n function isFile(string calldata path) external returns (bool result);\n\n /// Get the path of the current project root.\n function projectRoot() external view returns (string memory path);\n\n /// Prompts the user for a string value in the terminal.\n function prompt(string calldata promptText) external returns (string memory input);\n\n /// Prompts the user for an address in the terminal.\n function promptAddress(string calldata promptText) external returns (address);\n\n /// Prompts the user for a hidden string value in the terminal.\n function promptSecret(string calldata promptText) external returns (string memory input);\n\n /// Prompts the user for hidden uint256 in the terminal (usually pk).\n function promptSecretUint(string calldata promptText) external returns (uint256);\n\n /// Prompts the user for uint256 in the terminal.\n function promptUint(string calldata promptText) external returns (uint256);\n\n /// Reads the directory at the given path recursively, up to `maxDepth`.\n /// `maxDepth` defaults to 1, meaning only the direct children of the given directory will be returned.\n /// Follows symbolic links if `followLinks` is true.\n function readDir(string calldata path) external view returns (DirEntry[] memory entries);\n\n /// See `readDir(string)`.\n function readDir(string calldata path, uint64 maxDepth) external view returns (DirEntry[] memory entries);\n\n /// See `readDir(string)`.\n function readDir(string calldata path, uint64 maxDepth, bool followLinks)\n external\n view\n returns (DirEntry[] memory entries);\n\n /// Reads the entire content of file to string. `path` is relative to the project root.\n function readFile(string calldata path) external view returns (string memory data);\n\n /// Reads the entire content of file as binary. `path` is relative to the project root.\n function readFileBinary(string calldata path) external view returns (bytes memory data);\n\n /// Reads next line of file to string.\n function readLine(string calldata path) external view returns (string memory line);\n\n /// Reads a symbolic link, returning the path that the link points to.\n /// This cheatcode will revert in the following situations, but is not limited to just these cases:\n /// - `path` is not a symbolic link.\n /// - `path` does not exist.\n function readLink(string calldata linkPath) external view returns (string memory targetPath);\n\n /// Removes a directory at the provided path.\n /// This cheatcode will revert in the following situations, but is not limited to just these cases:\n /// - `path` doesn't exist.\n /// - `path` isn't a directory.\n /// - User lacks permissions to modify `path`.\n /// - The directory is not empty and `recursive` is false.\n /// `path` is relative to the project root.\n function removeDir(string calldata path, bool recursive) external;\n\n /// Removes a file from the filesystem.\n /// This cheatcode will revert in the following situations, but is not limited to just these cases:\n /// - `path` points to a directory.\n /// - The file doesn't exist.\n /// - The user lacks permissions to remove the file.\n /// `path` is relative to the project root.\n function removeFile(string calldata path) external;\n\n /// Performs a foreign function call via terminal and returns the exit code, stdout, and stderr.\n function tryFfi(string[] calldata commandInput) external returns (FfiResult memory result);\n\n /// Returns the time since unix epoch in milliseconds.\n function unixTime() external returns (uint256 milliseconds);\n\n /// Writes data to file, creating a file if it does not exist, and entirely replacing its contents if it does.\n /// `path` is relative to the project root.\n function writeFile(string calldata path, string calldata data) external;\n\n /// Writes binary data to a file, creating a file if it does not exist, and entirely replacing its contents if it does.\n /// `path` is relative to the project root.\n function writeFileBinary(string calldata path, bytes calldata data) external;\n\n /// Writes line to file, creating a file if it does not exist.\n /// `path` is relative to the project root.\n function writeLine(string calldata path, string calldata data) external;\n\n // ======== JSON ========\n\n /// Checks if `key` exists in a JSON object\n /// `keyExists` is being deprecated in favor of `keyExistsJson`. It will be removed in future versions.\n function keyExists(string calldata json, string calldata key) external view returns (bool);\n\n /// Checks if `key` exists in a JSON object.\n function keyExistsJson(string calldata json, string calldata key) external view returns (bool);\n\n /// Parses a string of JSON data at `key` and coerces it to `address`.\n function parseJsonAddress(string calldata json, string calldata key) external pure returns (address);\n\n /// Parses a string of JSON data at `key` and coerces it to `address[]`.\n function parseJsonAddressArray(string calldata json, string calldata key)\n external\n pure\n returns (address[] memory);\n\n /// Parses a string of JSON data at `key` and coerces it to `bool`.\n function parseJsonBool(string calldata json, string calldata key) external pure returns (bool);\n\n /// Parses a string of JSON data at `key` and coerces it to `bool[]`.\n function parseJsonBoolArray(string calldata json, string calldata key) external pure returns (bool[] memory);\n\n /// Parses a string of JSON data at `key` and coerces it to `bytes`.\n function parseJsonBytes(string calldata json, string calldata key) external pure returns (bytes memory);\n\n /// Parses a string of JSON data at `key` and coerces it to `bytes32`.\n function parseJsonBytes32(string calldata json, string calldata key) external pure returns (bytes32);\n\n /// Parses a string of JSON data at `key` and coerces it to `bytes32[]`.\n function parseJsonBytes32Array(string calldata json, string calldata key)\n external\n pure\n returns (bytes32[] memory);\n\n /// Parses a string of JSON data at `key` and coerces it to `bytes[]`.\n function parseJsonBytesArray(string calldata json, string calldata key) external pure returns (bytes[] memory);\n\n /// Parses a string of JSON data at `key` and coerces it to `int256`.\n function parseJsonInt(string calldata json, string calldata key) external pure returns (int256);\n\n /// Parses a string of JSON data at `key` and coerces it to `int256[]`.\n function parseJsonIntArray(string calldata json, string calldata key) external pure returns (int256[] memory);\n\n /// Returns an array of all the keys in a JSON object.\n function parseJsonKeys(string calldata json, string calldata key) external pure returns (string[] memory keys);\n\n /// Parses a string of JSON data at `key` and coerces it to `string`.\n function parseJsonString(string calldata json, string calldata key) external pure returns (string memory);\n\n /// Parses a string of JSON data at `key` and coerces it to `string[]`.\n function parseJsonStringArray(string calldata json, string calldata key) external pure returns (string[] memory);\n\n /// Parses a string of JSON data at `key` and coerces it to type array corresponding to `typeDescription`.\n function parseJsonTypeArray(string calldata json, string calldata key, string calldata typeDescription)\n external\n pure\n returns (bytes memory);\n\n /// Parses a string of JSON data and coerces it to type corresponding to `typeDescription`.\n function parseJsonType(string calldata json, string calldata typeDescription)\n external\n pure\n returns (bytes memory);\n\n /// Parses a string of JSON data at `key` and coerces it to type corresponding to `typeDescription`.\n function parseJsonType(string calldata json, string calldata key, string calldata typeDescription)\n external\n pure\n returns (bytes memory);\n\n /// Parses a string of JSON data at `key` and coerces it to `uint256`.\n function parseJsonUint(string calldata json, string calldata key) external pure returns (uint256);\n\n /// Parses a string of JSON data at `key` and coerces it to `uint256[]`.\n function parseJsonUintArray(string calldata json, string calldata key) external pure returns (uint256[] memory);\n\n /// ABI-encodes a JSON object.\n function parseJson(string calldata json) external pure returns (bytes memory abiEncodedData);\n\n /// ABI-encodes a JSON object at `key`.\n function parseJson(string calldata json, string calldata key) external pure returns (bytes memory abiEncodedData);\n\n /// See `serializeJson`.\n function serializeAddress(string calldata objectKey, string calldata valueKey, address value)\n external\n returns (string memory json);\n\n /// See `serializeJson`.\n function serializeAddress(string calldata objectKey, string calldata valueKey, address[] calldata values)\n external\n returns (string memory json);\n\n /// See `serializeJson`.\n function serializeBool(string calldata objectKey, string calldata valueKey, bool value)\n external\n returns (string memory json);\n\n /// See `serializeJson`.\n function serializeBool(string calldata objectKey, string calldata valueKey, bool[] calldata values)\n external\n returns (string memory json);\n\n /// See `serializeJson`.\n function serializeBytes32(string calldata objectKey, string calldata valueKey, bytes32 value)\n external\n returns (string memory json);\n\n /// See `serializeJson`.\n function serializeBytes32(string calldata objectKey, string calldata valueKey, bytes32[] calldata values)\n external\n returns (string memory json);\n\n /// See `serializeJson`.\n function serializeBytes(string calldata objectKey, string calldata valueKey, bytes calldata value)\n external\n returns (string memory json);\n\n /// See `serializeJson`.\n function serializeBytes(string calldata objectKey, string calldata valueKey, bytes[] calldata values)\n external\n returns (string memory json);\n\n /// See `serializeJson`.\n function serializeInt(string calldata objectKey, string calldata valueKey, int256 value)\n external\n returns (string memory json);\n\n /// See `serializeJson`.\n function serializeInt(string calldata objectKey, string calldata valueKey, int256[] calldata values)\n external\n returns (string memory json);\n\n /// Serializes a key and value to a JSON object stored in-memory that can be later written to a file.\n /// Returns the stringified version of the specific JSON file up to that moment.\n function serializeJson(string calldata objectKey, string calldata value) external returns (string memory json);\n\n /// See `serializeJson`.\n function serializeJsonType(string calldata typeDescription, bytes calldata value)\n external\n pure\n returns (string memory json);\n\n /// See `serializeJson`.\n function serializeJsonType(\n string calldata objectKey,\n string calldata valueKey,\n string calldata typeDescription,\n bytes calldata value\n ) external returns (string memory json);\n\n /// See `serializeJson`.\n function serializeString(string calldata objectKey, string calldata valueKey, string calldata value)\n external\n returns (string memory json);\n\n /// See `serializeJson`.\n function serializeString(string calldata objectKey, string calldata valueKey, string[] calldata values)\n external\n returns (string memory json);\n\n /// See `serializeJson`.\n function serializeUintToHex(string calldata objectKey, string calldata valueKey, uint256 value)\n external\n returns (string memory json);\n\n /// See `serializeJson`.\n function serializeUint(string calldata objectKey, string calldata valueKey, uint256 value)\n external\n returns (string memory json);\n\n /// See `serializeJson`.\n function serializeUint(string calldata objectKey, string calldata valueKey, uint256[] calldata values)\n external\n returns (string memory json);\n\n /// Write a serialized JSON object to a file. If the file exists, it will be overwritten.\n function writeJson(string calldata json, string calldata path) external;\n\n /// Write a serialized JSON object to an **existing** JSON file, replacing a value with key = \n /// This is useful to replace a specific value of a JSON file, without having to parse the entire thing.\n function writeJson(string calldata json, string calldata path, string calldata valueKey) external;\n\n // ======== Scripting ========\n\n /// Takes a signed transaction and broadcasts it to the network.\n function broadcastRawTransaction(bytes calldata data) external;\n\n /// Has the next call (at this call depth only) create transactions that can later be signed and sent onchain.\n /// Broadcasting address is determined by checking the following in order:\n /// 1. If `--sender` argument was provided, that address is used.\n /// 2. If exactly one signer (e.g. private key, hw wallet, keystore) is set when `forge broadcast` is invoked, that signer is used.\n /// 3. Otherwise, default foundry sender (1804c8AB1F12E6bbf3894d4083f33e07309d1f38) is used.\n function broadcast() external;\n\n /// Has the next call (at this call depth only) create a transaction with the address provided\n /// as the sender that can later be signed and sent onchain.\n function broadcast(address signer) external;\n\n /// Has the next call (at this call depth only) create a transaction with the private key\n /// provided as the sender that can later be signed and sent onchain.\n function broadcast(uint256 privateKey) external;\n\n /// Has all subsequent calls (at this call depth only) create transactions that can later be signed and sent onchain.\n /// Broadcasting address is determined by checking the following in order:\n /// 1. If `--sender` argument was provided, that address is used.\n /// 2. If exactly one signer (e.g. private key, hw wallet, keystore) is set when `forge broadcast` is invoked, that signer is used.\n /// 3. Otherwise, default foundry sender (1804c8AB1F12E6bbf3894d4083f33e07309d1f38) is used.\n function startBroadcast() external;\n\n /// Has all subsequent calls (at this call depth only) create transactions with the address\n /// provided that can later be signed and sent onchain.\n function startBroadcast(address signer) external;\n\n /// Has all subsequent calls (at this call depth only) create transactions with the private key\n /// provided that can later be signed and sent onchain.\n function startBroadcast(uint256 privateKey) external;\n\n /// Stops collecting onchain transactions.\n function stopBroadcast() external;\n\n // ======== String ========\n\n /// Returns the index of the first occurrence of a `key` in an `input` string.\n /// Returns `NOT_FOUND` (i.e. `type(uint256).max`) if the `key` is not found.\n /// Returns 0 in case of an empty `key`.\n function indexOf(string calldata input, string calldata key) external pure returns (uint256);\n\n /// Parses the given `string` into an `address`.\n function parseAddress(string calldata stringifiedValue) external pure returns (address parsedValue);\n\n /// Parses the given `string` into a `bool`.\n function parseBool(string calldata stringifiedValue) external pure returns (bool parsedValue);\n\n /// Parses the given `string` into `bytes`.\n function parseBytes(string calldata stringifiedValue) external pure returns (bytes memory parsedValue);\n\n /// Parses the given `string` into a `bytes32`.\n function parseBytes32(string calldata stringifiedValue) external pure returns (bytes32 parsedValue);\n\n /// Parses the given `string` into a `int256`.\n function parseInt(string calldata stringifiedValue) external pure returns (int256 parsedValue);\n\n /// Parses the given `string` into a `uint256`.\n function parseUint(string calldata stringifiedValue) external pure returns (uint256 parsedValue);\n\n /// Replaces occurrences of `from` in the given `string` with `to`.\n function replace(string calldata input, string calldata from, string calldata to)\n external\n pure\n returns (string memory output);\n\n /// Splits the given `string` into an array of strings divided by the `delimiter`.\n function split(string calldata input, string calldata delimiter) external pure returns (string[] memory outputs);\n\n /// Converts the given `string` value to Lowercase.\n function toLowercase(string calldata input) external pure returns (string memory output);\n\n /// Converts the given value to a `string`.\n function toString(address value) external pure returns (string memory stringifiedValue);\n\n /// Converts the given value to a `string`.\n function toString(bytes calldata value) external pure returns (string memory stringifiedValue);\n\n /// Converts the given value to a `string`.\n function toString(bytes32 value) external pure returns (string memory stringifiedValue);\n\n /// Converts the given value to a `string`.\n function toString(bool value) external pure returns (string memory stringifiedValue);\n\n /// Converts the given value to a `string`.\n function toString(uint256 value) external pure returns (string memory stringifiedValue);\n\n /// Converts the given value to a `string`.\n function toString(int256 value) external pure returns (string memory stringifiedValue);\n\n /// Converts the given `string` value to Uppercase.\n function toUppercase(string calldata input) external pure returns (string memory output);\n\n /// Trims leading and trailing whitespace from the given `string` value.\n function trim(string calldata input) external pure returns (string memory output);\n\n // ======== Testing ========\n\n /// Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`.\n /// Formats values with decimals in failure message.\n function assertApproxEqAbsDecimal(uint256 left, uint256 right, uint256 maxDelta, uint256 decimals) external pure;\n\n /// Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`.\n /// Formats values with decimals in failure message. Includes error message into revert string on failure.\n function assertApproxEqAbsDecimal(\n uint256 left,\n uint256 right,\n uint256 maxDelta,\n uint256 decimals,\n string calldata error\n ) external pure;\n\n /// Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`.\n /// Formats values with decimals in failure message.\n function assertApproxEqAbsDecimal(int256 left, int256 right, uint256 maxDelta, uint256 decimals) external pure;\n\n /// Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`.\n /// Formats values with decimals in failure message. Includes error message into revert string on failure.\n function assertApproxEqAbsDecimal(\n int256 left,\n int256 right,\n uint256 maxDelta,\n uint256 decimals,\n string calldata error\n ) external pure;\n\n /// Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`.\n function assertApproxEqAbs(uint256 left, uint256 right, uint256 maxDelta) external pure;\n\n /// Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`.\n /// Includes error message into revert string on failure.\n function assertApproxEqAbs(uint256 left, uint256 right, uint256 maxDelta, string calldata error) external pure;\n\n /// Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`.\n function assertApproxEqAbs(int256 left, int256 right, uint256 maxDelta) external pure;\n\n /// Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`.\n /// Includes error message into revert string on failure.\n function assertApproxEqAbs(int256 left, int256 right, uint256 maxDelta, string calldata error) external pure;\n\n /// Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`.\n /// `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%\n /// Formats values with decimals in failure message.\n function assertApproxEqRelDecimal(uint256 left, uint256 right, uint256 maxPercentDelta, uint256 decimals)\n external\n pure;\n\n /// Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`.\n /// `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%\n /// Formats values with decimals in failure message. Includes error message into revert string on failure.\n function assertApproxEqRelDecimal(\n uint256 left,\n uint256 right,\n uint256 maxPercentDelta,\n uint256 decimals,\n string calldata error\n ) external pure;\n\n /// Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`.\n /// `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%\n /// Formats values with decimals in failure message.\n function assertApproxEqRelDecimal(int256 left, int256 right, uint256 maxPercentDelta, uint256 decimals)\n external\n pure;\n\n /// Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`.\n /// `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%\n /// Formats values with decimals in failure message. Includes error message into revert string on failure.\n function assertApproxEqRelDecimal(\n int256 left,\n int256 right,\n uint256 maxPercentDelta,\n uint256 decimals,\n string calldata error\n ) external pure;\n\n /// Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`.\n /// `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%\n function assertApproxEqRel(uint256 left, uint256 right, uint256 maxPercentDelta) external pure;\n\n /// Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`.\n /// `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%\n /// Includes error message into revert string on failure.\n function assertApproxEqRel(uint256 left, uint256 right, uint256 maxPercentDelta, string calldata error)\n external\n pure;\n\n /// Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`.\n /// `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%\n function assertApproxEqRel(int256 left, int256 right, uint256 maxPercentDelta) external pure;\n\n /// Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`.\n /// `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%\n /// Includes error message into revert string on failure.\n function assertApproxEqRel(int256 left, int256 right, uint256 maxPercentDelta, string calldata error)\n external\n pure;\n\n /// Asserts that two `uint256` values are equal, formatting them with decimals in failure message.\n function assertEqDecimal(uint256 left, uint256 right, uint256 decimals) external pure;\n\n /// Asserts that two `uint256` values are equal, formatting them with decimals in failure message.\n /// Includes error message into revert string on failure.\n function assertEqDecimal(uint256 left, uint256 right, uint256 decimals, string calldata error) external pure;\n\n /// Asserts that two `int256` values are equal, formatting them with decimals in failure message.\n function assertEqDecimal(int256 left, int256 right, uint256 decimals) external pure;\n\n /// Asserts that two `int256` values are equal, formatting them with decimals in failure message.\n /// Includes error message into revert string on failure.\n function assertEqDecimal(int256 left, int256 right, uint256 decimals, string calldata error) external pure;\n\n /// Asserts that two `bool` values are equal.\n function assertEq(bool left, bool right) external pure;\n\n /// Asserts that two `bool` values are equal and includes error message into revert string on failure.\n function assertEq(bool left, bool right, string calldata error) external pure;\n\n /// Asserts that two `string` values are equal.\n function assertEq(string calldata left, string calldata right) external pure;\n\n /// Asserts that two `string` values are equal and includes error message into revert string on failure.\n function assertEq(string calldata left, string calldata right, string calldata error) external pure;\n\n /// Asserts that two `bytes` values are equal.\n function assertEq(bytes calldata left, bytes calldata right) external pure;\n\n /// Asserts that two `bytes` values are equal and includes error message into revert string on failure.\n function assertEq(bytes calldata left, bytes calldata right, string calldata error) external pure;\n\n /// Asserts that two arrays of `bool` values are equal.\n function assertEq(bool[] calldata left, bool[] calldata right) external pure;\n\n /// Asserts that two arrays of `bool` values are equal and includes error message into revert string on failure.\n function assertEq(bool[] calldata left, bool[] calldata right, string calldata error) external pure;\n\n /// Asserts that two arrays of `uint256 values are equal.\n function assertEq(uint256[] calldata left, uint256[] calldata right) external pure;\n\n /// Asserts that two arrays of `uint256` values are equal and includes error message into revert string on failure.\n function assertEq(uint256[] calldata left, uint256[] calldata right, string calldata error) external pure;\n\n /// Asserts that two arrays of `int256` values are equal.\n function assertEq(int256[] calldata left, int256[] calldata right) external pure;\n\n /// Asserts that two arrays of `int256` values are equal and includes error message into revert string on failure.\n function assertEq(int256[] calldata left, int256[] calldata right, string calldata error) external pure;\n\n /// Asserts that two `uint256` values are equal.\n function assertEq(uint256 left, uint256 right) external pure;\n\n /// Asserts that two arrays of `address` values are equal.\n function assertEq(address[] calldata left, address[] calldata right) external pure;\n\n /// Asserts that two arrays of `address` values are equal and includes error message into revert string on failure.\n function assertEq(address[] calldata left, address[] calldata right, string calldata error) external pure;\n\n /// Asserts that two arrays of `bytes32` values are equal.\n function assertEq(bytes32[] calldata left, bytes32[] calldata right) external pure;\n\n /// Asserts that two arrays of `bytes32` values are equal and includes error message into revert string on failure.\n function assertEq(bytes32[] calldata left, bytes32[] calldata right, string calldata error) external pure;\n\n /// Asserts that two arrays of `string` values are equal.\n function assertEq(string[] calldata left, string[] calldata right) external pure;\n\n /// Asserts that two arrays of `string` values are equal and includes error message into revert string on failure.\n function assertEq(string[] calldata left, string[] calldata right, string calldata error) external pure;\n\n /// Asserts that two arrays of `bytes` values are equal.\n function assertEq(bytes[] calldata left, bytes[] calldata right) external pure;\n\n /// Asserts that two arrays of `bytes` values are equal and includes error message into revert string on failure.\n function assertEq(bytes[] calldata left, bytes[] calldata right, string calldata error) external pure;\n\n /// Asserts that two `uint256` values are equal and includes error message into revert string on failure.\n function assertEq(uint256 left, uint256 right, string calldata error) external pure;\n\n /// Asserts that two `int256` values are equal.\n function assertEq(int256 left, int256 right) external pure;\n\n /// Asserts that two `int256` values are equal and includes error message into revert string on failure.\n function assertEq(int256 left, int256 right, string calldata error) external pure;\n\n /// Asserts that two `address` values are equal.\n function assertEq(address left, address right) external pure;\n\n /// Asserts that two `address` values are equal and includes error message into revert string on failure.\n function assertEq(address left, address right, string calldata error) external pure;\n\n /// Asserts that two `bytes32` values are equal.\n function assertEq(bytes32 left, bytes32 right) external pure;\n\n /// Asserts that two `bytes32` values are equal and includes error message into revert string on failure.\n function assertEq(bytes32 left, bytes32 right, string calldata error) external pure;\n\n /// Asserts that the given condition is false.\n function assertFalse(bool condition) external pure;\n\n /// Asserts that the given condition is false and includes error message into revert string on failure.\n function assertFalse(bool condition, string calldata error) external pure;\n\n /// Compares two `uint256` values. Expects first value to be greater than or equal to second.\n /// Formats values with decimals in failure message.\n function assertGeDecimal(uint256 left, uint256 right, uint256 decimals) external pure;\n\n /// Compares two `uint256` values. Expects first value to be greater than or equal to second.\n /// Formats values with decimals in failure message. Includes error message into revert string on failure.\n function assertGeDecimal(uint256 left, uint256 right, uint256 decimals, string calldata error) external pure;\n\n /// Compares two `int256` values. Expects first value to be greater than or equal to second.\n /// Formats values with decimals in failure message.\n function assertGeDecimal(int256 left, int256 right, uint256 decimals) external pure;\n\n /// Compares two `int256` values. Expects first value to be greater than or equal to second.\n /// Formats values with decimals in failure message. Includes error message into revert string on failure.\n function assertGeDecimal(int256 left, int256 right, uint256 decimals, string calldata error) external pure;\n\n /// Compares two `uint256` values. Expects first value to be greater than or equal to second.\n function assertGe(uint256 left, uint256 right) external pure;\n\n /// Compares two `uint256` values. Expects first value to be greater than or equal to second.\n /// Includes error message into revert string on failure.\n function assertGe(uint256 left, uint256 right, string calldata error) external pure;\n\n /// Compares two `int256` values. Expects first value to be greater than or equal to second.\n function assertGe(int256 left, int256 right) external pure;\n\n /// Compares two `int256` values. Expects first value to be greater than or equal to second.\n /// Includes error message into revert string on failure.\n function assertGe(int256 left, int256 right, string calldata error) external pure;\n\n /// Compares two `uint256` values. Expects first value to be greater than second.\n /// Formats values with decimals in failure message.\n function assertGtDecimal(uint256 left, uint256 right, uint256 decimals) external pure;\n\n /// Compares two `uint256` values. Expects first value to be greater than second.\n /// Formats values with decimals in failure message. Includes error message into revert string on failure.\n function assertGtDecimal(uint256 left, uint256 right, uint256 decimals, string calldata error) external pure;\n\n /// Compares two `int256` values. Expects first value to be greater than second.\n /// Formats values with decimals in failure message.\n function assertGtDecimal(int256 left, int256 right, uint256 decimals) external pure;\n\n /// Compares two `int256` values. Expects first value to be greater than second.\n /// Formats values with decimals in failure message. Includes error message into revert string on failure.\n function assertGtDecimal(int256 left, int256 right, uint256 decimals, string calldata error) external pure;\n\n /// Compares two `uint256` values. Expects first value to be greater than second.\n function assertGt(uint256 left, uint256 right) external pure;\n\n /// Compares two `uint256` values. Expects first value to be greater than second.\n /// Includes error message into revert string on failure.\n function assertGt(uint256 left, uint256 right, string calldata error) external pure;\n\n /// Compares two `int256` values. Expects first value to be greater than second.\n function assertGt(int256 left, int256 right) external pure;\n\n /// Compares two `int256` values. Expects first value to be greater than second.\n /// Includes error message into revert string on failure.\n function assertGt(int256 left, int256 right, string calldata error) external pure;\n\n /// Compares two `uint256` values. Expects first value to be less than or equal to second.\n /// Formats values with decimals in failure message.\n function assertLeDecimal(uint256 left, uint256 right, uint256 decimals) external pure;\n\n /// Compares two `uint256` values. Expects first value to be less than or equal to second.\n /// Formats values with decimals in failure message. Includes error message into revert string on failure.\n function assertLeDecimal(uint256 left, uint256 right, uint256 decimals, string calldata error) external pure;\n\n /// Compares two `int256` values. Expects first value to be less than or equal to second.\n /// Formats values with decimals in failure message.\n function assertLeDecimal(int256 left, int256 right, uint256 decimals) external pure;\n\n /// Compares two `int256` values. Expects first value to be less than or equal to second.\n /// Formats values with decimals in failure message. Includes error message into revert string on failure.\n function assertLeDecimal(int256 left, int256 right, uint256 decimals, string calldata error) external pure;\n\n /// Compares two `uint256` values. Expects first value to be less than or equal to second.\n function assertLe(uint256 left, uint256 right) external pure;\n\n /// Compares two `uint256` values. Expects first value to be less than or equal to second.\n /// Includes error message into revert string on failure.\n function assertLe(uint256 left, uint256 right, string calldata error) external pure;\n\n /// Compares two `int256` values. Expects first value to be less than or equal to second.\n function assertLe(int256 left, int256 right) external pure;\n\n /// Compares two `int256` values. Expects first value to be less than or equal to second.\n /// Includes error message into revert string on failure.\n function assertLe(int256 left, int256 right, string calldata error) external pure;\n\n /// Compares two `uint256` values. Expects first value to be less than second.\n /// Formats values with decimals in failure message.\n function assertLtDecimal(uint256 left, uint256 right, uint256 decimals) external pure;\n\n /// Compares two `uint256` values. Expects first value to be less than second.\n /// Formats values with decimals in failure message. Includes error message into revert string on failure.\n function assertLtDecimal(uint256 left, uint256 right, uint256 decimals, string calldata error) external pure;\n\n /// Compares two `int256` values. Expects first value to be less than second.\n /// Formats values with decimals in failure message.\n function assertLtDecimal(int256 left, int256 right, uint256 decimals) external pure;\n\n /// Compares two `int256` values. Expects first value to be less than second.\n /// Formats values with decimals in failure message. Includes error message into revert string on failure.\n function assertLtDecimal(int256 left, int256 right, uint256 decimals, string calldata error) external pure;\n\n /// Compares two `uint256` values. Expects first value to be less than second.\n function assertLt(uint256 left, uint256 right) external pure;\n\n /// Compares two `uint256` values. Expects first value to be less than second.\n /// Includes error message into revert string on failure.\n function assertLt(uint256 left, uint256 right, string calldata error) external pure;\n\n /// Compares two `int256` values. Expects first value to be less than second.\n function assertLt(int256 left, int256 right) external pure;\n\n /// Compares two `int256` values. Expects first value to be less than second.\n /// Includes error message into revert string on failure.\n function assertLt(int256 left, int256 right, string calldata error) external pure;\n\n /// Asserts that two `uint256` values are not equal, formatting them with decimals in failure message.\n function assertNotEqDecimal(uint256 left, uint256 right, uint256 decimals) external pure;\n\n /// Asserts that two `uint256` values are not equal, formatting them with decimals in failure message.\n /// Includes error message into revert string on failure.\n function assertNotEqDecimal(uint256 left, uint256 right, uint256 decimals, string calldata error) external pure;\n\n /// Asserts that two `int256` values are not equal, formatting them with decimals in failure message.\n function assertNotEqDecimal(int256 left, int256 right, uint256 decimals) external pure;\n\n /// Asserts that two `int256` values are not equal, formatting them with decimals in failure message.\n /// Includes error message into revert string on failure.\n function assertNotEqDecimal(int256 left, int256 right, uint256 decimals, string calldata error) external pure;\n\n /// Asserts that two `bool` values are not equal.\n function assertNotEq(bool left, bool right) external pure;\n\n /// Asserts that two `bool` values are not equal and includes error message into revert string on failure.\n function assertNotEq(bool left, bool right, string calldata error) external pure;\n\n /// Asserts that two `string` values are not equal.\n function assertNotEq(string calldata left, string calldata right) external pure;\n\n /// Asserts that two `string` values are not equal and includes error message into revert string on failure.\n function assertNotEq(string calldata left, string calldata right, string calldata error) external pure;\n\n /// Asserts that two `bytes` values are not equal.\n function assertNotEq(bytes calldata left, bytes calldata right) external pure;\n\n /// Asserts that two `bytes` values are not equal and includes error message into revert string on failure.\n function assertNotEq(bytes calldata left, bytes calldata right, string calldata error) external pure;\n\n /// Asserts that two arrays of `bool` values are not equal.\n function assertNotEq(bool[] calldata left, bool[] calldata right) external pure;\n\n /// Asserts that two arrays of `bool` values are not equal and includes error message into revert string on failure.\n function assertNotEq(bool[] calldata left, bool[] calldata right, string calldata error) external pure;\n\n /// Asserts that two arrays of `uint256` values are not equal.\n function assertNotEq(uint256[] calldata left, uint256[] calldata right) external pure;\n\n /// Asserts that two arrays of `uint256` values are not equal and includes error message into revert string on failure.\n function assertNotEq(uint256[] calldata left, uint256[] calldata right, string calldata error) external pure;\n\n /// Asserts that two arrays of `int256` values are not equal.\n function assertNotEq(int256[] calldata left, int256[] calldata right) external pure;\n\n /// Asserts that two arrays of `int256` values are not equal and includes error message into revert string on failure.\n function assertNotEq(int256[] calldata left, int256[] calldata right, string calldata error) external pure;\n\n /// Asserts that two `uint256` values are not equal.\n function assertNotEq(uint256 left, uint256 right) external pure;\n\n /// Asserts that two arrays of `address` values are not equal.\n function assertNotEq(address[] calldata left, address[] calldata right) external pure;\n\n /// Asserts that two arrays of `address` values are not equal and includes error message into revert string on failure.\n function assertNotEq(address[] calldata left, address[] calldata right, string calldata error) external pure;\n\n /// Asserts that two arrays of `bytes32` values are not equal.\n function assertNotEq(bytes32[] calldata left, bytes32[] calldata right) external pure;\n\n /// Asserts that two arrays of `bytes32` values are not equal and includes error message into revert string on failure.\n function assertNotEq(bytes32[] calldata left, bytes32[] calldata right, string calldata error) external pure;\n\n /// Asserts that two arrays of `string` values are not equal.\n function assertNotEq(string[] calldata left, string[] calldata right) external pure;\n\n /// Asserts that two arrays of `string` values are not equal and includes error message into revert string on failure.\n function assertNotEq(string[] calldata left, string[] calldata right, string calldata error) external pure;\n\n /// Asserts that two arrays of `bytes` values are not equal.\n function assertNotEq(bytes[] calldata left, bytes[] calldata right) external pure;\n\n /// Asserts that two arrays of `bytes` values are not equal and includes error message into revert string on failure.\n function assertNotEq(bytes[] calldata left, bytes[] calldata right, string calldata error) external pure;\n\n /// Asserts that two `uint256` values are not equal and includes error message into revert string on failure.\n function assertNotEq(uint256 left, uint256 right, string calldata error) external pure;\n\n /// Asserts that two `int256` values are not equal.\n function assertNotEq(int256 left, int256 right) external pure;\n\n /// Asserts that two `int256` values are not equal and includes error message into revert string on failure.\n function assertNotEq(int256 left, int256 right, string calldata error) external pure;\n\n /// Asserts that two `address` values are not equal.\n function assertNotEq(address left, address right) external pure;\n\n /// Asserts that two `address` values are not equal and includes error message into revert string on failure.\n function assertNotEq(address left, address right, string calldata error) external pure;\n\n /// Asserts that two `bytes32` values are not equal.\n function assertNotEq(bytes32 left, bytes32 right) external pure;\n\n /// Asserts that two `bytes32` values are not equal and includes error message into revert string on failure.\n function assertNotEq(bytes32 left, bytes32 right, string calldata error) external pure;\n\n /// Asserts that the given condition is true.\n function assertTrue(bool condition) external pure;\n\n /// Asserts that the given condition is true and includes error message into revert string on failure.\n function assertTrue(bool condition, string calldata error) external pure;\n\n /// If the condition is false, discard this run's fuzz inputs and generate new ones.\n function assume(bool condition) external pure;\n\n /// Writes a breakpoint to jump to in the debugger.\n function breakpoint(string calldata char) external;\n\n /// Writes a conditional breakpoint to jump to in the debugger.\n function breakpoint(string calldata char, bool value) external;\n\n /// Returns the Foundry version.\n /// Format: ++\n /// Sample output: 0.2.0+faa94c384+202407110019\n /// Note: Build timestamps may vary slightly across platforms due to separate CI jobs.\n /// For reliable version comparisons, use YYYYMMDD0000 format (e.g., >= 202407110000)\n /// to compare timestamps while ignoring minor time differences.\n function getFoundryVersion() external view returns (string memory version);\n\n /// Returns the RPC url for the given alias.\n function rpcUrl(string calldata rpcAlias) external view returns (string memory json);\n\n /// Returns all rpc urls and their aliases as structs.\n function rpcUrlStructs() external view returns (Rpc[] memory urls);\n\n /// Returns all rpc urls and their aliases `[alias, url][]`.\n function rpcUrls() external view returns (string[2][] memory urls);\n\n /// Suspends execution of the main thread for `duration` milliseconds.\n function sleep(uint256 duration) external;\n\n // ======== Toml ========\n\n /// Checks if `key` exists in a TOML table.\n function keyExistsToml(string calldata toml, string calldata key) external view returns (bool);\n\n /// Parses a string of TOML data at `key` and coerces it to `address`.\n function parseTomlAddress(string calldata toml, string calldata key) external pure returns (address);\n\n /// Parses a string of TOML data at `key` and coerces it to `address[]`.\n function parseTomlAddressArray(string calldata toml, string calldata key)\n external\n pure\n returns (address[] memory);\n\n /// Parses a string of TOML data at `key` and coerces it to `bool`.\n function parseTomlBool(string calldata toml, string calldata key) external pure returns (bool);\n\n /// Parses a string of TOML data at `key` and coerces it to `bool[]`.\n function parseTomlBoolArray(string calldata toml, string calldata key) external pure returns (bool[] memory);\n\n /// Parses a string of TOML data at `key` and coerces it to `bytes`.\n function parseTomlBytes(string calldata toml, string calldata key) external pure returns (bytes memory);\n\n /// Parses a string of TOML data at `key` and coerces it to `bytes32`.\n function parseTomlBytes32(string calldata toml, string calldata key) external pure returns (bytes32);\n\n /// Parses a string of TOML data at `key` and coerces it to `bytes32[]`.\n function parseTomlBytes32Array(string calldata toml, string calldata key)\n external\n pure\n returns (bytes32[] memory);\n\n /// Parses a string of TOML data at `key` and coerces it to `bytes[]`.\n function parseTomlBytesArray(string calldata toml, string calldata key) external pure returns (bytes[] memory);\n\n /// Parses a string of TOML data at `key` and coerces it to `int256`.\n function parseTomlInt(string calldata toml, string calldata key) external pure returns (int256);\n\n /// Parses a string of TOML data at `key` and coerces it to `int256[]`.\n function parseTomlIntArray(string calldata toml, string calldata key) external pure returns (int256[] memory);\n\n /// Returns an array of all the keys in a TOML table.\n function parseTomlKeys(string calldata toml, string calldata key) external pure returns (string[] memory keys);\n\n /// Parses a string of TOML data at `key` and coerces it to `string`.\n function parseTomlString(string calldata toml, string calldata key) external pure returns (string memory);\n\n /// Parses a string of TOML data at `key` and coerces it to `string[]`.\n function parseTomlStringArray(string calldata toml, string calldata key) external pure returns (string[] memory);\n\n /// Parses a string of TOML data at `key` and coerces it to `uint256`.\n function parseTomlUint(string calldata toml, string calldata key) external pure returns (uint256);\n\n /// Parses a string of TOML data at `key` and coerces it to `uint256[]`.\n function parseTomlUintArray(string calldata toml, string calldata key) external pure returns (uint256[] memory);\n\n /// ABI-encodes a TOML table.\n function parseToml(string calldata toml) external pure returns (bytes memory abiEncodedData);\n\n /// ABI-encodes a TOML table at `key`.\n function parseToml(string calldata toml, string calldata key) external pure returns (bytes memory abiEncodedData);\n\n /// Takes serialized JSON, converts to TOML and write a serialized TOML to a file.\n function writeToml(string calldata json, string calldata path) external;\n\n /// Takes serialized JSON, converts to TOML and write a serialized TOML table to an **existing** TOML file, replacing a value with key = \n /// This is useful to replace a specific value of a TOML file, without having to parse the entire thing.\n function writeToml(string calldata json, string calldata path, string calldata valueKey) external;\n\n // ======== Utilities ========\n\n /// Compute the address of a contract created with CREATE2 using the given CREATE2 deployer.\n function computeCreate2Address(bytes32 salt, bytes32 initCodeHash, address deployer)\n external\n pure\n returns (address);\n\n /// Compute the address of a contract created with CREATE2 using the default CREATE2 deployer.\n function computeCreate2Address(bytes32 salt, bytes32 initCodeHash) external pure returns (address);\n\n /// Compute the address a contract will be deployed at for a given deployer address and nonce.\n function computeCreateAddress(address deployer, uint256 nonce) external pure returns (address);\n\n /// Returns ENS namehash for provided string.\n function ensNamehash(string calldata name) external pure returns (bytes32);\n\n /// Gets the label for the specified address.\n function getLabel(address account) external view returns (string memory currentLabel);\n\n /// Labels an address in call traces.\n function label(address account, string calldata newLabel) external;\n\n /// Returns a random `address`.\n function randomAddress() external returns (address);\n\n /// Returns a random uint256 value.\n function randomUint() external returns (uint256);\n\n /// Returns random uin256 value between the provided range (=min..=max).\n function randomUint(uint256 min, uint256 max) external returns (uint256);\n\n /// Encodes a `bytes` value to a base64url string.\n function toBase64URL(bytes calldata data) external pure returns (string memory);\n\n /// Encodes a `string` value to a base64url string.\n function toBase64URL(string calldata data) external pure returns (string memory);\n\n /// Encodes a `bytes` value to a base64 string.\n function toBase64(bytes calldata data) external pure returns (string memory);\n\n /// Encodes a `string` value to a base64 string.\n function toBase64(string calldata data) external pure returns (string memory);\n}\n\n/// The `Vm` interface does allow manipulation of the EVM state. These are all intended to be used\n/// in tests, but it is not recommended to use these cheats in scripts.\ninterface Vm is VmSafe {\n // ======== EVM ========\n\n /// Returns the identifier of the currently active fork. Reverts if no fork is currently active.\n function activeFork() external view returns (uint256 forkId);\n\n /// In forking mode, explicitly grant the given address cheatcode access.\n function allowCheatcodes(address account) external;\n\n /// Sets `block.blobbasefee`\n function blobBaseFee(uint256 newBlobBaseFee) external;\n\n /// Sets the blobhashes in the transaction.\n /// Not available on EVM versions before Cancun.\n /// If used on unsupported EVM versions it will revert.\n function blobhashes(bytes32[] calldata hashes) external;\n\n /// Sets `block.chainid`.\n function chainId(uint256 newChainId) external;\n\n /// Clears all mocked calls.\n function clearMockedCalls() external;\n\n /// Sets `block.coinbase`.\n function coinbase(address newCoinbase) external;\n\n /// Creates a new fork with the given endpoint and the _latest_ block and returns the identifier of the fork.\n function createFork(string calldata urlOrAlias) external returns (uint256 forkId);\n\n /// Creates a new fork with the given endpoint and block and returns the identifier of the fork.\n function createFork(string calldata urlOrAlias, uint256 blockNumber) external returns (uint256 forkId);\n\n /// Creates a new fork with the given endpoint and at the block the given transaction was mined in,\n /// replays all transaction mined in the block before the transaction, and returns the identifier of the fork.\n function createFork(string calldata urlOrAlias, bytes32 txHash) external returns (uint256 forkId);\n\n /// Creates and also selects a new fork with the given endpoint and the latest block and returns the identifier of the fork.\n function createSelectFork(string calldata urlOrAlias) external returns (uint256 forkId);\n\n /// Creates and also selects a new fork with the given endpoint and block and returns the identifier of the fork.\n function createSelectFork(string calldata urlOrAlias, uint256 blockNumber) external returns (uint256 forkId);\n\n /// Creates and also selects new fork with the given endpoint and at the block the given transaction was mined in,\n /// replays all transaction mined in the block before the transaction, returns the identifier of the fork.\n function createSelectFork(string calldata urlOrAlias, bytes32 txHash) external returns (uint256 forkId);\n\n /// Sets an address' balance.\n function deal(address account, uint256 newBalance) external;\n\n /// Removes the snapshot with the given ID created by `snapshot`.\n /// Takes the snapshot ID to delete.\n /// Returns `true` if the snapshot was successfully deleted.\n /// Returns `false` if the snapshot does not exist.\n function deleteSnapshot(uint256 snapshotId) external returns (bool success);\n\n /// Removes _all_ snapshots previously created by `snapshot`.\n function deleteSnapshots() external;\n\n /// Sets `block.difficulty`.\n /// Not available on EVM versions from Paris onwards. Use `prevrandao` instead.\n /// Reverts if used on unsupported EVM versions.\n function difficulty(uint256 newDifficulty) external;\n\n /// Dump a genesis JSON file's `allocs` to disk.\n function dumpState(string calldata pathToStateJson) external;\n\n /// Sets an address' code.\n function etch(address target, bytes calldata newRuntimeBytecode) external;\n\n /// Sets `block.basefee`.\n function fee(uint256 newBasefee) external;\n\n /// Gets the blockhashes from the current transaction.\n /// Not available on EVM versions before Cancun.\n /// If used on unsupported EVM versions it will revert.\n function getBlobhashes() external view returns (bytes32[] memory hashes);\n\n /// Returns true if the account is marked as persistent.\n function isPersistent(address account) external view returns (bool persistent);\n\n /// Load a genesis JSON file's `allocs` into the in-memory revm state.\n function loadAllocs(string calldata pathToAllocsJson) external;\n\n /// Marks that the account(s) should use persistent storage across fork swaps in a multifork setup\n /// Meaning, changes made to the state of this account will be kept when switching forks.\n function makePersistent(address account) external;\n\n /// See `makePersistent(address)`.\n function makePersistent(address account0, address account1) external;\n\n /// See `makePersistent(address)`.\n function makePersistent(address account0, address account1, address account2) external;\n\n /// See `makePersistent(address)`.\n function makePersistent(address[] calldata accounts) external;\n\n /// Reverts a call to an address with specified revert data.\n function mockCallRevert(address callee, bytes calldata data, bytes calldata revertData) external;\n\n /// Reverts a call to an address with a specific `msg.value`, with specified revert data.\n function mockCallRevert(address callee, uint256 msgValue, bytes calldata data, bytes calldata revertData)\n external;\n\n /// Mocks a call to an address, returning specified data.\n /// Calldata can either be strict or a partial match, e.g. if you only\n /// pass a Solidity selector to the expected calldata, then the entire Solidity\n /// function will be mocked.\n function mockCall(address callee, bytes calldata data, bytes calldata returnData) external;\n\n /// Mocks a call to an address with a specific `msg.value`, returning specified data.\n /// Calldata match takes precedence over `msg.value` in case of ambiguity.\n function mockCall(address callee, uint256 msgValue, bytes calldata data, bytes calldata returnData) external;\n\n /// Sets the *next* call's `msg.sender` to be the input address.\n function prank(address msgSender) external;\n\n /// Sets the *next* call's `msg.sender` to be the input address, and the `tx.origin` to be the second input.\n function prank(address msgSender, address txOrigin) external;\n\n /// Sets `block.prevrandao`.\n /// Not available on EVM versions before Paris. Use `difficulty` instead.\n /// If used on unsupported EVM versions it will revert.\n function prevrandao(bytes32 newPrevrandao) external;\n\n /// Sets `block.prevrandao`.\n /// Not available on EVM versions before Paris. Use `difficulty` instead.\n /// If used on unsupported EVM versions it will revert.\n function prevrandao(uint256 newPrevrandao) external;\n\n /// Reads the current `msg.sender` and `tx.origin` from state and reports if there is any active caller modification.\n function readCallers() external returns (CallerMode callerMode, address msgSender, address txOrigin);\n\n /// Resets the nonce of an account to 0 for EOAs and 1 for contract accounts.\n function resetNonce(address account) external;\n\n /// Revert the state of the EVM to a previous snapshot\n /// Takes the snapshot ID to revert to.\n /// Returns `true` if the snapshot was successfully reverted.\n /// Returns `false` if the snapshot does not exist.\n /// **Note:** This does not automatically delete the snapshot. To delete the snapshot use `deleteSnapshot`.\n function revertTo(uint256 snapshotId) external returns (bool success);\n\n /// Revert the state of the EVM to a previous snapshot and automatically deletes the snapshots\n /// Takes the snapshot ID to revert to.\n /// Returns `true` if the snapshot was successfully reverted and deleted.\n /// Returns `false` if the snapshot does not exist.\n function revertToAndDelete(uint256 snapshotId) external returns (bool success);\n\n /// Revokes persistent status from the address, previously added via `makePersistent`.\n function revokePersistent(address account) external;\n\n /// See `revokePersistent(address)`.\n function revokePersistent(address[] calldata accounts) external;\n\n /// Sets `block.height`.\n function roll(uint256 newHeight) external;\n\n /// Updates the currently active fork to given block number\n /// This is similar to `roll` but for the currently active fork.\n function rollFork(uint256 blockNumber) external;\n\n /// Updates the currently active fork to given transaction. This will `rollFork` with the number\n /// of the block the transaction was mined in and replays all transaction mined before it in the block.\n function rollFork(bytes32 txHash) external;\n\n /// Updates the given fork to given block number.\n function rollFork(uint256 forkId, uint256 blockNumber) external;\n\n /// Updates the given fork to block number of the given transaction and replays all transaction mined before it in the block.\n function rollFork(uint256 forkId, bytes32 txHash) external;\n\n /// Takes a fork identifier created by `createFork` and sets the corresponding forked state as active.\n function selectFork(uint256 forkId) external;\n\n /// Set blockhash for the current block.\n /// It only sets the blockhash for blocks where `block.number - 256 <= number < block.number`.\n function setBlockhash(uint256 blockNumber, bytes32 blockHash) external;\n\n /// Sets the nonce of an account. Must be higher than the current nonce of the account.\n function setNonce(address account, uint64 newNonce) external;\n\n /// Sets the nonce of an account to an arbitrary value.\n function setNonceUnsafe(address account, uint64 newNonce) external;\n\n /// Snapshot the current state of the evm.\n /// Returns the ID of the snapshot that was created.\n /// To revert a snapshot use `revertTo`.\n function snapshot() external returns (uint256 snapshotId);\n\n /// Sets all subsequent calls' `msg.sender` to be the input address until `stopPrank` is called.\n function startPrank(address msgSender) external;\n\n /// Sets all subsequent calls' `msg.sender` to be the input address until `stopPrank` is called, and the `tx.origin` to be the second input.\n function startPrank(address msgSender, address txOrigin) external;\n\n /// Resets subsequent calls' `msg.sender` to be `address(this)`.\n function stopPrank() external;\n\n /// Stores a value to an address' storage slot.\n function store(address target, bytes32 slot, bytes32 value) external;\n\n /// Fetches the given transaction from the active fork and executes it on the current state.\n function transact(bytes32 txHash) external;\n\n /// Fetches the given transaction from the given fork and executes it on the current state.\n function transact(uint256 forkId, bytes32 txHash) external;\n\n /// Sets `tx.gasprice`.\n function txGasPrice(uint256 newGasPrice) external;\n\n /// Sets `block.timestamp`.\n function warp(uint256 newTimestamp) external;\n\n // ======== Testing ========\n\n /// Expect a call to an address with the specified `msg.value` and calldata, and a *minimum* amount of gas.\n function expectCallMinGas(address callee, uint256 msgValue, uint64 minGas, bytes calldata data) external;\n\n /// Expect given number of calls to an address with the specified `msg.value` and calldata, and a *minimum* amount of gas.\n function expectCallMinGas(address callee, uint256 msgValue, uint64 minGas, bytes calldata data, uint64 count)\n external;\n\n /// Expects a call to an address with the specified calldata.\n /// Calldata can either be a strict or a partial match.\n function expectCall(address callee, bytes calldata data) external;\n\n /// Expects given number of calls to an address with the specified calldata.\n function expectCall(address callee, bytes calldata data, uint64 count) external;\n\n /// Expects a call to an address with the specified `msg.value` and calldata.\n function expectCall(address callee, uint256 msgValue, bytes calldata data) external;\n\n /// Expects given number of calls to an address with the specified `msg.value` and calldata.\n function expectCall(address callee, uint256 msgValue, bytes calldata data, uint64 count) external;\n\n /// Expect a call to an address with the specified `msg.value`, gas, and calldata.\n function expectCall(address callee, uint256 msgValue, uint64 gas, bytes calldata data) external;\n\n /// Expects given number of calls to an address with the specified `msg.value`, gas, and calldata.\n function expectCall(address callee, uint256 msgValue, uint64 gas, bytes calldata data, uint64 count) external;\n\n /// Prepare an expected anonymous log with (bool checkTopic1, bool checkTopic2, bool checkTopic3, bool checkData.).\n /// Call this function, then emit an anonymous event, then call a function. Internally after the call, we check if\n /// logs were emitted in the expected order with the expected topics and data (as specified by the booleans).\n function expectEmitAnonymous(bool checkTopic0, bool checkTopic1, bool checkTopic2, bool checkTopic3, bool checkData)\n external;\n\n /// Same as the previous method, but also checks supplied address against emitting contract.\n function expectEmitAnonymous(\n bool checkTopic0,\n bool checkTopic1,\n bool checkTopic2,\n bool checkTopic3,\n bool checkData,\n address emitter\n ) external;\n\n /// Prepare an expected anonymous log with all topic and data checks enabled.\n /// Call this function, then emit an anonymous event, then call a function. Internally after the call, we check if\n /// logs were emitted in the expected order with the expected topics and data.\n function expectEmitAnonymous() external;\n\n /// Same as the previous method, but also checks supplied address against emitting contract.\n function expectEmitAnonymous(address emitter) external;\n\n /// Prepare an expected log with (bool checkTopic1, bool checkTopic2, bool checkTopic3, bool checkData.).\n /// Call this function, then emit an event, then call a function. Internally after the call, we check if\n /// logs were emitted in the expected order with the expected topics and data (as specified by the booleans).\n function expectEmit(bool checkTopic1, bool checkTopic2, bool checkTopic3, bool checkData) external;\n\n /// Same as the previous method, but also checks supplied address against emitting contract.\n function expectEmit(bool checkTopic1, bool checkTopic2, bool checkTopic3, bool checkData, address emitter)\n external;\n\n /// Prepare an expected log with all topic and data checks enabled.\n /// Call this function, then emit an event, then call a function. Internally after the call, we check if\n /// logs were emitted in the expected order with the expected topics and data.\n function expectEmit() external;\n\n /// Same as the previous method, but also checks supplied address against emitting contract.\n function expectEmit(address emitter) external;\n\n /// Expects an error on next call with any revert data.\n function expectRevert() external;\n\n /// Expects an error on next call that starts with the revert data.\n function expectRevert(bytes4 revertData) external;\n\n /// Expects an error on next call that exactly matches the revert data.\n function expectRevert(bytes calldata revertData) external;\n\n /// Only allows memory writes to offsets [0x00, 0x60) ∪ [min, max) in the current subcontext. If any other\n /// memory is written to, the test will fail. Can be called multiple times to add more ranges to the set.\n function expectSafeMemory(uint64 min, uint64 max) external;\n\n /// Only allows memory writes to offsets [0x00, 0x60) ∪ [min, max) in the next created subcontext.\n /// If any other memory is written to, the test will fail. Can be called multiple times to add more ranges\n /// to the set.\n function expectSafeMemoryCall(uint64 min, uint64 max) external;\n\n /// Marks a test as skipped. Must be called at the top of the test.\n function skip(bool skipTest) external;\n\n /// Stops all safe memory expectation in the current subcontext.\n function stopExpectSafeMemory() external;\n}\n\n// lib/forge-std/src/console.sol\n\nlibrary console {\n address constant CONSOLE_ADDRESS = address(0x000000000000000000636F6e736F6c652e6c6f67);\n\n function _castLogPayloadViewToPure(\n function(bytes memory) internal view fnIn\n ) internal pure returns (function(bytes memory) internal pure fnOut) {\n assembly {\n fnOut := fnIn\n }\n }\n\n function _sendLogPayload(bytes memory payload) internal pure {\n _castLogPayloadViewToPure(_sendLogPayloadView)(payload);\n }\n\n function _sendLogPayloadView(bytes memory payload) private view {\n uint256 payloadLength = payload.length;\n address consoleAddress = CONSOLE_ADDRESS;\n /// @solidity memory-safe-assembly\n assembly {\n let payloadStart := add(payload, 32)\n let r := staticcall(gas(), consoleAddress, payloadStart, payloadLength, 0, 0)\n }\n }\n\n function log() internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log()\"));\n }\n\n function logInt(int p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(int)\", p0));\n }\n\n function logUint(uint p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint)\", p0));\n }\n\n function logString(string memory p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string)\", p0));\n }\n\n function logBool(bool p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool)\", p0));\n }\n\n function logAddress(address p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address)\", p0));\n }\n\n function logBytes(bytes memory p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes)\", p0));\n }\n\n function logBytes1(bytes1 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes1)\", p0));\n }\n\n function logBytes2(bytes2 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes2)\", p0));\n }\n\n function logBytes3(bytes3 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes3)\", p0));\n }\n\n function logBytes4(bytes4 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes4)\", p0));\n }\n\n function logBytes5(bytes5 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes5)\", p0));\n }\n\n function logBytes6(bytes6 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes6)\", p0));\n }\n\n function logBytes7(bytes7 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes7)\", p0));\n }\n\n function logBytes8(bytes8 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes8)\", p0));\n }\n\n function logBytes9(bytes9 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes9)\", p0));\n }\n\n function logBytes10(bytes10 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes10)\", p0));\n }\n\n function logBytes11(bytes11 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes11)\", p0));\n }\n\n function logBytes12(bytes12 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes12)\", p0));\n }\n\n function logBytes13(bytes13 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes13)\", p0));\n }\n\n function logBytes14(bytes14 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes14)\", p0));\n }\n\n function logBytes15(bytes15 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes15)\", p0));\n }\n\n function logBytes16(bytes16 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes16)\", p0));\n }\n\n function logBytes17(bytes17 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes17)\", p0));\n }\n\n function logBytes18(bytes18 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes18)\", p0));\n }\n\n function logBytes19(bytes19 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes19)\", p0));\n }\n\n function logBytes20(bytes20 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes20)\", p0));\n }\n\n function logBytes21(bytes21 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes21)\", p0));\n }\n\n function logBytes22(bytes22 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes22)\", p0));\n }\n\n function logBytes23(bytes23 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes23)\", p0));\n }\n\n function logBytes24(bytes24 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes24)\", p0));\n }\n\n function logBytes25(bytes25 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes25)\", p0));\n }\n\n function logBytes26(bytes26 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes26)\", p0));\n }\n\n function logBytes27(bytes27 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes27)\", p0));\n }\n\n function logBytes28(bytes28 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes28)\", p0));\n }\n\n function logBytes29(bytes29 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes29)\", p0));\n }\n\n function logBytes30(bytes30 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes30)\", p0));\n }\n\n function logBytes31(bytes31 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes31)\", p0));\n }\n\n function logBytes32(bytes32 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes32)\", p0));\n }\n\n function log(uint p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint)\", p0));\n }\n\n function log(int p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(int)\", p0));\n }\n\n function log(string memory p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string)\", p0));\n }\n\n function log(bool p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool)\", p0));\n }\n\n function log(address p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address)\", p0));\n }\n\n function log(uint p0, uint p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,uint)\", p0, p1));\n }\n\n function log(uint p0, string memory p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,string)\", p0, p1));\n }\n\n function log(uint p0, bool p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,bool)\", p0, p1));\n }\n\n function log(uint p0, address p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,address)\", p0, p1));\n }\n\n function log(string memory p0, uint p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint)\", p0, p1));\n }\n\n function log(string memory p0, int p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,int)\", p0, p1));\n }\n\n function log(string memory p0, string memory p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string)\", p0, p1));\n }\n\n function log(string memory p0, bool p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool)\", p0, p1));\n }\n\n function log(string memory p0, address p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address)\", p0, p1));\n }\n\n function log(bool p0, uint p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint)\", p0, p1));\n }\n\n function log(bool p0, string memory p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string)\", p0, p1));\n }\n\n function log(bool p0, bool p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool)\", p0, p1));\n }\n\n function log(bool p0, address p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address)\", p0, p1));\n }\n\n function log(address p0, uint p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint)\", p0, p1));\n }\n\n function log(address p0, string memory p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string)\", p0, p1));\n }\n\n function log(address p0, bool p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool)\", p0, p1));\n }\n\n function log(address p0, address p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address)\", p0, p1));\n }\n\n function log(uint p0, uint p1, uint p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,uint,uint)\", p0, p1, p2));\n }\n\n function log(uint p0, uint p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,uint,string)\", p0, p1, p2));\n }\n\n function log(uint p0, uint p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,uint,bool)\", p0, p1, p2));\n }\n\n function log(uint p0, uint p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,uint,address)\", p0, p1, p2));\n }\n\n function log(uint p0, string memory p1, uint p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,string,uint)\", p0, p1, p2));\n }\n\n function log(uint p0, string memory p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,string,string)\", p0, p1, p2));\n }\n\n function log(uint p0, string memory p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,string,bool)\", p0, p1, p2));\n }\n\n function log(uint p0, string memory p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,string,address)\", p0, p1, p2));\n }\n\n function log(uint p0, bool p1, uint p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,bool,uint)\", p0, p1, p2));\n }\n\n function log(uint p0, bool p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,bool,string)\", p0, p1, p2));\n }\n\n function log(uint p0, bool p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,bool,bool)\", p0, p1, p2));\n }\n\n function log(uint p0, bool p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,bool,address)\", p0, p1, p2));\n }\n\n function log(uint p0, address p1, uint p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,address,uint)\", p0, p1, p2));\n }\n\n function log(uint p0, address p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,address,string)\", p0, p1, p2));\n }\n\n function log(uint p0, address p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,address,bool)\", p0, p1, p2));\n }\n\n function log(uint p0, address p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,address,address)\", p0, p1, p2));\n }\n\n function log(string memory p0, uint p1, uint p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint,uint)\", p0, p1, p2));\n }\n\n function log(string memory p0, uint p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint,string)\", p0, p1, p2));\n }\n\n function log(string memory p0, uint p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint,bool)\", p0, p1, p2));\n }\n\n function log(string memory p0, uint p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint,address)\", p0, p1, p2));\n }\n\n function log(string memory p0, string memory p1, uint p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,uint)\", p0, p1, p2));\n }\n\n function log(string memory p0, string memory p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,string)\", p0, p1, p2));\n }\n\n function log(string memory p0, string memory p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,bool)\", p0, p1, p2));\n }\n\n function log(string memory p0, string memory p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,address)\", p0, p1, p2));\n }\n\n function log(string memory p0, bool p1, uint p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,uint)\", p0, p1, p2));\n }\n\n function log(string memory p0, bool p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,string)\", p0, p1, p2));\n }\n\n function log(string memory p0, bool p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,bool)\", p0, p1, p2));\n }\n\n function log(string memory p0, bool p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,address)\", p0, p1, p2));\n }\n\n function log(string memory p0, address p1, uint p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,uint)\", p0, p1, p2));\n }\n\n function log(string memory p0, address p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,string)\", p0, p1, p2));\n }\n\n function log(string memory p0, address p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,bool)\", p0, p1, p2));\n }\n\n function log(string memory p0, address p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,address)\", p0, p1, p2));\n }\n\n function log(bool p0, uint p1, uint p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint,uint)\", p0, p1, p2));\n }\n\n function log(bool p0, uint p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint,string)\", p0, p1, p2));\n }\n\n function log(bool p0, uint p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint,bool)\", p0, p1, p2));\n }\n\n function log(bool p0, uint p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint,address)\", p0, p1, p2));\n }\n\n function log(bool p0, string memory p1, uint p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,uint)\", p0, p1, p2));\n }\n\n function log(bool p0, string memory p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,string)\", p0, p1, p2));\n }\n\n function log(bool p0, string memory p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,bool)\", p0, p1, p2));\n }\n\n function log(bool p0, string memory p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,address)\", p0, p1, p2));\n }\n\n function log(bool p0, bool p1, uint p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,uint)\", p0, p1, p2));\n }\n\n function log(bool p0, bool p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,string)\", p0, p1, p2));\n }\n\n function log(bool p0, bool p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,bool)\", p0, p1, p2));\n }\n\n function log(bool p0, bool p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,address)\", p0, p1, p2));\n }\n\n function log(bool p0, address p1, uint p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,uint)\", p0, p1, p2));\n }\n\n function log(bool p0, address p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,string)\", p0, p1, p2));\n }\n\n function log(bool p0, address p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,bool)\", p0, p1, p2));\n }\n\n function log(bool p0, address p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,address)\", p0, p1, p2));\n }\n\n function log(address p0, uint p1, uint p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint,uint)\", p0, p1, p2));\n }\n\n function log(address p0, uint p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint,string)\", p0, p1, p2));\n }\n\n function log(address p0, uint p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint,bool)\", p0, p1, p2));\n }\n\n function log(address p0, uint p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint,address)\", p0, p1, p2));\n }\n\n function log(address p0, string memory p1, uint p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,uint)\", p0, p1, p2));\n }\n\n function log(address p0, string memory p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,string)\", p0, p1, p2));\n }\n\n function log(address p0, string memory p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,bool)\", p0, p1, p2));\n }\n\n function log(address p0, string memory p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,address)\", p0, p1, p2));\n }\n\n function log(address p0, bool p1, uint p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,uint)\", p0, p1, p2));\n }\n\n function log(address p0, bool p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,string)\", p0, p1, p2));\n }\n\n function log(address p0, bool p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,bool)\", p0, p1, p2));\n }\n\n function log(address p0, bool p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,address)\", p0, p1, p2));\n }\n\n function log(address p0, address p1, uint p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,uint)\", p0, p1, p2));\n }\n\n function log(address p0, address p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,string)\", p0, p1, p2));\n }\n\n function log(address p0, address p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,bool)\", p0, p1, p2));\n }\n\n function log(address p0, address p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,address)\", p0, p1, p2));\n }\n\n function log(uint p0, uint p1, uint p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,uint,uint,uint)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, uint p1, uint p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,uint,uint,string)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, uint p1, uint p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,uint,uint,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, uint p1, uint p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,uint,uint,address)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, uint p1, string memory p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,uint,string,uint)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, uint p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,uint,string,string)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, uint p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,uint,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, uint p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,uint,string,address)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, uint p1, bool p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,uint,bool,uint)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, uint p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,uint,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, uint p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,uint,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, uint p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,uint,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, uint p1, address p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,uint,address,uint)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, uint p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,uint,address,string)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, uint p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,uint,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, uint p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,uint,address,address)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, string memory p1, uint p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,string,uint,uint)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, string memory p1, uint p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,string,uint,string)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, string memory p1, uint p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,string,uint,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, string memory p1, uint p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,string,uint,address)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, string memory p1, string memory p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,string,string,uint)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, string memory p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,string,string,string)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, string memory p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,string,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, string memory p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,string,string,address)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, string memory p1, bool p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,string,bool,uint)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, string memory p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,string,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, string memory p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,string,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, string memory p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,string,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, string memory p1, address p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,string,address,uint)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, string memory p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,string,address,string)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, string memory p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,string,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, string memory p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,string,address,address)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, bool p1, uint p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,bool,uint,uint)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, bool p1, uint p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,bool,uint,string)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, bool p1, uint p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,bool,uint,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, bool p1, uint p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,bool,uint,address)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, bool p1, string memory p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,bool,string,uint)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, bool p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,bool,string,string)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, bool p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,bool,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, bool p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,bool,string,address)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, bool p1, bool p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,bool,bool,uint)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, bool p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,bool,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, bool p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,bool,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, bool p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,bool,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, bool p1, address p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,bool,address,uint)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, bool p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,bool,address,string)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, bool p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,bool,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, bool p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,bool,address,address)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, address p1, uint p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,address,uint,uint)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, address p1, uint p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,address,uint,string)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, address p1, uint p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,address,uint,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, address p1, uint p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,address,uint,address)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, address p1, string memory p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,address,string,uint)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, address p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,address,string,string)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, address p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,address,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, address p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,address,string,address)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, address p1, bool p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,address,bool,uint)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, address p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,address,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, address p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,address,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, address p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,address,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, address p1, address p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,address,address,uint)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, address p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,address,address,string)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, address p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,address,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint p0, address p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint,address,address,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint p1, uint p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint,uint,uint)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint p1, uint p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint,uint,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint p1, uint p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint,uint,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint p1, uint p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint,uint,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint p1, string memory p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint,string,uint)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint,string,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint,string,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint p1, bool p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint,bool,uint)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint p1, address p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint,address,uint)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint,address,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint,address,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, uint p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,uint,uint)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, uint p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,uint,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, uint p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,uint,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, uint p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,uint,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, string memory p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,string,uint)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,string,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,string,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, bool p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,bool,uint)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, address p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,address,uint)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,address,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,address,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, uint p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,uint,uint)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, uint p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,uint,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, uint p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,uint,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, uint p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,uint,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, string memory p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,string,uint)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,string,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,string,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, bool p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,bool,uint)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, address p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,address,uint)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,address,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,address,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, uint p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,uint,uint)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, uint p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,uint,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, uint p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,uint,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, uint p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,uint,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, string memory p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,string,uint)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,string,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,string,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, bool p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,bool,uint)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, address p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,address,uint)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,address,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,address,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint p1, uint p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint,uint,uint)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint p1, uint p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint,uint,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint p1, uint p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint,uint,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint p1, uint p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint,uint,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint p1, string memory p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint,string,uint)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint,string,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint,string,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint p1, bool p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint,bool,uint)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint p1, address p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint,address,uint)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint,address,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint,address,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, uint p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,uint,uint)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, uint p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,uint,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, uint p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,uint,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, uint p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,uint,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, string memory p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,string,uint)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,string,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,string,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, bool p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,bool,uint)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, address p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,address,uint)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,address,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,address,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, uint p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,uint,uint)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, uint p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,uint,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, uint p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,uint,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, uint p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,uint,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, string memory p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,string,uint)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,string,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,string,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, bool p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,bool,uint)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, address p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,address,uint)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,address,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,address,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, uint p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,uint,uint)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, uint p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,uint,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, uint p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,uint,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, uint p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,uint,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, string memory p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,string,uint)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,string,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,string,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, bool p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,bool,uint)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, address p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,address,uint)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,address,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,address,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint p1, uint p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint,uint,uint)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint p1, uint p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint,uint,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint p1, uint p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint,uint,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint p1, uint p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint,uint,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint p1, string memory p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint,string,uint)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint,string,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint,string,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint p1, bool p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint,bool,uint)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint p1, address p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint,address,uint)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint,address,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint,address,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, uint p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,uint,uint)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, uint p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,uint,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, uint p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,uint,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, uint p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,uint,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, string memory p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,string,uint)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,string,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,string,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, bool p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,bool,uint)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, address p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,address,uint)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,address,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,address,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, uint p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,uint,uint)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, uint p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,uint,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, uint p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,uint,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, uint p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,uint,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, string memory p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,string,uint)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,string,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,string,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, bool p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,bool,uint)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, address p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,address,uint)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,address,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,address,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, uint p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,uint,uint)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, uint p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,uint,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, uint p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,uint,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, uint p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,uint,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, string memory p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,string,uint)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,string,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,string,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, bool p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,bool,uint)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, address p2, uint p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,address,uint)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,address,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,address,address)\", p0, p1, p2, p3));\n }\n}\n\n// lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\n\n// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC1967.sol)\n\n/**\n * @dev ERC-1967: Proxy Storage Slots. This interface contains the events defined in the ERC.\n */\ninterface IERC1967 {\n /**\n * @dev Emitted when the implementation is upgraded.\n */\n event Upgraded(address indexed implementation);\n\n /**\n * @dev Emitted when the admin account has changed.\n */\n event AdminChanged(address previousAdmin, address newAdmin);\n\n /**\n * @dev Emitted when the beacon is changed.\n */\n event BeaconUpgraded(address indexed beacon);\n}\n\n// lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/proxy/Proxy.sol\n\n// OpenZeppelin Contracts (last updated v5.0.0) (proxy/Proxy.sol)\n\n/**\n * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM\n * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to\n * be specified by overriding the virtual {_implementation} function.\n *\n * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a\n * different contract through the {_delegate} function.\n *\n * The success and return data of the delegated call will be returned back to the caller of the proxy.\n */\nabstract contract Proxy {\n /**\n * @dev Delegates the current call to `implementation`.\n *\n * This function does not return to its internal call site, it will return directly to the external caller.\n */\n function _delegate(address implementation) internal virtual {\n assembly {\n // Copy msg.data. We take full control of memory in this inline assembly\n // block because it will not return to Solidity code. We overwrite the\n // Solidity scratch pad at memory position 0.\n calldatacopy(0, 0, calldatasize())\n\n // Call the implementation.\n // out and outsize are 0 because we don't know the size yet.\n let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0)\n\n // Copy the returned data.\n returndatacopy(0, 0, returndatasize())\n\n switch result\n // delegatecall returns 0 on error.\n case 0 {\n revert(0, returndatasize())\n }\n default {\n return(0, returndatasize())\n }\n }\n }\n\n /**\n * @dev This is a virtual function that should be overridden so it returns the address to which the fallback\n * function and {_fallback} should delegate.\n */\n function _implementation() internal view virtual returns (address);\n\n /**\n * @dev Delegates the current call to the address returned by `_implementation()`.\n *\n * This function does not return to its internal call site, it will return directly to the external caller.\n */\n function _fallback() internal virtual {\n _delegate(_implementation());\n }\n\n /**\n * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other\n * function in the contract matches the call data.\n */\n fallback() external payable virtual {\n _fallback();\n }\n}\n\n// lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\n\n// OpenZeppelin Contracts (last updated v5.0.0) (proxy/beacon/IBeacon.sol)\n\n/**\n * @dev This is the interface that {BeaconProxy} expects of its beacon.\n */\ninterface IBeacon {\n /**\n * @dev Must return an address that can be used as a delegate call target.\n *\n * {UpgradeableBeacon} will check that this address is a contract.\n */\n function implementation() external view returns (address);\n}\n\n// lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Address.sol\n\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/Address.sol)\n\n/**\n * @dev Collection of functions related to the address type\n */\nlibrary Address {\n /**\n * @dev The ETH balance of the account is not enough to perform the operation.\n */\n error AddressInsufficientBalance(address account);\n\n /**\n * @dev There's no code at `target` (it is not a contract).\n */\n error AddressEmptyCode(address target);\n\n /**\n * @dev A call to an address target failed. The target may have reverted.\n */\n error FailedInnerCall();\n\n /**\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n * `recipient`, forwarding all available gas and reverting on errors.\n *\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\n * imposed by `transfer`, making them unable to receive funds via\n * `transfer`. {sendValue} removes this limitation.\n *\n * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n *\n * IMPORTANT: because control is transferred to `recipient`, care must be\n * taken to not create reentrancy vulnerabilities. Consider using\n * {ReentrancyGuard} or the\n * https://solidity.readthedocs.io/en/v0.8.20/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\n */\n function sendValue(address payable recipient, uint256 amount) internal {\n if (address(this).balance < amount) {\n revert AddressInsufficientBalance(address(this));\n }\n\n (bool success, ) = recipient.call{value: amount}(\"\");\n if (!success) {\n revert FailedInnerCall();\n }\n }\n\n /**\n * @dev Performs a Solidity function call using a low level `call`. A\n * plain `call` is an unsafe replacement for a function call: use this\n * function instead.\n *\n * If `target` reverts with a revert reason or custom error, it is bubbled\n * up by this function (like regular Solidity function calls). However, if\n * the call reverted with no returned reason, this function reverts with a\n * {FailedInnerCall} error.\n *\n * Returns the raw returned data. To convert to the expected return value,\n * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n *\n * Requirements:\n *\n * - `target` must be a contract.\n * - calling `target` with `data` must not revert.\n */\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\n return functionCallWithValue(target, data, 0);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but also transferring `value` wei to `target`.\n *\n * Requirements:\n *\n * - the calling contract must have an ETH balance of at least `value`.\n * - the called Solidity function must be `payable`.\n */\n function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\n if (address(this).balance < value) {\n revert AddressInsufficientBalance(address(this));\n }\n (bool success, bytes memory returndata) = target.call{value: value}(data);\n return verifyCallResultFromTarget(target, success, returndata);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a static call.\n */\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\n (bool success, bytes memory returndata) = target.staticcall(data);\n return verifyCallResultFromTarget(target, success, returndata);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a delegate call.\n */\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\n (bool success, bytes memory returndata) = target.delegatecall(data);\n return verifyCallResultFromTarget(target, success, returndata);\n }\n\n /**\n * @dev Tool to verify that a low level call to smart-contract was successful, and reverts if the target\n * was not a contract or bubbling up the revert reason (falling back to {FailedInnerCall}) in case of an\n * unsuccessful call.\n */\n function verifyCallResultFromTarget(\n address target,\n bool success,\n bytes memory returndata\n ) internal view returns (bytes memory) {\n if (!success) {\n _revert(returndata);\n } else {\n // only check if target is a contract if the call was successful and the return data is empty\n // otherwise we already know that it was a contract\n if (returndata.length == 0 && target.code.length == 0) {\n revert AddressEmptyCode(target);\n }\n return returndata;\n }\n }\n\n /**\n * @dev Tool to verify that a low level call was successful, and reverts if it wasn't, either by bubbling the\n * revert reason or with a default {FailedInnerCall} error.\n */\n function verifyCallResult(bool success, bytes memory returndata) internal pure returns (bytes memory) {\n if (!success) {\n _revert(returndata);\n } else {\n return returndata;\n }\n }\n\n /**\n * @dev Reverts with returndata if present. Otherwise reverts with {FailedInnerCall}.\n */\n function _revert(bytes memory returndata) private pure {\n // Look for revert reason and bubble it up if present\n if (returndata.length > 0) {\n // The easiest way to bubble the revert reason is using memory via assembly\n /// @solidity memory-safe-assembly\n assembly {\n let returndata_size := mload(returndata)\n revert(add(32, returndata), returndata_size)\n }\n } else {\n revert FailedInnerCall();\n }\n }\n}\n\n// lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Context.sol\n\n// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n function _msgSender() internal view virtual returns (address) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes calldata) {\n return msg.data;\n }\n\n function _contextSuffixLength() internal view virtual returns (uint256) {\n return 0;\n }\n}\n\n// lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\n\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/StorageSlot.sol)\n// This file was procedurally generated from scripts/generate/templates/StorageSlot.js.\n\n/**\n * @dev Library for reading and writing primitive types to specific storage slots.\n *\n * Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\n * This library helps with reading and writing to such slots without the need for inline assembly.\n *\n * The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\n *\n * Example usage to set ERC1967 implementation slot:\n * ```solidity\n * contract ERC1967 {\n * bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n *\n * function _getImplementation() internal view returns (address) {\n * return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\n * }\n *\n * function _setImplementation(address newImplementation) internal {\n * require(newImplementation.code.length > 0);\n * StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\n * }\n * }\n * ```\n */\nlibrary StorageSlot {\n struct AddressSlot {\n address value;\n }\n\n struct BooleanSlot {\n bool value;\n }\n\n struct Bytes32Slot {\n bytes32 value;\n }\n\n struct Uint256Slot {\n uint256 value;\n }\n\n struct StringSlot {\n string value;\n }\n\n struct BytesSlot {\n bytes value;\n }\n\n /**\n * @dev Returns an `AddressSlot` with member `value` located at `slot`.\n */\n function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `BooleanSlot` with member `value` located at `slot`.\n */\n function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `Bytes32Slot` with member `value` located at `slot`.\n */\n function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `Uint256Slot` with member `value` located at `slot`.\n */\n function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `StringSlot` with member `value` located at `slot`.\n */\n function getStringSlot(bytes32 slot) internal pure returns (StringSlot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `StringSlot` representation of the string storage pointer `store`.\n */\n function getStringSlot(string storage store) internal pure returns (StringSlot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := store.slot\n }\n }\n\n /**\n * @dev Returns an `BytesSlot` with member `value` located at `slot`.\n */\n function getBytesSlot(bytes32 slot) internal pure returns (BytesSlot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `BytesSlot` representation of the bytes storage pointer `store`.\n */\n function getBytesSlot(bytes storage store) internal pure returns (BytesSlot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := store.slot\n }\n }\n}\n\n// lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/math/Math.sol\n\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/math/Math.sol)\n\n/**\n * @dev Standard math utilities missing in the Solidity language.\n */\nlibrary Math {\n /**\n * @dev Muldiv operation overflow.\n */\n error MathOverflowedMulDiv();\n\n enum Rounding {\n Floor, // Toward negative infinity\n Ceil, // Toward positive infinity\n Trunc, // Toward zero\n Expand // Away from zero\n }\n\n /**\n * @dev Returns the addition of two unsigned integers, with an overflow flag.\n */\n function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n uint256 c = a + b;\n if (c < a) return (false, 0);\n return (true, c);\n }\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, with an overflow flag.\n */\n function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n if (b > a) return (false, 0);\n return (true, a - b);\n }\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n */\n function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\n // benefit is lost if 'b' is also tested.\n // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\n if (a == 0) return (true, 0);\n uint256 c = a * b;\n if (c / a != b) return (false, 0);\n return (true, c);\n }\n }\n\n /**\n * @dev Returns the division of two unsigned integers, with a division by zero flag.\n */\n function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n if (b == 0) return (false, 0);\n return (true, a / b);\n }\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n */\n function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n if (b == 0) return (false, 0);\n return (true, a % b);\n }\n }\n\n /**\n * @dev Returns the largest of two numbers.\n */\n function max(uint256 a, uint256 b) internal pure returns (uint256) {\n return a > b ? a : b;\n }\n\n /**\n * @dev Returns the smallest of two numbers.\n */\n function min(uint256 a, uint256 b) internal pure returns (uint256) {\n return a < b ? a : b;\n }\n\n /**\n * @dev Returns the average of two numbers. The result is rounded towards\n * zero.\n */\n function average(uint256 a, uint256 b) internal pure returns (uint256) {\n // (a + b) / 2 can overflow.\n return (a & b) + (a ^ b) / 2;\n }\n\n /**\n * @dev Returns the ceiling of the division of two numbers.\n *\n * This differs from standard division with `/` in that it rounds towards infinity instead\n * of rounding towards zero.\n */\n function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) {\n if (b == 0) {\n // Guarantee the same behavior as in a regular Solidity division.\n return a / b;\n }\n\n // (a + b - 1) / b can overflow on addition, so we distribute.\n return a == 0 ? 0 : (a - 1) / b + 1;\n }\n\n /**\n * @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or\n * denominator == 0.\n * @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv) with further edits by\n * Uniswap Labs also under MIT license.\n */\n function mulDiv(uint256 x, uint256 y, uint256 denominator) internal pure returns (uint256 result) {\n unchecked {\n // 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2^256 and mod 2^256 - 1, then use\n // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256\n // variables such that product = prod1 * 2^256 + prod0.\n uint256 prod0 = x * y; // Least significant 256 bits of the product\n uint256 prod1; // Most significant 256 bits of the product\n assembly {\n let mm := mulmod(x, y, not(0))\n prod1 := sub(sub(mm, prod0), lt(mm, prod0))\n }\n\n // Handle non-overflow cases, 256 by 256 division.\n if (prod1 == 0) {\n // Solidity will revert if denominator == 0, unlike the div opcode on its own.\n // The surrounding unchecked block does not change this fact.\n // See https://docs.soliditylang.org/en/latest/control-structures.html#checked-or-unchecked-arithmetic.\n return prod0 / denominator;\n }\n\n // Make sure the result is less than 2^256. Also prevents denominator == 0.\n if (denominator <= prod1) {\n revert MathOverflowedMulDiv();\n }\n\n ///////////////////////////////////////////////\n // 512 by 256 division.\n ///////////////////////////////////////////////\n\n // Make division exact by subtracting the remainder from [prod1 prod0].\n uint256 remainder;\n assembly {\n // Compute remainder using mulmod.\n remainder := mulmod(x, y, denominator)\n\n // Subtract 256 bit number from 512 bit number.\n prod1 := sub(prod1, gt(remainder, prod0))\n prod0 := sub(prod0, remainder)\n }\n\n // Factor powers of two out of denominator and compute largest power of two divisor of denominator.\n // Always >= 1. See https://cs.stackexchange.com/q/138556/92363.\n\n uint256 twos = denominator & (0 - denominator);\n assembly {\n // Divide denominator by twos.\n denominator := div(denominator, twos)\n\n // Divide [prod1 prod0] by twos.\n prod0 := div(prod0, twos)\n\n // Flip twos such that it is 2^256 / twos. If twos is zero, then it becomes one.\n twos := add(div(sub(0, twos), twos), 1)\n }\n\n // Shift in bits from prod1 into prod0.\n prod0 |= prod1 * twos;\n\n // Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such\n // that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for\n // four bits. That is, denominator * inv = 1 mod 2^4.\n uint256 inverse = (3 * denominator) ^ 2;\n\n // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also\n // works in modular arithmetic, doubling the correct bits in each step.\n inverse *= 2 - denominator * inverse; // inverse mod 2^8\n inverse *= 2 - denominator * inverse; // inverse mod 2^16\n inverse *= 2 - denominator * inverse; // inverse mod 2^32\n inverse *= 2 - denominator * inverse; // inverse mod 2^64\n inverse *= 2 - denominator * inverse; // inverse mod 2^128\n inverse *= 2 - denominator * inverse; // inverse mod 2^256\n\n // Because the division is now exact we can divide by multiplying with the modular inverse of denominator.\n // This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is\n // less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1\n // is no longer required.\n result = prod0 * inverse;\n return result;\n }\n }\n\n /**\n * @notice Calculates x * y / denominator with full precision, following the selected rounding direction.\n */\n function mulDiv(uint256 x, uint256 y, uint256 denominator, Rounding rounding) internal pure returns (uint256) {\n uint256 result = mulDiv(x, y, denominator);\n if (unsignedRoundsUp(rounding) && mulmod(x, y, denominator) > 0) {\n result += 1;\n }\n return result;\n }\n\n /**\n * @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded\n * towards zero.\n *\n * Inspired by Henry S. Warren, Jr.'s \"Hacker's Delight\" (Chapter 11).\n */\n function sqrt(uint256 a) internal pure returns (uint256) {\n if (a == 0) {\n return 0;\n }\n\n // For our first guess, we get the biggest power of 2 which is smaller than the square root of the target.\n //\n // We know that the \"msb\" (most significant bit) of our target number `a` is a power of 2 such that we have\n // `msb(a) <= a < 2*msb(a)`. This value can be written `msb(a)=2**k` with `k=log2(a)`.\n //\n // This can be rewritten `2**log2(a) <= a < 2**(log2(a) + 1)`\n // → `sqrt(2**k) <= sqrt(a) < sqrt(2**(k+1))`\n // → `2**(k/2) <= sqrt(a) < 2**((k+1)/2) <= 2**(k/2 + 1)`\n //\n // Consequently, `2**(log2(a) / 2)` is a good first approximation of `sqrt(a)` with at least 1 correct bit.\n uint256 result = 1 << (log2(a) >> 1);\n\n // At this point `result` is an estimation with one bit of precision. We know the true value is a uint128,\n // since it is the square root of a uint256. Newton's method converges quadratically (precision doubles at\n // every iteration). We thus need at most 7 iteration to turn our partial result with one bit of precision\n // into the expected uint128 result.\n unchecked {\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n return min(result, a / result);\n }\n }\n\n /**\n * @notice Calculates sqrt(a), following the selected rounding direction.\n */\n function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = sqrt(a);\n return result + (unsignedRoundsUp(rounding) && result * result < a ? 1 : 0);\n }\n }\n\n /**\n * @dev Return the log in base 2 of a positive value rounded towards zero.\n * Returns 0 if given 0.\n */\n function log2(uint256 value) internal pure returns (uint256) {\n uint256 result = 0;\n unchecked {\n if (value >> 128 > 0) {\n value >>= 128;\n result += 128;\n }\n if (value >> 64 > 0) {\n value >>= 64;\n result += 64;\n }\n if (value >> 32 > 0) {\n value >>= 32;\n result += 32;\n }\n if (value >> 16 > 0) {\n value >>= 16;\n result += 16;\n }\n if (value >> 8 > 0) {\n value >>= 8;\n result += 8;\n }\n if (value >> 4 > 0) {\n value >>= 4;\n result += 4;\n }\n if (value >> 2 > 0) {\n value >>= 2;\n result += 2;\n }\n if (value >> 1 > 0) {\n result += 1;\n }\n }\n return result;\n }\n\n /**\n * @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n * Returns 0 if given 0.\n */\n function log2(uint256 value, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = log2(value);\n return result + (unsignedRoundsUp(rounding) && 1 << result < value ? 1 : 0);\n }\n }\n\n /**\n * @dev Return the log in base 10 of a positive value rounded towards zero.\n * Returns 0 if given 0.\n */\n function log10(uint256 value) internal pure returns (uint256) {\n uint256 result = 0;\n unchecked {\n if (value >= 10 ** 64) {\n value /= 10 ** 64;\n result += 64;\n }\n if (value >= 10 ** 32) {\n value /= 10 ** 32;\n result += 32;\n }\n if (value >= 10 ** 16) {\n value /= 10 ** 16;\n result += 16;\n }\n if (value >= 10 ** 8) {\n value /= 10 ** 8;\n result += 8;\n }\n if (value >= 10 ** 4) {\n value /= 10 ** 4;\n result += 4;\n }\n if (value >= 10 ** 2) {\n value /= 10 ** 2;\n result += 2;\n }\n if (value >= 10 ** 1) {\n result += 1;\n }\n }\n return result;\n }\n\n /**\n * @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n * Returns 0 if given 0.\n */\n function log10(uint256 value, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = log10(value);\n return result + (unsignedRoundsUp(rounding) && 10 ** result < value ? 1 : 0);\n }\n }\n\n /**\n * @dev Return the log in base 256 of a positive value rounded towards zero.\n * Returns 0 if given 0.\n *\n * Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string.\n */\n function log256(uint256 value) internal pure returns (uint256) {\n uint256 result = 0;\n unchecked {\n if (value >> 128 > 0) {\n value >>= 128;\n result += 16;\n }\n if (value >> 64 > 0) {\n value >>= 64;\n result += 8;\n }\n if (value >> 32 > 0) {\n value >>= 32;\n result += 4;\n }\n if (value >> 16 > 0) {\n value >>= 16;\n result += 2;\n }\n if (value >> 8 > 0) {\n result += 1;\n }\n }\n return result;\n }\n\n /**\n * @dev Return the log in base 256, following the selected rounding direction, of a positive value.\n * Returns 0 if given 0.\n */\n function log256(uint256 value, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = log256(value);\n return result + (unsignedRoundsUp(rounding) && 1 << (result << 3) < value ? 1 : 0);\n }\n }\n\n /**\n * @dev Returns whether a provided rounding mode is considered rounding up for unsigned integers.\n */\n function unsignedRoundsUp(Rounding rounding) internal pure returns (bool) {\n return uint8(rounding) % 2 == 1;\n }\n}\n\n// lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\n\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/math/SignedMath.sol)\n\n/**\n * @dev Standard signed math utilities missing in the Solidity language.\n */\nlibrary SignedMath {\n /**\n * @dev Returns the largest of two signed numbers.\n */\n function max(int256 a, int256 b) internal pure returns (int256) {\n return a > b ? a : b;\n }\n\n /**\n * @dev Returns the smallest of two signed numbers.\n */\n function min(int256 a, int256 b) internal pure returns (int256) {\n return a < b ? a : b;\n }\n\n /**\n * @dev Returns the average of two signed numbers without overflow.\n * The result is rounded towards zero.\n */\n function average(int256 a, int256 b) internal pure returns (int256) {\n // Formula from the book \"Hacker's Delight\"\n int256 x = (a & b) + ((a ^ b) >> 1);\n return x + (int256(uint256(x) >> 255) & (a ^ b));\n }\n\n /**\n * @dev Returns the absolute unsigned value of a signed value.\n */\n function abs(int256 n) internal pure returns (uint256) {\n unchecked {\n // must be unchecked in order to support `n = type(int256).min`\n return uint256(n >= 0 ? n : -n);\n }\n }\n}\n\n// lib/openzeppelin-foundry-upgrades/src/Options.sol\n\n/**\n * Common options.\n */\nstruct Options {\n /*\n * The reference contract to use for storage layout comparisons, e.g. \"ContractV1.sol\" or \"ContractV1.sol:ContractV1\".\n * If not set, attempts to use the `@custom:oz-upgrades-from ` annotation from the contract.\n */\n string referenceContract;\n /*\n * Encoded constructor arguments for the implementation contract.\n * Note that these are different from initializer arguments, and will be used in the deployment of the implementation contract itself.\n * Can be used to initialize immutable variables.\n */\n bytes constructorData;\n /*\n * Selectively disable one or more validation errors. Comma-separated list that must be compatible with the\n * --unsafeAllow option described in https://docs.openzeppelin.com/upgrades-plugins/1.x/api-core#usage\n */\n string unsafeAllow;\n /*\n * Configure storage layout check to allow variable renaming\n */\n bool unsafeAllowRenames;\n /*\n * Skips checking for storage layout compatibility errors. This is a dangerous option meant to be used as a last resort.\n */\n bool unsafeSkipStorageCheck;\n /*\n * Skips all upgrade safety checks. This is a dangerous option meant to be used as a last resort.\n */\n bool unsafeSkipAllChecks;\n /*\n * Options for OpenZeppelin Defender deployments.\n */\n DefenderOptions defender;\n}\n\n/**\n * Options for OpenZeppelin Defender deployments.\n */\nstruct DefenderOptions {\n /*\n * Deploys contracts using OpenZeppelin Defender instead of broadcasting deployments through Forge. Defaults to `false`. See DEFENDER.md.\n *\n * NOTE: If using an EOA or Safe to deploy, go to https://defender.openzeppelin.com/v2/#/deploy[Defender deploy] to submit the pending deployment(s) while the script is running.\n * The script waits for each deployment to complete before it continues.\n */\n bool useDefenderDeploy;\n /*\n * When using OpenZeppelin Defender deployments, whether to skip verifying source code on block explorers. Defaults to `false`.\n */\n bool skipVerifySourceCode;\n /*\n * When using OpenZeppelin Defender deployments, the ID of the relayer to use for the deployment. Defaults to the relayer configured for your deployment environment on Defender.\n */\n string relayerId;\n /*\n * Applies to OpenZeppelin Defender deployments only.\n * If this is not set, deployments will be performed using the CREATE opcode.\n * If this is set, deployments will be performed using the CREATE2 opcode with the provided salt.\n * Note that deployments using a Safe are done using CREATE2 and require a salt.\n *\n * WARNING: CREATE2 affects `msg.sender` behavior. See https://docs.openzeppelin.com/defender/v2/tutorial/deploy#deploy-caveat for more information.\n */\n bytes32 salt;\n /*\n * The ID of the upgrade approval process to use when proposing an upgrade.\n * Defaults to the upgrade approval process configured for your deployment environment on Defender.\n */\n string upgradeApprovalProcessId;\n /*\n * License type to display on block explorers for verified source code.\n * See https://etherscan.io/contract-license-types for supported values and use the string found in brackets, e.g. MIT.\n * If not set, infers the license type by using the SPDX license identifier from the contract's Solidity file.\n * Cannot be set if `skipLicenseType` or `skipVerifySourceCode` is `true`.\n */\n string licenseType;\n /*\n * If set to `true`, does not set the license type on block explorers for verified source code.\n * Use this if your contract's license type is not supported by block explorers.\n * Defaults to `false`.\n */\n bool skipLicenseType;\n /*\n * Transaction overrides for OpenZeppelin Defender deployments.\n */\n TxOverrides txOverrides;\n /*\n * When using OpenZeppelin Defender deployments, you can use this to identify, tag, or classify deployments.\n * See https://docs.openzeppelin.com/defender/module/deploy#metadata.\n * Must be a JSON string, for example: '{ \"commitHash\": \"4ae3e0d\", \"tag\": \"v1.0.0\", \"anyOtherField\": \"anyValue\" }'\n */\n string metadata;\n}\n\n/**\n * Transaction overrides for OpenZeppelin Defender deployments.\n */\nstruct TxOverrides {\n /*\n * Maximum amount of gas to allow the deployment transaction to use.\n */\n uint256 gasLimit;\n /*\n * Gas price for legacy transactions, in wei.\n */\n uint256 gasPrice;\n /*\n * Maximum total fee per gas, in wei.\n */\n uint256 maxFeePerGas;\n /*\n * Maximum priority fee per gas, in wei.\n */\n uint256 maxPriorityFeePerGas;\n}\n\n// lib/openzeppelin-foundry-upgrades/src/internal/Versions.sol\n\nlibrary Versions {\n // TODO add a workflow to update this automatically based on package.json\n string constant UPGRADES_CORE = \"^1.32.3\";\n string constant DEFENDER_DEPLOY_CLIENT_CLI = \"0.0.1-alpha.9\";\n}\n\n// lib/openzeppelin-foundry-upgrades/src/internal/interfaces/IProxyAdmin.sol\n\ninterface IProxyAdmin {\n /**\n * Upgrades a proxy to a new implementation without calling a function on the new implementation.\n */\n function upgrade(address, address) external;\n\n /**\n * Upgrades a proxy to a new implementation and calls a function on the new implementation.\n * If UPGRADE_INTERFACE_VERSION is \"5.0.0\", bytes can be empty if no function should be called on the new implementation.\n */\n function upgradeAndCall(address, address, bytes memory) external payable;\n}\n\n// lib/openzeppelin-foundry-upgrades/src/internal/interfaces/IUpgradeableBeacon.sol\n\ninterface IUpgradeableBeacon {\n /**\n * Upgrades the beacon to a new implementation.\n */\n function upgradeTo(address) external;\n}\n\n// lib/openzeppelin-foundry-upgrades/src/internal/interfaces/IUpgradeableProxy.sol\n\ninterface IUpgradeableProxy {\n /**\n * Upgrades the proxy to a new implementation without calling a function on the new implementation.\n */\n function upgradeTo(address) external;\n\n /**\n * Upgrades the proxy to a new implementation and calls a function on the new implementation.\n * If UPGRADE_INTERFACE_VERSION is \"5.0.0\", bytes can be empty if no function should be called on the new implementation.\n */\n function upgradeToAndCall(address, bytes memory) external payable;\n}\n\n// lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/Ownable.sol\n\n// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)\n\n/**\n * @dev Contract module which provides a basic access control mechanism, where\n * there is an account (an owner) that can be granted exclusive access to\n * specific functions.\n *\n * The initial owner is set to the address provided by the deployer. This can\n * later be changed with {transferOwnership}.\n *\n * This module is used through inheritance. It will make available the modifier\n * `onlyOwner`, which can be applied to your functions to restrict their use to\n * the owner.\n */\nabstract contract Ownable is Context {\n address private _owner;\n\n /**\n * @dev The caller account is not authorized to perform an operation.\n */\n error OwnableUnauthorizedAccount(address account);\n\n /**\n * @dev The owner is not a valid owner account. (eg. `address(0)`)\n */\n error OwnableInvalidOwner(address owner);\n\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n /**\n * @dev Initializes the contract setting the address provided by the deployer as the initial owner.\n */\n constructor(address initialOwner) {\n if (initialOwner == address(0)) {\n revert OwnableInvalidOwner(address(0));\n }\n _transferOwnership(initialOwner);\n }\n\n /**\n * @dev Throws if called by any account other than the owner.\n */\n modifier onlyOwner() {\n _checkOwner();\n _;\n }\n\n /**\n * @dev Returns the address of the current owner.\n */\n function owner() public view virtual returns (address) {\n return _owner;\n }\n\n /**\n * @dev Throws if the sender is not the owner.\n */\n function _checkOwner() internal view virtual {\n if (owner() != _msgSender()) {\n revert OwnableUnauthorizedAccount(_msgSender());\n }\n }\n\n /**\n * @dev Leaves the contract without owner. It will not be possible to call\n * `onlyOwner` functions. Can only be called by the current owner.\n *\n * NOTE: Renouncing ownership will leave the contract without an owner,\n * thereby disabling any functionality that is only available to the owner.\n */\n function renounceOwnership() public virtual onlyOwner {\n _transferOwnership(address(0));\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Can only be called by the current owner.\n */\n function transferOwnership(address newOwner) public virtual onlyOwner {\n if (newOwner == address(0)) {\n revert OwnableInvalidOwner(address(0));\n }\n _transferOwnership(newOwner);\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Internal function without access restriction.\n */\n function _transferOwnership(address newOwner) internal virtual {\n address oldOwner = _owner;\n _owner = newOwner;\n emit OwnershipTransferred(oldOwner, newOwner);\n }\n}\n\n// lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Strings.sol\n\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/Strings.sol)\n\n/**\n * @dev String operations.\n */\nlibrary Strings {\n bytes16 private constant HEX_DIGITS = \"0123456789abcdef\";\n uint8 private constant ADDRESS_LENGTH = 20;\n\n struct slice {\n uint _len;\n uint _ptr;\n }\n\n function memcpy(uint dest, uint src, uint length) private pure {\n // Copy word-length chunks while possible\n for(; length >= 32; length -= 32) {\n assembly {\n mstore(dest, mload(src))\n }\n dest += 32;\n src += 32;\n }\n\n // Copy remaining bytes\n uint mask = type(uint).max;\n if (length > 0) {\n mask = 256 ** (32 - length) - 1;\n }\n assembly {\n let srcpart := and(mload(src), not(mask))\n let destpart := and(mload(dest), mask)\n mstore(dest, or(destpart, srcpart))\n }\n }\n\n /*\n * @dev Returns a slice containing the entire string.\n * @param self The string to make a slice from.\n * @return A newly allocated slice containing the entire string.\n */\n function toSlice(string memory self) internal pure returns (slice memory) {\n uint ptr;\n assembly {\n ptr := add(self, 0x20)\n }\n return slice(bytes(self).length, ptr);\n }\n\n /*\n * @dev Returns the length of a null-terminated bytes32 string.\n * @param self The value to find the length of.\n * @return The length of the string, from 0 to 32.\n */\n function len(bytes32 self) internal pure returns (uint) {\n uint ret;\n if (self == 0)\n return 0;\n if (uint(self) & type(uint128).max == 0) {\n ret += 16;\n self = bytes32(uint(self) / 0x100000000000000000000000000000000);\n }\n if (uint(self) & type(uint64).max == 0) {\n ret += 8;\n self = bytes32(uint(self) / 0x10000000000000000);\n }\n if (uint(self) & type(uint32).max == 0) {\n ret += 4;\n self = bytes32(uint(self) / 0x100000000);\n }\n if (uint(self) & type(uint16).max == 0) {\n ret += 2;\n self = bytes32(uint(self) / 0x10000);\n }\n if (uint(self) & type(uint8).max == 0) {\n ret += 1;\n }\n return 32 - ret;\n }\n\n /*\n * @dev Returns a slice containing the entire bytes32, interpreted as a\n * null-terminated utf-8 string.\n * @param self The bytes32 value to convert to a slice.\n * @return A new slice containing the value of the input argument up to the\n * first null.\n */\n function toSliceB32(bytes32 self) internal pure returns (slice memory ret) {\n // Allocate space for `self` in memory, copy it there, and point ret at it\n assembly {\n let ptr := mload(0x40)\n mstore(0x40, add(ptr, 0x20))\n mstore(ptr, self)\n mstore(add(ret, 0x20), ptr)\n }\n ret._len = len(self);\n }\n\n /*\n * @dev Returns a new slice containing the same data as the current slice.\n * @param self The slice to copy.\n * @return A new slice containing the same data as `self`.\n */\n function copy(slice memory self) internal pure returns (slice memory) {\n return slice(self._len, self._ptr);\n }\n\n /*\n * @dev Copies a slice to a new string.\n * @param self The slice to copy.\n * @return A newly allocated string containing the slice's text.\n */\n function toString(slice memory self) internal pure returns (string memory) {\n string memory ret = new string(self._len);\n uint retptr;\n assembly { retptr := add(ret, 32) }\n\n memcpy(retptr, self._ptr, self._len);\n return ret;\n }\n\n /*\n * @dev Returns the length in runes of the slice. Note that this operation\n * takes time proportional to the length of the slice; avoid using it\n * in loops, and call `slice.empty()` if you only need to know whether\n * the slice is empty or not.\n * @param self The slice to operate on.\n * @return The length of the slice in runes.\n */\n function len(slice memory self) internal pure returns (uint l) {\n // Starting at ptr-31 means the LSB will be the byte we care about\n uint ptr = self._ptr - 31;\n uint end = ptr + self._len;\n for (l = 0; ptr < end; l++) {\n uint8 b;\n assembly { b := and(mload(ptr), 0xFF) }\n if (b < 0x80) {\n ptr += 1;\n } else if(b < 0xE0) {\n ptr += 2;\n } else if(b < 0xF0) {\n ptr += 3;\n } else if(b < 0xF8) {\n ptr += 4;\n } else if(b < 0xFC) {\n ptr += 5;\n } else {\n ptr += 6;\n }\n }\n }\n\n /*\n * @dev Returns true if the slice is empty (has a length of 0).\n * @param self The slice to operate on.\n * @return True if the slice is empty, False otherwise.\n */\n function empty(slice memory self) internal pure returns (bool) {\n return self._len == 0;\n }\n\n /*\n * @dev Returns a positive number if `other` comes lexicographically after\n * `self`, a negative number if it comes before, or zero if the\n * contents of the two slices are equal. Comparison is done per-rune,\n * on unicode codepoints.\n * @param self The first slice to compare.\n * @param other The second slice to compare.\n * @return The result of the comparison.\n */\n function compare(slice memory self, slice memory other) internal pure returns (int) {\n uint shortest = self._len;\n if (other._len < self._len)\n shortest = other._len;\n\n uint selfptr = self._ptr;\n uint otherptr = other._ptr;\n for (uint idx = 0; idx < shortest; idx += 32) {\n uint a;\n uint b;\n assembly {\n a := mload(selfptr)\n b := mload(otherptr)\n }\n if (a != b) {\n // Mask out irrelevant bytes and check again\n uint mask = type(uint).max; // 0xffff...\n if(shortest < 32) {\n mask = ~(2 ** (8 * (32 - shortest + idx)) - 1);\n }\n unchecked {\n uint diff = (a & mask) - (b & mask);\n if (diff != 0)\n return int(diff);\n }\n }\n selfptr += 32;\n otherptr += 32;\n }\n return int(self._len) - int(other._len);\n }\n\n /*\n * @dev Returns true if the two slices contain the same text.\n * @param self The first slice to compare.\n * @param self The second slice to compare.\n * @return True if the slices are equal, false otherwise.\n */\n function equals(slice memory self, slice memory other) internal pure returns (bool) {\n return compare(self, other) == 0;\n }\n\n /*\n * @dev Extracts the first rune in the slice into `rune`, advancing the\n * slice to point to the next rune and returning `self`.\n * @param self The slice to operate on.\n * @param rune The slice that will contain the first rune.\n * @return `rune`.\n */\n function nextRune(slice memory self, slice memory rune) internal pure returns (slice memory) {\n rune._ptr = self._ptr;\n\n if (self._len == 0) {\n rune._len = 0;\n return rune;\n }\n\n uint l;\n uint b;\n // Load the first byte of the rune into the LSBs of b\n assembly { b := and(mload(sub(mload(add(self, 32)), 31)), 0xFF) }\n if (b < 0x80) {\n l = 1;\n } else if(b < 0xE0) {\n l = 2;\n } else if(b < 0xF0) {\n l = 3;\n } else {\n l = 4;\n }\n\n // Check for truncated codepoints\n if (l > self._len) {\n rune._len = self._len;\n self._ptr += self._len;\n self._len = 0;\n return rune;\n }\n\n self._ptr += l;\n self._len -= l;\n rune._len = l;\n return rune;\n }\n\n /*\n * @dev Returns the first rune in the slice, advancing the slice to point\n * to the next rune.\n * @param self The slice to operate on.\n * @return A slice containing only the first rune from `self`.\n */\n function nextRune(slice memory self) internal pure returns (slice memory ret) {\n nextRune(self, ret);\n }\n\n /*\n * @dev Returns the number of the first codepoint in the slice.\n * @param self The slice to operate on.\n * @return The number of the first codepoint in the slice.\n */\n function ord(slice memory self) internal pure returns (uint ret) {\n if (self._len == 0) {\n return 0;\n }\n\n uint word;\n uint length;\n uint divisor = 2 ** 248;\n\n // Load the rune into the MSBs of b\n assembly { word:= mload(mload(add(self, 32))) }\n uint b = word / divisor;\n if (b < 0x80) {\n ret = b;\n length = 1;\n } else if(b < 0xE0) {\n ret = b & 0x1F;\n length = 2;\n } else if(b < 0xF0) {\n ret = b & 0x0F;\n length = 3;\n } else {\n ret = b & 0x07;\n length = 4;\n }\n\n // Check for truncated codepoints\n if (length > self._len) {\n return 0;\n }\n\n for (uint i = 1; i < length; i++) {\n divisor = divisor / 256;\n b = (word / divisor) & 0xFF;\n if (b & 0xC0 != 0x80) {\n // Invalid UTF-8 sequence\n return 0;\n }\n ret = (ret * 64) | (b & 0x3F);\n }\n\n return ret;\n }\n\n /*\n * @dev Returns the keccak-256 hash of the slice.\n * @param self The slice to hash.\n * @return The hash of the slice.\n */\n function keccak(slice memory self) internal pure returns (bytes32 ret) {\n assembly {\n ret := keccak256(mload(add(self, 32)), mload(self))\n }\n }\n\n /*\n * @dev Returns true if `self` starts with `needle`.\n * @param self The slice to operate on.\n * @param needle The slice to search for.\n * @return True if the slice starts with the provided text, false otherwise.\n */\n function startsWith(slice memory self, slice memory needle) internal pure returns (bool) {\n if (self._len < needle._len) {\n return false;\n }\n\n if (self._ptr == needle._ptr) {\n return true;\n }\n\n bool eql;\n assembly {\n let length := mload(needle)\n let selfptr := mload(add(self, 0x20))\n let needleptr := mload(add(needle, 0x20))\n eql := eq(keccak256(selfptr, length), keccak256(needleptr, length))\n }\n return eql;\n }\n\n /*\n * @dev If `self` starts with `needle`, `needle` is removed from the\n * beginning of `self`. Otherwise, `self` is unmodified.\n * @param self The slice to operate on.\n * @param needle The slice to search for.\n * @return `self`\n */\n function beyond(slice memory self, slice memory needle) internal pure returns (slice memory) {\n if (self._len < needle._len) {\n return self;\n }\n\n bool eql = true;\n if (self._ptr != needle._ptr) {\n assembly {\n let length := mload(needle)\n let selfptr := mload(add(self, 0x20))\n let needleptr := mload(add(needle, 0x20))\n eql := eq(keccak256(selfptr, length), keccak256(needleptr, length))\n }\n }\n\n if (eql) {\n self._len -= needle._len;\n self._ptr += needle._len;\n }\n\n return self;\n }\n\n /*\n * @dev Returns true if the slice ends with `needle`.\n * @param self The slice to operate on.\n * @param needle The slice to search for.\n * @return True if the slice starts with the provided text, false otherwise.\n */\n function endsWith(slice memory self, slice memory needle) internal pure returns (bool) {\n if (self._len < needle._len) {\n return false;\n }\n\n uint selfptr = self._ptr + self._len - needle._len;\n\n if (selfptr == needle._ptr) {\n return true;\n }\n\n bool eql;\n assembly {\n let length := mload(needle)\n let needleptr := mload(add(needle, 0x20))\n eql := eq(keccak256(selfptr, length), keccak256(needleptr, length))\n }\n\n return eql;\n }\n\n /*\n * @dev If `self` ends with `needle`, `needle` is removed from the\n * end of `self`. Otherwise, `self` is unmodified.\n * @param self The slice to operate on.\n * @param needle The slice to search for.\n * @return `self`\n */\n function until(slice memory self, slice memory needle) internal pure returns (slice memory) {\n if (self._len < needle._len) {\n return self;\n }\n\n uint selfptr = self._ptr + self._len - needle._len;\n bool eql = true;\n if (selfptr != needle._ptr) {\n assembly {\n let length := mload(needle)\n let needleptr := mload(add(needle, 0x20))\n eql := eq(keccak256(selfptr, length), keccak256(needleptr, length))\n }\n }\n\n if (eql) {\n self._len -= needle._len;\n }\n\n return self;\n }\n\n // Returns the memory address of the first byte of the first occurrence of\n // `needle` in `self`, or the first byte after `self` if not found.\n function findPtr(uint selflen, uint selfptr, uint needlelen, uint needleptr) private pure returns (uint) {\n uint ptr = selfptr;\n uint idx;\n\n if (needlelen <= selflen) {\n if (needlelen <= 32) {\n bytes32 mask;\n if (needlelen > 0) {\n mask = bytes32(~(2 ** (8 * (32 - needlelen)) - 1));\n }\n\n bytes32 needledata;\n assembly { needledata := and(mload(needleptr), mask) }\n\n uint end = selfptr + selflen - needlelen;\n bytes32 ptrdata;\n assembly { ptrdata := and(mload(ptr), mask) }\n\n while (ptrdata != needledata) {\n if (ptr >= end)\n return selfptr + selflen;\n ptr++;\n assembly { ptrdata := and(mload(ptr), mask) }\n }\n return ptr;\n } else {\n // For long needles, use hashing\n bytes32 hash;\n assembly { hash := keccak256(needleptr, needlelen) }\n\n for (idx = 0; idx <= selflen - needlelen; idx++) {\n bytes32 testHash;\n assembly { testHash := keccak256(ptr, needlelen) }\n if (hash == testHash)\n return ptr;\n ptr += 1;\n }\n }\n }\n return selfptr + selflen;\n }\n\n // Returns the memory address of the first byte after the last occurrence of\n // `needle` in `self`, or the address of `self` if not found.\n function rfindPtr(uint selflen, uint selfptr, uint needlelen, uint needleptr) private pure returns (uint) {\n uint ptr;\n\n if (needlelen <= selflen) {\n if (needlelen <= 32) {\n bytes32 mask;\n if (needlelen > 0) {\n mask = bytes32(~(2 ** (8 * (32 - needlelen)) - 1));\n }\n\n bytes32 needledata;\n assembly { needledata := and(mload(needleptr), mask) }\n\n ptr = selfptr + selflen - needlelen;\n bytes32 ptrdata;\n assembly { ptrdata := and(mload(ptr), mask) }\n\n while (ptrdata != needledata) {\n if (ptr <= selfptr)\n return selfptr;\n ptr--;\n assembly { ptrdata := and(mload(ptr), mask) }\n }\n return ptr + needlelen;\n } else {\n // For long needles, use hashing\n bytes32 hash;\n assembly { hash := keccak256(needleptr, needlelen) }\n ptr = selfptr + (selflen - needlelen);\n while (ptr >= selfptr) {\n bytes32 testHash;\n assembly { testHash := keccak256(ptr, needlelen) }\n if (hash == testHash)\n return ptr + needlelen;\n ptr -= 1;\n }\n }\n }\n return selfptr;\n }\n\n /*\n * @dev Modifies `self` to contain everything from the first occurrence of\n * `needle` to the end of the slice. `self` is set to the empty slice\n * if `needle` is not found.\n * @param self The slice to search and modify.\n * @param needle The text to search for.\n * @return `self`.\n */\n function find(slice memory self, slice memory needle) internal pure returns (slice memory) {\n uint ptr = findPtr(self._len, self._ptr, needle._len, needle._ptr);\n self._len -= ptr - self._ptr;\n self._ptr = ptr;\n return self;\n }\n\n /*\n * @dev Modifies `self` to contain the part of the string from the start of\n * `self` to the end of the first occurrence of `needle`. If `needle`\n * is not found, `self` is set to the empty slice.\n * @param self The slice to search and modify.\n * @param needle The text to search for.\n * @return `self`.\n */\n function rfind(slice memory self, slice memory needle) internal pure returns (slice memory) {\n uint ptr = rfindPtr(self._len, self._ptr, needle._len, needle._ptr);\n self._len = ptr - self._ptr;\n return self;\n }\n\n /*\n * @dev Splits the slice, setting `self` to everything after the first\n * occurrence of `needle`, and `token` to everything before it. If\n * `needle` does not occur in `self`, `self` is set to the empty slice,\n * and `token` is set to the entirety of `self`.\n * @param self The slice to split.\n * @param needle The text to search for in `self`.\n * @param token An output parameter to which the first token is written.\n * @return `token`.\n */\n function split(slice memory self, slice memory needle, slice memory token) internal pure returns (slice memory) {\n uint ptr = findPtr(self._len, self._ptr, needle._len, needle._ptr);\n token._ptr = self._ptr;\n token._len = ptr - self._ptr;\n if (ptr == self._ptr + self._len) {\n // Not found\n self._len = 0;\n } else {\n self._len -= token._len + needle._len;\n self._ptr = ptr + needle._len;\n }\n return token;\n }\n\n /*\n * @dev Splits the slice, setting `self` to everything after the first\n * occurrence of `needle`, and returning everything before it. If\n * `needle` does not occur in `self`, `self` is set to the empty slice,\n * and the entirety of `self` is returned.\n * @param self The slice to split.\n * @param needle The text to search for in `self`.\n * @return The part of `self` up to the first occurrence of `delim`.\n */\n function split(slice memory self, slice memory needle) internal pure returns (slice memory token) {\n split(self, needle, token);\n }\n\n /*\n * @dev Splits the slice, setting `self` to everything before the last\n * occurrence of `needle`, and `token` to everything after it. If\n * `needle` does not occur in `self`, `self` is set to the empty slice,\n * and `token` is set to the entirety of `self`.\n * @param self The slice to split.\n * @param needle The text to search for in `self`.\n * @param token An output parameter to which the first token is written.\n * @return `token`.\n */\n function rsplit(slice memory self, slice memory needle, slice memory token) internal pure returns (slice memory) {\n uint ptr = rfindPtr(self._len, self._ptr, needle._len, needle._ptr);\n token._ptr = ptr;\n token._len = self._len - (ptr - self._ptr);\n if (ptr == self._ptr) {\n // Not found\n self._len = 0;\n } else {\n self._len -= token._len + needle._len;\n }\n return token;\n }\n\n /*\n * @dev Splits the slice, setting `self` to everything before the last\n * occurrence of `needle`, and returning everything after it. If\n * `needle` does not occur in `self`, `self` is set to the empty slice,\n * and the entirety of `self` is returned.\n * @param self The slice to split.\n * @param needle The text to search for in `self`.\n * @return The part of `self` after the last occurrence of `delim`.\n */\n function rsplit(slice memory self, slice memory needle) internal pure returns (slice memory token) {\n rsplit(self, needle, token);\n }\n\n /*\n * @dev Counts the number of nonoverlapping occurrences of `needle` in `self`.\n * @param self The slice to search.\n * @param needle The text to search for in `self`.\n * @return The number of occurrences of `needle` found in `self`.\n */\n function count(slice memory self, slice memory needle) internal pure returns (uint cnt) {\n uint ptr = findPtr(self._len, self._ptr, needle._len, needle._ptr) + needle._len;\n while (ptr <= self._ptr + self._len) {\n cnt++;\n ptr = findPtr(self._len - (ptr - self._ptr), ptr, needle._len, needle._ptr) + needle._len;\n }\n }\n\n /*\n * @dev Returns True if `self` contains `needle`.\n * @param self The slice to search.\n * @param needle The text to search for in `self`.\n * @return True if `needle` is found in `self`, false otherwise.\n */\n function contains(slice memory self, slice memory needle) internal pure returns (bool) {\n return rfindPtr(self._len, self._ptr, needle._len, needle._ptr) != self._ptr;\n }\n\n /*\n * @dev Returns a newly allocated string containing the concatenation of\n * `self` and `other`.\n * @param self The first slice to concatenate.\n * @param other The second slice to concatenate.\n * @return The concatenation of the two strings.\n */\n function concat(slice memory self, slice memory other) internal pure returns (string memory) {\n string memory ret = new string(self._len + other._len);\n uint retptr;\n assembly { retptr := add(ret, 32) }\n memcpy(retptr, self._ptr, self._len);\n memcpy(retptr + self._len, other._ptr, other._len);\n return ret;\n }\n\n /*\n * @dev Joins an array of slices, using `self` as a delimiter, returning a\n * newly allocated string.\n * @param self The delimiter to use.\n * @param parts A list of slices to join.\n * @return A newly allocated string containing all the slices in `parts`,\n * joined with `self`.\n */\n function join(slice memory self, slice[] memory parts) internal pure returns (string memory) {\n if (parts.length == 0)\n return \"\";\n\n uint length = self._len * (parts.length - 1);\n for(uint i = 0; i < parts.length; i++)\n length += parts[i]._len;\n\n string memory ret = new string(length);\n uint retptr;\n assembly { retptr := add(ret, 32) }\n\n for(uint i = 0; i < parts.length; i++) {\n memcpy(retptr, parts[i]._ptr, parts[i]._len);\n retptr += parts[i]._len;\n if (i < parts.length - 1) {\n memcpy(retptr, self._ptr, self._len);\n retptr += self._len;\n }\n }\n\n return ret;\n }\n\n /**\n * @dev The `value` string doesn't fit in the specified `length`.\n */\n error StringsInsufficientHexLength(uint256 value, uint256 length);\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` decimal representation.\n */\n function toString(uint256 value) internal pure returns (string memory) {\n unchecked {\n uint256 length = Math.log10(value) + 1;\n string memory buffer = new string(length);\n uint256 ptr;\n /// @solidity memory-safe-assembly\n assembly {\n ptr := add(buffer, add(32, length))\n }\n while (true) {\n ptr--;\n /// @solidity memory-safe-assembly\n assembly {\n mstore8(ptr, byte(mod(value, 10), HEX_DIGITS))\n }\n value /= 10;\n if (value == 0) break;\n }\n return buffer;\n }\n }\n\n /**\n * @dev Converts a `int256` to its ASCII `string` decimal representation.\n */\n function toStringSigned(int256 value) internal pure returns (string memory) {\n return string.concat(value < 0 ? \"-\" : \"\", toString(SignedMath.abs(value)));\n }\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.\n */\n function toHexString(uint256 value) internal pure returns (string memory) {\n unchecked {\n return toHexString(value, Math.log256(value) + 1);\n }\n }\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.\n */\n function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {\n uint256 localValue = value;\n bytes memory buffer = new bytes(2 * length + 2);\n buffer[0] = \"0\";\n buffer[1] = \"x\";\n for (uint256 i = 2 * length + 1; i > 1; --i) {\n buffer[i] = HEX_DIGITS[localValue & 0xf];\n localValue >>= 4;\n }\n if (localValue != 0) {\n revert StringsInsufficientHexLength(value, length);\n }\n return string(buffer);\n }\n\n /**\n * @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal\n * representation.\n */\n function toHexString(address addr) internal pure returns (string memory) {\n return toHexString(uint256(uint160(addr)), ADDRESS_LENGTH);\n }\n\n /**\n * @dev Returns true if the two strings are equal.\n */\n function equal(string memory a, string memory b) internal pure returns (bool) {\n return bytes(a).length == bytes(b).length && keccak256(bytes(a)) == keccak256(bytes(b));\n }\n}\n\n// lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\n\n// OpenZeppelin Contracts (last updated v5.0.0) (proxy/ERC1967/ERC1967Utils.sol)\n\n/**\n * @dev This abstract contract provides getters and event emitting update functions for\n * https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots.\n */\nlibrary ERC1967Utils {\n // We re-declare ERC-1967 events here because they can't be used directly from IERC1967.\n // This will be fixed in Solidity 0.8.21. At that point we should remove these events.\n /**\n * @dev Emitted when the implementation is upgraded.\n */\n event Upgraded(address indexed implementation);\n\n /**\n * @dev Emitted when the admin account has changed.\n */\n event AdminChanged(address previousAdmin, address newAdmin);\n\n /**\n * @dev Emitted when the beacon is changed.\n */\n event BeaconUpgraded(address indexed beacon);\n\n /**\n * @dev Storage slot with the address of the current implementation.\n * This is the keccak-256 hash of \"eip1967.proxy.implementation\" subtracted by 1.\n */\n // solhint-disable-next-line private-vars-leading-underscore\n bytes32 internal constant IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n\n /**\n * @dev The `implementation` of the proxy is invalid.\n */\n error ERC1967InvalidImplementation(address implementation);\n\n /**\n * @dev The `admin` of the proxy is invalid.\n */\n error ERC1967InvalidAdmin(address admin);\n\n /**\n * @dev The `beacon` of the proxy is invalid.\n */\n error ERC1967InvalidBeacon(address beacon);\n\n /**\n * @dev An upgrade function sees `msg.value > 0` that may be lost.\n */\n error ERC1967NonPayable();\n\n /**\n * @dev Returns the current implementation address.\n */\n function getImplementation() internal view returns (address) {\n return StorageSlot.getAddressSlot(IMPLEMENTATION_SLOT).value;\n }\n\n /**\n * @dev Stores a new address in the EIP1967 implementation slot.\n */\n function _setImplementation(address newImplementation) private {\n if (newImplementation.code.length == 0) {\n revert ERC1967InvalidImplementation(newImplementation);\n }\n StorageSlot.getAddressSlot(IMPLEMENTATION_SLOT).value = newImplementation;\n }\n\n /**\n * @dev Performs implementation upgrade with additional setup call if data is nonempty.\n * This function is payable only if the setup call is performed, otherwise `msg.value` is rejected\n * to avoid stuck value in the contract.\n *\n * Emits an {IERC1967-Upgraded} event.\n */\n function upgradeToAndCall(address newImplementation, bytes memory data) internal {\n _setImplementation(newImplementation);\n emit Upgraded(newImplementation);\n\n if (data.length > 0) {\n Address.functionDelegateCall(newImplementation, data);\n } else {\n _checkNonPayable();\n }\n }\n\n /**\n * @dev Storage slot with the admin of the contract.\n * This is the keccak-256 hash of \"eip1967.proxy.admin\" subtracted by 1.\n */\n // solhint-disable-next-line private-vars-leading-underscore\n bytes32 internal constant ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;\n\n /**\n * @dev Returns the current admin.\n *\n * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using\n * the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n * `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`\n */\n function getAdmin() internal view returns (address) {\n return StorageSlot.getAddressSlot(ADMIN_SLOT).value;\n }\n\n /**\n * @dev Stores a new address in the EIP1967 admin slot.\n */\n function _setAdmin(address newAdmin) private {\n if (newAdmin == address(0)) {\n revert ERC1967InvalidAdmin(address(0));\n }\n StorageSlot.getAddressSlot(ADMIN_SLOT).value = newAdmin;\n }\n\n /**\n * @dev Changes the admin of the proxy.\n *\n * Emits an {IERC1967-AdminChanged} event.\n */\n function changeAdmin(address newAdmin) internal {\n emit AdminChanged(getAdmin(), newAdmin);\n _setAdmin(newAdmin);\n }\n\n /**\n * @dev The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy.\n * This is the keccak-256 hash of \"eip1967.proxy.beacon\" subtracted by 1.\n */\n // solhint-disable-next-line private-vars-leading-underscore\n bytes32 internal constant BEACON_SLOT = 0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50;\n\n /**\n * @dev Returns the current beacon.\n */\n function getBeacon() internal view returns (address) {\n return StorageSlot.getAddressSlot(BEACON_SLOT).value;\n }\n\n /**\n * @dev Stores a new beacon in the EIP1967 beacon slot.\n */\n function _setBeacon(address newBeacon) private {\n if (newBeacon.code.length == 0) {\n revert ERC1967InvalidBeacon(newBeacon);\n }\n\n StorageSlot.getAddressSlot(BEACON_SLOT).value = newBeacon;\n\n address beaconImplementation = IBeacon(newBeacon).implementation();\n if (beaconImplementation.code.length == 0) {\n revert ERC1967InvalidImplementation(beaconImplementation);\n }\n }\n\n /**\n * @dev Change the beacon and trigger a setup call if data is nonempty.\n * This function is payable only if the setup call is performed, otherwise `msg.value` is rejected\n * to avoid stuck value in the contract.\n *\n * Emits an {IERC1967-BeaconUpgraded} event.\n *\n * CAUTION: Invoking this function has no effect on an instance of {BeaconProxy} since v5, since\n * it uses an immutable beacon without looking at the value of the ERC-1967 beacon slot for\n * efficiency.\n */\n function upgradeBeaconToAndCall(address newBeacon, bytes memory data) internal {\n _setBeacon(newBeacon);\n emit BeaconUpgraded(newBeacon);\n\n if (data.length > 0) {\n Address.functionDelegateCall(IBeacon(newBeacon).implementation(), data);\n } else {\n _checkNonPayable();\n }\n }\n\n /**\n * @dev Reverts if `msg.value` is not zero. It can be used to avoid `msg.value` stuck in the contract\n * if an upgrade doesn't perform an initialization call.\n */\n function _checkNonPayable() private {\n if (msg.value > 0) {\n revert ERC1967NonPayable();\n }\n }\n}\n\n// lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/proxy/beacon/UpgradeableBeacon.sol\n\n// OpenZeppelin Contracts (last updated v5.0.0) (proxy/beacon/UpgradeableBeacon.sol)\n\n/**\n * @dev This contract is used in conjunction with one or more instances of {BeaconProxy} to determine their\n * implementation contract, which is where they will delegate all function calls.\n *\n * An owner is able to change the implementation the beacon points to, thus upgrading the proxies that use this beacon.\n */\ncontract UpgradeableBeacon is IBeacon, Ownable {\n address private _implementation;\n\n /**\n * @dev The `implementation` of the beacon is invalid.\n */\n error BeaconInvalidImplementation(address implementation);\n\n /**\n * @dev Emitted when the implementation returned by the beacon is changed.\n */\n event Upgraded(address indexed implementation);\n\n /**\n * @dev Sets the address of the initial implementation, and the initial owner who can upgrade the beacon.\n */\n constructor(address implementation_, address initialOwner) Ownable(initialOwner) {\n _setImplementation(implementation_);\n }\n\n /**\n * @dev Returns the current implementation address.\n */\n function implementation() public view virtual returns (address) {\n return _implementation;\n }\n\n /**\n * @dev Upgrades the beacon to a new implementation.\n *\n * Emits an {Upgraded} event.\n *\n * Requirements:\n *\n * - msg.sender must be the owner of the contract.\n * - `newImplementation` must be a contract.\n */\n function upgradeTo(address newImplementation) public virtual onlyOwner {\n _setImplementation(newImplementation);\n }\n\n /**\n * @dev Sets the implementation contract address for this beacon\n *\n * Requirements:\n *\n * - `newImplementation` must be a contract.\n */\n function _setImplementation(address newImplementation) private {\n if (newImplementation.code.length == 0) {\n revert BeaconInvalidImplementation(newImplementation);\n }\n _implementation = newImplementation;\n emit Upgraded(newImplementation);\n }\n}\n\n// lib/openzeppelin-foundry-upgrades/src/internal/Utils.sol\n\nstruct ContractInfo {\n /*\n * Contract path, e.g. \"src/MyContract.sol\"\n */\n string contractPath;\n /*\n * Contract short name, e.g. \"MyContract\"\n */\n string shortName;\n /*\n * License identifier from the compiled artifact. Empty if not found.\n */\n string license;\n /*\n * keccak256 hash of the source code from metadata\n */\n string sourceCodeHash;\n /*\n * Artifact file path e.g. the path of the file 'out/MyContract.sol/MyContract.json'\n */\n string artifactPath;\n}\n\n/**\n * @dev Internal helper methods used by Upgrades and Defender libraries.\n */\nlibrary Utils {\n address constant CHEATCODE_ADDRESS = 0x7109709ECfa91a80626fF3989D68f67F5b1DD12D;\n\n /**\n * @dev Gets the fully qualified name of a contract.\n *\n * @param contractName Contract name in the format \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n * @param outDir Foundry output directory to search in if contractName is not an artifact path\n * @return Fully qualified name of the contract, e.g. \"src/MyContract.sol:MyContract\"\n */\n function getFullyQualifiedName(\n string memory contractName,\n string memory outDir\n ) internal view returns (string memory) {\n ContractInfo memory info = getContractInfo(contractName, outDir);\n return string(abi.encodePacked(info.contractPath, \":\", info.shortName));\n }\n\n /**\n * @dev Gets information about a contract from its Foundry artifact.\n *\n * @param contractName Contract name in the format \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n * @param outDir Foundry output directory to search in if contractName is not an artifact path\n * @return ContractInfo struct containing information about the contract\n */\n function getContractInfo(\n string memory contractName,\n string memory outDir\n ) internal view returns (ContractInfo memory) {\n Vm vm = Vm(CHEATCODE_ADDRESS);\n\n ContractInfo memory info;\n\n info.shortName = _toShortName(contractName);\n\n string memory fileName = _toFileName(contractName);\n\n string memory artifactPath = string(\n abi.encodePacked(vm.projectRoot(), \"/\", outDir, \"/\", fileName, \"/\", info.shortName, \".json\")\n );\n string memory artifactJson = vm.readFile(artifactPath);\n\n if (!vm.keyExistsJson(artifactJson, \".ast\")) {\n revert(\n string(\n abi.encodePacked(\n \"Could not find AST in artifact \",\n artifactPath,\n \". Set `ast = true` in foundry.toml\"\n )\n )\n );\n }\n info.contractPath = vm.parseJsonString(artifactJson, \".ast.absolutePath\");\n if (vm.keyExistsJson(artifactJson, \".ast.license\")) {\n info.license = vm.parseJsonString(artifactJson, \".ast.license\");\n }\n info.sourceCodeHash = vm.parseJsonString(\n artifactJson,\n string(abi.encodePacked(\".metadata.sources.['\", info.contractPath, \"'].keccak256\"))\n );\n info.artifactPath = artifactPath;\n\n return info;\n }\n\n using Strings for *;\n\n /**\n * Gets the path to the build-info file that contains the given bytecode.\n *\n * @param sourceCodeHash keccak256 hash of the source code from metadata\n * @param contractName Contract name to display in error message if build-info file is not found\n * @param outDir Foundry output directory that contains a build-info directory\n * @return The path to the build-info file that contains the given bytecode\n */\n function getBuildInfoFile(\n string memory sourceCodeHash,\n string memory contractName,\n string memory outDir\n ) internal returns (string memory) {\n string[] memory inputs = new string[](4);\n inputs[0] = \"grep\";\n inputs[1] = \"-rl\";\n inputs[2] = string(abi.encodePacked('\"', sourceCodeHash, '\"'));\n inputs[3] = string(abi.encodePacked(outDir, \"/build-info\"));\n\n VmSafe.FfiResult memory result = runAsBashCommand(inputs);\n string memory stdout = string(result.stdout);\n\n if (!stdout.toSlice().endsWith(\".json\".toSlice())) {\n revert(\n string(\n abi.encodePacked(\n \"Could not find build-info file with matching source code hash for contract \",\n contractName\n )\n )\n );\n }\n\n return stdout;\n }\n\n /**\n * @dev Gets the output directory from the FOUNDRY_OUT environment variable, or defaults to \"out\" if not set.\n */\n function getOutDir() internal view returns (string memory) {\n Vm vm = Vm(CHEATCODE_ADDRESS);\n\n string memory defaultOutDir = \"out\";\n return vm.envOr(\"FOUNDRY_OUT\", defaultOutDir);\n }\n\n function _split(\n Strings.slice memory inputSlice,\n Strings.slice memory delimSlice\n ) private pure returns (string[] memory) {\n string[] memory parts = new string[](inputSlice.count(delimSlice) + 1);\n for (uint i = 0; i < parts.length; i++) {\n parts[i] = inputSlice.split(delimSlice).toString();\n }\n return parts;\n }\n\n function _toFileName(string memory contractName) private pure returns (string memory) {\n Strings.slice memory name = contractName.toSlice();\n if (name.endsWith(\".sol\".toSlice())) {\n return name.toString();\n } else if (name.count(\":\".toSlice()) == 1) {\n return name.split(\":\".toSlice()).toString();\n } else {\n if (name.endsWith(\".json\".toSlice())) {\n string[] memory parts = _split(name, \"/\".toSlice());\n if (parts.length > 1) {\n return parts[parts.length - 2];\n }\n }\n\n revert(\n string(\n abi.encodePacked(\n \"Contract name \",\n contractName,\n \" must be in the format MyContract.sol:MyContract or MyContract.sol or out/MyContract.sol/MyContract.json\"\n )\n )\n );\n }\n }\n\n function _toShortName(string memory contractName) private pure returns (string memory) {\n Strings.slice memory name = contractName.toSlice();\n if (name.endsWith(\".sol\".toSlice())) {\n return name.until(\".sol\".toSlice()).toString();\n } else if (name.count(\":\".toSlice()) == 1) {\n name.split(\":\".toSlice());\n return name.split(\":\".toSlice()).toString();\n } else if (name.endsWith(\".json\".toSlice())) {\n string[] memory parts = _split(name, \"/\".toSlice());\n string memory jsonName = parts[parts.length - 1];\n return jsonName.toSlice().until(\".json\".toSlice()).toString();\n } else {\n revert(\n string(\n abi.encodePacked(\n \"Contract name \",\n contractName,\n \" must be in the format MyContract.sol:MyContract or MyContract.sol or out/MyContract.sol/MyContract.json\"\n )\n )\n );\n }\n }\n\n /**\n * @dev Converts an array of inputs to a bash command.\n * @param inputs Inputs for a command, e.g. [\"grep\", \"-rl\", \"0x1234\", \"out/build-info\"]\n * @param bashPath Path to the bash executable or just \"bash\" if it is in the PATH\n * @return A bash command that runs the given inputs, e.g. [\"bash\", \"-c\", \"grep -rl 0x1234 out/build-info\"]\n */\n function toBashCommand(string[] memory inputs, string memory bashPath) internal pure returns (string[] memory) {\n string memory commandString;\n for (uint i = 0; i < inputs.length; i++) {\n commandString = string(abi.encodePacked(commandString, inputs[i]));\n if (i != inputs.length - 1) {\n commandString = string(abi.encodePacked(commandString, \" \"));\n }\n }\n\n string[] memory result = new string[](3);\n result[0] = bashPath;\n result[1] = \"-c\";\n result[2] = commandString;\n return result;\n }\n\n /**\n * @dev Runs an arbitrary command using bash.\n * @param inputs Inputs for a command, e.g. [\"grep\", \"-rl\", \"0x1234\", \"out/build-info\"]\n * @return The result of the corresponding bash command as a Vm.FfiResult struct\n */\n function runAsBashCommand(string[] memory inputs) internal returns (VmSafe.FfiResult memory) {\n Vm vm = Vm(CHEATCODE_ADDRESS);\n string memory defaultBashPath = \"bash\";\n string memory bashPath = vm.envOr(\"OPENZEPPELIN_BASH_PATH\", defaultBashPath);\n\n string[] memory bashCommand = toBashCommand(inputs, bashPath);\n VmSafe.FfiResult memory result = vm.tryFfi(bashCommand);\n if (result.exitCode != 0 && result.stdout.length == 0 && result.stderr.length == 0) {\n // On Windows, using the bash executable from WSL leads to a non-zero exit code and no output\n revert(\n string(\n abi.encodePacked(\n 'Failed to run bash command with \"',\n bashCommand[0],\n '\". If you are using Windows, set the OPENZEPPELIN_BASH_PATH environment variable to the fully qualified path of the bash executable. For example, if you are using Git for Windows, add the following line in the .env file of your project (using forward slashes):\\nOPENZEPPELIN_BASH_PATH=\"C:/Program Files/Git/bin/bash\"'\n )\n )\n );\n } else {\n return result;\n }\n }\n}\n\n// lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol\n\n// OpenZeppelin Contracts (last updated v5.0.0) (proxy/ERC1967/ERC1967Proxy.sol)\n\n/**\n * @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an\n * implementation address that can be changed. This address is stored in storage in the location specified by\n * https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the\n * implementation behind the proxy.\n */\ncontract ERC1967Proxy is Proxy {\n /**\n * @dev Initializes the upgradeable proxy with an initial implementation specified by `implementation`.\n *\n * If `_data` is nonempty, it's used as data in a delegate call to `implementation`. This will typically be an\n * encoded function call, and allows initializing the storage of the proxy like a Solidity constructor.\n *\n * Requirements:\n *\n * - If `data` is empty, `msg.value` must be zero.\n */\n constructor(address implementation, bytes memory _data) payable {\n ERC1967Utils.upgradeToAndCall(implementation, _data);\n }\n\n /**\n * @dev Returns the current implementation address.\n *\n * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using\n * the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n * `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`\n */\n function _implementation() internal view virtual override returns (address) {\n return ERC1967Utils.getImplementation();\n }\n}\n\n// lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/proxy/beacon/BeaconProxy.sol\n\n// OpenZeppelin Contracts (last updated v5.0.0) (proxy/beacon/BeaconProxy.sol)\n\n/**\n * @dev This contract implements a proxy that gets the implementation address for each call from an {UpgradeableBeacon}.\n *\n * The beacon address can only be set once during construction, and cannot be changed afterwards. It is stored in an\n * immutable variable to avoid unnecessary storage reads, and also in the beacon storage slot specified by\n * https://eips.ethereum.org/EIPS/eip-1967[EIP1967] so that it can be accessed externally.\n *\n * CAUTION: Since the beacon address can never be changed, you must ensure that you either control the beacon, or trust\n * the beacon to not upgrade the implementation maliciously.\n *\n * IMPORTANT: Do not use the implementation logic to modify the beacon storage slot. Doing so would leave the proxy in\n * an inconsistent state where the beacon storage slot does not match the beacon address.\n */\ncontract BeaconProxy is Proxy {\n // An immutable address for the beacon to avoid unnecessary SLOADs before each delegate call.\n address private immutable _beacon;\n\n /**\n * @dev Initializes the proxy with `beacon`.\n *\n * If `data` is nonempty, it's used as data in a delegate call to the implementation returned by the beacon. This\n * will typically be an encoded function call, and allows initializing the storage of the proxy like a Solidity\n * constructor.\n *\n * Requirements:\n *\n * - `beacon` must be a contract with the interface {IBeacon}.\n * - If `data` is empty, `msg.value` must be zero.\n */\n constructor(address beacon, bytes memory data) payable {\n ERC1967Utils.upgradeBeaconToAndCall(beacon, data);\n _beacon = beacon;\n }\n\n /**\n * @dev Returns the current implementation address of the associated beacon.\n */\n function _implementation() internal view virtual override returns (address) {\n return IBeacon(_getBeacon()).implementation();\n }\n\n /**\n * @dev Returns the beacon.\n */\n function _getBeacon() internal view virtual returns (address) {\n return _beacon;\n }\n}\n\n// lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/proxy/transparent/ProxyAdmin.sol\n\n// OpenZeppelin Contracts (last updated v5.0.0) (proxy/transparent/ProxyAdmin.sol)\n\n/**\n * @dev This is an auxiliary contract meant to be assigned as the admin of a {TransparentUpgradeableProxy}. For an\n * explanation of why you would want to use this see the documentation for {TransparentUpgradeableProxy}.\n */\ncontract ProxyAdmin is Ownable {\n /**\n * @dev The version of the upgrade interface of the contract. If this getter is missing, both `upgrade(address)`\n * and `upgradeAndCall(address,bytes)` are present, and `upgradeTo` must be used if no function should be called,\n * while `upgradeAndCall` will invoke the `receive` function if the second argument is the empty byte string.\n * If the getter returns `\"5.0.0\"`, only `upgradeAndCall(address,bytes)` is present, and the second argument must\n * be the empty byte string if no function should be called, making it impossible to invoke the `receive` function\n * during an upgrade.\n */\n string public constant UPGRADE_INTERFACE_VERSION = \"5.0.0\";\n\n /**\n * @dev Sets the initial owner who can perform upgrades.\n */\n constructor(address initialOwner) Ownable(initialOwner) {}\n\n /**\n * @dev Upgrades `proxy` to `implementation` and calls a function on the new implementation.\n * See {TransparentUpgradeableProxy-_dispatchUpgradeToAndCall}.\n *\n * Requirements:\n *\n * - This contract must be the admin of `proxy`.\n * - If `data` is empty, `msg.value` must be zero.\n */\n function upgradeAndCall(\n ITransparentUpgradeableProxy proxy,\n address implementation,\n bytes memory data\n ) public payable virtual onlyOwner {\n proxy.upgradeToAndCall{value: msg.value}(implementation, data);\n }\n}\n\n// lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\n\n// OpenZeppelin Contracts (last updated v5.0.0) (proxy/transparent/TransparentUpgradeableProxy.sol)\n\n/**\n * @dev Interface for {TransparentUpgradeableProxy}. In order to implement transparency, {TransparentUpgradeableProxy}\n * does not implement this interface directly, and its upgradeability mechanism is implemented by an internal dispatch\n * mechanism. The compiler is unaware that these functions are implemented by {TransparentUpgradeableProxy} and will not\n * include them in the ABI so this interface must be used to interact with it.\n */\ninterface ITransparentUpgradeableProxy is IERC1967 {\n function upgradeToAndCall(address, bytes calldata) external payable;\n}\n\n/**\n * @dev This contract implements a proxy that is upgradeable through an associated {ProxyAdmin} instance.\n *\n * To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector\n * clashing], which can potentially be used in an attack, this contract uses the\n * https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two\n * things that go hand in hand:\n *\n * 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if\n * that call matches the {ITransparentUpgradeableProxy-upgradeToAndCall} function exposed by the proxy itself.\n * 2. If the admin calls the proxy, it can call the `upgradeToAndCall` function but any other call won't be forwarded to\n * the implementation. If the admin tries to call a function on the implementation it will fail with an error indicating\n * the proxy admin cannot fallback to the target implementation.\n *\n * These properties mean that the admin account can only be used for upgrading the proxy, so it's best if it's a\n * dedicated account that is not used for anything else. This will avoid headaches due to sudden errors when trying to\n * call a function from the proxy implementation. For this reason, the proxy deploys an instance of {ProxyAdmin} and\n * allows upgrades only if they come through it. You should think of the `ProxyAdmin` instance as the administrative\n * interface of the proxy, including the ability to change who can trigger upgrades by transferring ownership.\n *\n * NOTE: The real interface of this proxy is that defined in `ITransparentUpgradeableProxy`. This contract does not\n * inherit from that interface, and instead `upgradeToAndCall` is implicitly implemented using a custom dispatch\n * mechanism in `_fallback`. Consequently, the compiler will not produce an ABI for this contract. This is necessary to\n * fully implement transparency without decoding reverts caused by selector clashes between the proxy and the\n * implementation.\n *\n * NOTE: This proxy does not inherit from {Context} deliberately. The {ProxyAdmin} of this contract won't send a\n * meta-transaction in any way, and any other meta-transaction setup should be made in the implementation contract.\n *\n * IMPORTANT: This contract avoids unnecessary storage reads by setting the admin only during construction as an\n * immutable variable, preventing any changes thereafter. However, the admin slot defined in ERC-1967 can still be\n * overwritten by the implementation logic pointed to by this proxy. In such cases, the contract may end up in an\n * undesirable state where the admin slot is different from the actual admin.\n *\n * WARNING: It is not recommended to extend this contract to add additional external functions. If you do so, the\n * compiler will not check that there are no selector conflicts, due to the note above. A selector clash between any new\n * function and the functions declared in {ITransparentUpgradeableProxy} will be resolved in favor of the new one. This\n * could render the `upgradeToAndCall` function inaccessible, preventing upgradeability and compromising transparency.\n */\ncontract TransparentUpgradeableProxy is ERC1967Proxy {\n // An immutable address for the admin to avoid unnecessary SLOADs before each call\n // at the expense of removing the ability to change the admin once it's set.\n // This is acceptable if the admin is always a ProxyAdmin instance or similar contract\n // with its own ability to transfer the permissions to another account.\n address private immutable _admin;\n\n /**\n * @dev The proxy caller is the current admin, and can't fallback to the proxy target.\n */\n error ProxyDeniedAdminAccess();\n\n /**\n * @dev Initializes an upgradeable proxy managed by an instance of a {ProxyAdmin} with an `initialOwner`,\n * backed by the implementation at `_logic`, and optionally initialized with `_data` as explained in\n * {ERC1967Proxy-constructor}.\n */\n constructor(address _logic, address initialOwner, bytes memory _data) payable ERC1967Proxy(_logic, _data) {\n _admin = address(new ProxyAdmin(initialOwner));\n // Set the storage value and emit an event for ERC-1967 compatibility\n ERC1967Utils.changeAdmin(_proxyAdmin());\n }\n\n /**\n * @dev Returns the admin of this proxy.\n */\n function _proxyAdmin() internal virtual returns (address) {\n return _admin;\n }\n\n /**\n * @dev If caller is the admin process the call internally, otherwise transparently fallback to the proxy behavior.\n */\n function _fallback() internal virtual override {\n if (msg.sender == _proxyAdmin()) {\n if (msg.sig != ITransparentUpgradeableProxy.upgradeToAndCall.selector) {\n revert ProxyDeniedAdminAccess();\n } else {\n _dispatchUpgradeToAndCall();\n }\n } else {\n super._fallback();\n }\n }\n\n /**\n * @dev Upgrade the implementation of the proxy. See {ERC1967Utils-upgradeToAndCall}.\n *\n * Requirements:\n *\n * - If `data` is empty, `msg.value` must be zero.\n */\n function _dispatchUpgradeToAndCall() private {\n (address newImplementation, bytes memory data) = abi.decode(msg.data[4:], (address, bytes));\n ERC1967Utils.upgradeToAndCall(newImplementation, data);\n }\n}\n\n// lib/openzeppelin-foundry-upgrades/src/Defender.sol\n\n/**\n * @dev Library for interacting with OpenZeppelin Defender from Forge scripts or tests.\n */\nlibrary Defender {\n /**\n * @dev Deploys a contract to the current network using OpenZeppelin Defender.\n *\n * WARNING: Do not use this function directly if you are deploying an upgradeable contract. This function does not validate whether the contract is upgrade safe.\n *\n * NOTE: If using an EOA or Safe to deploy, go to https://defender.openzeppelin.com/v2/#/deploy[Defender deploy] to submit the pending deployment while the script is running.\n * The script waits for the deployment to complete before it continues.\n *\n * @param contractName Name of the contract to deploy, e.g. \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n * @return Address of the deployed contract\n */\n function deployContract(string memory contractName) internal returns (address) {\n return deployContract(contractName, \"\");\n }\n\n /**\n * @dev Deploys a contract to the current network using OpenZeppelin Defender.\n *\n * WARNING: Do not use this function directly if you are deploying an upgradeable contract. This function does not validate whether the contract is upgrade safe.\n *\n * NOTE: If using an EOA or Safe to deploy, go to https://defender.openzeppelin.com/v2/#/deploy[Defender deploy] to submit the pending deployment while the script is running.\n * The script waits for the deployment to complete before it continues.\n *\n * @param contractName Name of the contract to deploy, e.g. \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n * @param defenderOpts Defender deployment options. Note that the `useDefenderDeploy` option is always treated as `true` when called from this function.\n * @return Address of the deployed contract\n */\n function deployContract(\n string memory contractName,\n DefenderOptions memory defenderOpts\n ) internal returns (address) {\n return deployContract(contractName, \"\", defenderOpts);\n }\n\n /**\n * @dev Deploys a contract with constructor arguments to the current network using OpenZeppelin Defender.\n *\n * WARNING: Do not use this function directly if you are deploying an upgradeable contract. This function does not validate whether the contract is upgrade safe.\n *\n * NOTE: If using an EOA or Safe to deploy, go to https://defender.openzeppelin.com/v2/#/deploy[Defender deploy] to submit the pending deployment while the script is running.\n * The script waits for the deployment to complete before it continues.\n *\n * @param contractName Name of the contract to deploy, e.g. \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n * @param constructorData Encoded constructor arguments\n * @return Address of the deployed contract\n */\n function deployContract(string memory contractName, bytes memory constructorData) internal returns (address) {\n DefenderOptions memory defenderOpts;\n return deployContract(contractName, constructorData, defenderOpts);\n }\n\n /**\n * @dev Deploys a contract with constructor arguments to the current network using OpenZeppelin Defender.\n *\n * WARNING: Do not use this function directly if you are deploying an upgradeable contract. This function does not validate whether the contract is upgrade safe.\n *\n * NOTE: If using an EOA or Safe to deploy, go to https://defender.openzeppelin.com/v2/#/deploy[Defender deploy] to submit the pending deployment while the script is running.\n * The script waits for the deployment to complete before it continues.\n *\n * @param contractName Name of the contract to deploy, e.g. \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n * @param constructorData Encoded constructor arguments\n * @param defenderOpts Defender deployment options. Note that the `useDefenderDeploy` option is always treated as `true` when called from this function.\n * @return Address of the deployed contract\n */\n function deployContract(\n string memory contractName,\n bytes memory constructorData,\n DefenderOptions memory defenderOpts\n ) internal returns (address) {\n return DefenderDeploy.deploy(contractName, constructorData, defenderOpts);\n }\n\n /**\n * @dev Proposes an upgrade to an upgradeable proxy using OpenZeppelin Defender.\n *\n * This function validates a new implementation contract in comparison with a reference contract, deploys the new implementation contract using Defender,\n * and proposes an upgrade to the new implementation contract using an upgrade approval process on Defender.\n *\n * Supported for UUPS or Transparent proxies. Not currently supported for beacon proxies or beacons.\n * For beacons, use `Upgrades.prepareUpgrade` along with a transaction proposal on Defender to upgrade the beacon to the deployed implementation.\n *\n * Requires that either the `referenceContract` option is set, or the contract has a `@custom:oz-upgrades-from ` annotation.\n *\n * WARNING: Ensure that the reference contract is the same as the current implementation contract that the proxy is pointing to.\n * This function does not validate that the reference contract is the current implementation.\n *\n * NOTE: If using an EOA or Safe to deploy, go to https://defender.openzeppelin.com/v2/#/deploy[Defender deploy] to submit the pending deployment of the new implementation contract while the script is running.\n * The script waits for the deployment to complete before it continues.\n *\n * @param proxyAddress The proxy address\n * @param newImplementationContractName Name of the new implementation contract to upgrade to, e.g. \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n * @param opts Common options. Note that the `defender.useDefenderDeploy` option is always treated as `true` when called from this function.\n * @return Struct containing the proposal ID and URL for the upgrade proposal\n */\n function proposeUpgrade(\n address proxyAddress,\n string memory newImplementationContractName,\n Options memory opts\n ) internal returns (ProposeUpgradeResponse memory) {\n opts.defender.useDefenderDeploy = true;\n address proxyAdminAddress = Core.getAdminAddress(proxyAddress);\n address newImplementationAddress = Core.prepareUpgrade(newImplementationContractName, opts);\n return\n DefenderDeploy.proposeUpgrade(\n proxyAddress,\n proxyAdminAddress,\n newImplementationAddress,\n newImplementationContractName,\n opts\n );\n }\n\n /**\n * @dev Gets the default deploy approval process configured for your deployment environment on OpenZeppelin Defender.\n *\n * @return Struct with the default deploy approval process ID and the associated address, such as a Relayer, EOA, or multisig wallet address.\n */\n function getDeployApprovalProcess() internal returns (ApprovalProcessResponse memory) {\n return DefenderDeploy.getApprovalProcess(\"getDeployApprovalProcess\");\n }\n\n /**\n * @dev Gets the default upgrade approval process configured for your deployment environment on OpenZeppelin Defender.\n * For example, this is useful for determining the default multisig wallet that you can use in your scripts to assign as the owner of your proxy.\n *\n * @return Struct with the default upgrade approval process ID and the associated address, such as a multisig or governor contract address.\n */\n function getUpgradeApprovalProcess() internal returns (ApprovalProcessResponse memory) {\n return DefenderDeploy.getApprovalProcess(\"getUpgradeApprovalProcess\");\n }\n}\n\nstruct ProposeUpgradeResponse {\n string proposalId;\n string url;\n}\n\nstruct ApprovalProcessResponse {\n string approvalProcessId;\n address via;\n string viaType;\n}\n\n// lib/openzeppelin-foundry-upgrades/src/internal/Core.sol\n\n/**\n * @dev Internal helper methods to validate/deploy implementations and perform upgrades.\n *\n * WARNING: DO NOT USE DIRECTLY. Use Upgrades.sol, LegacyUpgrades.sol or Defender.sol instead.\n */\nlibrary Core {\n /**\n * @dev Upgrades a proxy to a new implementation contract. Only supported for UUPS or transparent proxies.\n *\n * Requires that either the `referenceContract` option is set, or the new implementation contract has a `@custom:oz-upgrades-from ` annotation.\n *\n * @param proxy Address of the proxy to upgrade\n * @param contractName Name of the new implementation contract to upgrade to, e.g. \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n * @param data Encoded call data of an arbitrary function to call during the upgrade process, or empty if no function needs to be called during the upgrade\n * @param opts Common options\n */\n function upgradeProxy(address proxy, string memory contractName, bytes memory data, Options memory opts) internal {\n address newImpl = prepareUpgrade(contractName, opts);\n upgradeProxyTo(proxy, newImpl, data);\n }\n\n /**\n * @notice For tests only. If broadcasting in scripts, use the `--sender
` option with `forge script` instead.\n *\n * @dev Upgrades a proxy to a new implementation contract. Only supported for UUPS or transparent proxies.\n *\n * Requires that either the `referenceContract` option is set, or the new implementation contract has a `@custom:oz-upgrades-from ` annotation.\n *\n * This function provides an additional `tryCaller` parameter to test an upgrade using a specific caller address.\n * Use this if you encounter `OwnableUnauthorizedAccount` errors in your tests.\n *\n * @param proxy Address of the proxy to upgrade\n * @param contractName Name of the new implementation contract to upgrade to, e.g. \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n * @param data Encoded call data of an arbitrary function to call during the upgrade process, or empty if no function needs to be called during the upgrade\n * @param opts Common options\n * @param tryCaller Address to use as the caller of the upgrade function. This should be the address that owns the proxy or its ProxyAdmin.\n */\n function upgradeProxy(\n address proxy,\n string memory contractName,\n bytes memory data,\n Options memory opts,\n address tryCaller\n ) internal tryPrank(tryCaller) {\n upgradeProxy(proxy, contractName, data, opts);\n }\n\n /**\n * @dev Upgrades a proxy to a new implementation contract. Only supported for UUPS or transparent proxies.\n *\n * @param proxy Address of the proxy to upgrade\n * @param newImpl Address of the new implementation contract to upgrade to\n * @param data Encoded call data of an arbitrary function to call during the upgrade process, or empty if no function needs to be called during the upgrade\n */\n function upgradeProxyTo(address proxy, address newImpl, bytes memory data) internal {\n Vm vm = Vm(Utils.CHEATCODE_ADDRESS);\n\n bytes32 adminSlot = vm.load(proxy, ADMIN_SLOT);\n if (adminSlot == bytes32(0)) {\n string memory upgradeInterfaceVersion = getUpgradeInterfaceVersion(proxy);\n if (upgradeInterfaceVersion.toSlice().equals(\"5.0.0\".toSlice()) || data.length > 0) {\n IUpgradeableProxy(proxy).upgradeToAndCall(newImpl, data);\n } else {\n IUpgradeableProxy(proxy).upgradeTo(newImpl);\n }\n } else {\n address admin = address(uint160(uint256(adminSlot)));\n string memory upgradeInterfaceVersion = getUpgradeInterfaceVersion(admin);\n if (upgradeInterfaceVersion.toSlice().equals(\"5.0.0\".toSlice()) || data.length > 0) {\n IProxyAdmin(admin).upgradeAndCall(proxy, newImpl, data);\n } else {\n IProxyAdmin(admin).upgrade(proxy, newImpl);\n }\n }\n }\n\n /**\n * @notice For tests only. If broadcasting in scripts, use the `--sender
` option with `forge script` instead.\n *\n * @dev Upgrades a proxy to a new implementation contract. Only supported for UUPS or transparent proxies.\n *\n * This function provides an additional `tryCaller` parameter to test an upgrade using a specific caller address.\n * Use this if you encounter `OwnableUnauthorizedAccount` errors in your tests.\n *\n * @param proxy Address of the proxy to upgrade\n * @param newImpl Address of the new implementation contract to upgrade to\n * @param data Encoded call data of an arbitrary function to call during the upgrade process, or empty if no function needs to be called during the upgrade\n * @param tryCaller Address to use as the caller of the upgrade function. This should be the address that owns the proxy or its ProxyAdmin.\n */\n function upgradeProxyTo(\n address proxy,\n address newImpl,\n bytes memory data,\n address tryCaller\n ) internal tryPrank(tryCaller) {\n upgradeProxyTo(proxy, newImpl, data);\n }\n\n /**\n * @dev Upgrades a beacon to a new implementation contract.\n *\n * Requires that either the `referenceContract` option is set, or the new implementation contract has a `@custom:oz-upgrades-from ` annotation.\n *\n * @param beacon Address of the beacon to upgrade\n * @param contractName Name of the new implementation contract to upgrade to, e.g. \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n * @param opts Common options\n */\n function upgradeBeacon(address beacon, string memory contractName, Options memory opts) internal {\n address newImpl = prepareUpgrade(contractName, opts);\n upgradeBeaconTo(beacon, newImpl);\n }\n\n /**\n * @notice For tests only. If broadcasting in scripts, use the `--sender
` option with `forge script` instead.\n *\n * @dev Upgrades a beacon to a new implementation contract.\n *\n * Requires that either the `referenceContract` option is set, or the new implementation contract has a `@custom:oz-upgrades-from ` annotation.\n *\n * This function provides an additional `tryCaller` parameter to test an upgrade using a specific caller address.\n * Use this if you encounter `OwnableUnauthorizedAccount` errors in your tests.\n *\n * @param beacon Address of the beacon to upgrade\n * @param contractName Name of the new implementation contract to upgrade to, e.g. \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n * @param opts Common options\n * @param tryCaller Address to use as the caller of the upgrade function. This should be the address that owns the beacon.\n */\n function upgradeBeacon(\n address beacon,\n string memory contractName,\n Options memory opts,\n address tryCaller\n ) internal tryPrank(tryCaller) {\n upgradeBeacon(beacon, contractName, opts);\n }\n\n /**\n * @dev Upgrades a beacon to a new implementation contract address.\n *\n * @param beacon Address of the beacon to upgrade\n * @param newImpl Address of the new implementation contract to upgrade to\n */\n function upgradeBeaconTo(address beacon, address newImpl) internal {\n IUpgradeableBeacon(beacon).upgradeTo(newImpl);\n }\n\n /**\n * @notice For tests only. If broadcasting in scripts, use the `--sender
` option with `forge script` instead.\n *\n * @dev Upgrades a beacon to a new implementation contract.\n *\n * This function provides an additional `tryCaller` parameter to test an upgrade using a specific caller address.\n * Use this if you encounter `OwnableUnauthorizedAccount` errors in your tests.\n *\n * @param beacon Address of the beacon to upgrade\n * @param newImpl Address of the new implementation contract to upgrade to\n * @param tryCaller Address to use as the caller of the upgrade function. This should be the address that owns the beacon.\n */\n function upgradeBeaconTo(address beacon, address newImpl, address tryCaller) internal tryPrank(tryCaller) {\n upgradeBeaconTo(beacon, newImpl);\n }\n\n /**\n * @dev Validates an implementation contract, but does not deploy it.\n *\n * @param contractName Name of the contract to validate, e.g. \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n * @param opts Common options\n */\n function validateImplementation(string memory contractName, Options memory opts) internal {\n _validate(contractName, opts, false);\n }\n\n /**\n * @dev Validates and deploys an implementation contract, and returns its address.\n *\n * @param contractName Name of the contract to deploy, e.g. \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n * @param opts Common options\n * @return Address of the implementation contract\n */\n function deployImplementation(string memory contractName, Options memory opts) internal returns (address) {\n validateImplementation(contractName, opts);\n return deploy(contractName, opts.constructorData, opts);\n }\n\n /**\n * @dev Validates a new implementation contract in comparison with a reference contract, but does not deploy it.\n *\n * Requires that either the `referenceContract` option is set, or the contract has a `@custom:oz-upgrades-from ` annotation.\n *\n * @param contractName Name of the contract to validate, e.g. \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n * @param opts Common options\n */\n function validateUpgrade(string memory contractName, Options memory opts) internal {\n _validate(contractName, opts, true);\n }\n\n /**\n * @dev Validates a new implementation contract in comparison with a reference contract, deploys the new implementation contract,\n * and returns its address.\n *\n * Requires that either the `referenceContract` option is set, or the contract has a `@custom:oz-upgrades-from ` annotation.\n *\n * Use this method to prepare an upgrade to be run from an admin address you do not control directly or cannot use from your deployment environment.\n *\n * @param contractName Name of the contract to deploy, e.g. \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n * @param opts Common options\n * @return Address of the new implementation contract\n */\n function prepareUpgrade(string memory contractName, Options memory opts) internal returns (address) {\n validateUpgrade(contractName, opts);\n return deploy(contractName, opts.constructorData, opts);\n }\n\n /**\n * @dev Gets the admin address of a transparent proxy from its ERC1967 admin storage slot.\n *\n * @param proxy Address of a transparent proxy\n * @return Admin address\n */\n function getAdminAddress(address proxy) internal view returns (address) {\n Vm vm = Vm(Utils.CHEATCODE_ADDRESS);\n\n bytes32 adminSlot = vm.load(proxy, ADMIN_SLOT);\n return address(uint160(uint256(adminSlot)));\n }\n\n /**\n * @dev Gets the implementation address of a transparent or UUPS proxy from its ERC1967 implementation storage slot.\n *\n * @param proxy Address of a transparent or UUPS proxy\n * @return Implementation address\n */\n function getImplementationAddress(address proxy) internal view returns (address) {\n Vm vm = Vm(Utils.CHEATCODE_ADDRESS);\n\n bytes32 implSlot = vm.load(proxy, IMPLEMENTATION_SLOT);\n return address(uint160(uint256(implSlot)));\n }\n\n /**\n * @dev Gets the beacon address of a beacon proxy from its ERC1967 beacon storage slot.\n *\n * @param proxy Address of a beacon proxy\n * @return Beacon address\n */\n function getBeaconAddress(address proxy) internal view returns (address) {\n Vm vm = Vm(Utils.CHEATCODE_ADDRESS);\n\n bytes32 beaconSlot = vm.load(proxy, BEACON_SLOT);\n return address(uint160(uint256(beaconSlot)));\n }\n\n /**\n * @notice For tests only. If broadcasting in scripts, use the `--sender
` option with `forge script` instead.\n *\n * @dev Runs a function as a prank, or just runs the function normally if the prank could not be started.\n */\n modifier tryPrank(address deployer) {\n Vm vm = Vm(Utils.CHEATCODE_ADDRESS);\n\n try vm.startPrank(deployer) {\n _;\n vm.stopPrank();\n } catch {\n _;\n }\n }\n\n /**\n * @dev Storage slot with the address of the implementation.\n * This is the keccak-256 hash of \"eip1967.proxy.implementation\" subtracted by 1.\n */\n bytes32 private constant IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n\n /**\n * @dev Storage slot with the admin of the proxy.\n * This is the keccak-256 hash of \"eip1967.proxy.admin\" subtracted by 1.\n */\n bytes32 private constant ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;\n\n /**\n * @dev Storage slot with the UpgradeableBeacon contract which defines the implementation for the proxy.\n * This is the keccak-256 hash of \"eip1967.proxy.beacon\" subtracted by 1.\n */\n bytes32 private constant BEACON_SLOT = 0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50;\n\n using Strings for *;\n\n /**\n * @dev Gets the upgrade interface version string from a proxy or admin contract using the `UPGRADE_INTERFACE_VERSION()` getter.\n * If the contract does not have the getter or the return data does not look like a string, this function returns an empty string.\n */\n function getUpgradeInterfaceVersion(address addr) internal view returns (string memory) {\n // Use staticcall to prevent forge from broadcasting it\n (bool success, bytes memory returndata) = addr.staticcall(\n abi.encodeWithSignature(\"UPGRADE_INTERFACE_VERSION()\")\n );\n if (success && returndata.length > 32) {\n return abi.decode(returndata, (string));\n } else {\n return \"\";\n }\n }\n\n function _validate(string memory contractName, Options memory opts, bool requireReference) private {\n if (opts.unsafeSkipAllChecks) {\n return;\n }\n\n string[] memory inputs = _buildValidateCommand(contractName, opts, requireReference);\n VmSafe.FfiResult memory result = Utils.runAsBashCommand(inputs);\n string memory stdout = string(result.stdout);\n\n // CLI validate command uses exit code to indicate if the validation passed or failed.\n // As an extra precaution, we also check stdout for \"SUCCESS\" to ensure it actually ran.\n if (result.exitCode == 0 && stdout.toSlice().contains(\"SUCCESS\".toSlice())) {\n return;\n } else if (result.stderr.length > 0) {\n // Validations failed to run\n revert(string(abi.encodePacked(\"Failed to run upgrade safety validation: \", string(result.stderr))));\n } else {\n // Validations ran but some contracts were not upgrade safe\n revert(string(abi.encodePacked(\"Upgrade safety validation failed:\\n\", stdout)));\n }\n }\n\n function _buildValidateCommand(\n string memory contractName,\n Options memory opts,\n bool requireReference\n ) private view returns (string[] memory) {\n string memory outDir = Utils.getOutDir();\n\n string[] memory inputBuilder = new string[](255);\n\n uint8 i = 0;\n\n inputBuilder[i++] = \"npx\";\n inputBuilder[i++] = string(abi.encodePacked(\"@openzeppelin/upgrades-core@\", Versions.UPGRADES_CORE));\n inputBuilder[i++] = \"validate\";\n inputBuilder[i++] = string(abi.encodePacked(outDir, \"/build-info\"));\n inputBuilder[i++] = \"--contract\";\n inputBuilder[i++] = Utils.getFullyQualifiedName(contractName, outDir);\n\n if (bytes(opts.referenceContract).length != 0) {\n inputBuilder[i++] = \"--reference\";\n inputBuilder[i++] = Utils.getFullyQualifiedName(opts.referenceContract, outDir);\n }\n\n if (opts.unsafeSkipStorageCheck) {\n inputBuilder[i++] = \"--unsafeSkipStorageCheck\";\n } else if (requireReference) {\n inputBuilder[i++] = \"--requireReference\";\n }\n\n if (bytes(opts.unsafeAllow).length != 0) {\n inputBuilder[i++] = \"--unsafeAllow\";\n inputBuilder[i++] = opts.unsafeAllow;\n }\n\n if (opts.unsafeAllowRenames) {\n inputBuilder[i++] = \"--unsafeAllowRenames\";\n }\n\n // Create a copy of inputs but with the correct length\n string[] memory inputs = new string[](i);\n for (uint8 j = 0; j < i; j++) {\n inputs[j] = inputBuilder[j];\n }\n\n return inputs;\n }\n\n function deploy(\n string memory contractName,\n bytes memory constructorData,\n Options memory opts\n ) internal returns (address) {\n if (opts.defender.useDefenderDeploy) {\n return DefenderDeploy.deploy(contractName, constructorData, opts.defender);\n } else {\n return _deploy(contractName, constructorData);\n }\n }\n\n function _deploy(string memory contractName, bytes memory constructorData) private returns (address) {\n bytes memory creationCode = Vm(Utils.CHEATCODE_ADDRESS).getCode(contractName);\n address deployedAddress = _deployFromBytecode(abi.encodePacked(creationCode, constructorData));\n if (deployedAddress == address(0)) {\n revert(\n string(\n abi.encodePacked(\n \"Failed to deploy contract \",\n contractName,\n ' using constructor data \"',\n string(constructorData),\n '\"'\n )\n )\n );\n }\n return deployedAddress;\n }\n\n function _deployFromBytecode(bytes memory bytecode) private returns (address) {\n address addr;\n assembly {\n addr := create(0, add(bytecode, 32), mload(bytecode))\n }\n return addr;\n }\n}\n\n// lib/openzeppelin-foundry-upgrades/src/internal/DefenderDeploy.sol\n\n/**\n * @dev Internal helper methods for Defender deployments.\n *\n * WARNING: DO NOT USE DIRECTLY. Use Defender.sol instead.\n */\nlibrary DefenderDeploy {\n using Strings for *;\n\n function deploy(\n string memory contractName,\n bytes memory constructorData,\n DefenderOptions memory defenderOpts\n ) internal returns (address) {\n string memory outDir = Utils.getOutDir();\n ContractInfo memory contractInfo = Utils.getContractInfo(contractName, outDir);\n string memory buildInfoFile = Utils.getBuildInfoFile(\n contractInfo.sourceCodeHash,\n contractInfo.shortName,\n outDir\n );\n\n string[] memory inputs = buildDeployCommand(contractInfo, buildInfoFile, constructorData, defenderOpts);\n\n VmSafe.FfiResult memory result = Utils.runAsBashCommand(inputs);\n string memory stdout = string(result.stdout);\n\n if (result.exitCode != 0) {\n revert(string(abi.encodePacked(\"Failed to deploy contract \", contractName, \": \", string(result.stderr))));\n }\n\n string memory deployedAddress = _parseLine(\"Deployed to address: \", stdout, true);\n return Vm(Utils.CHEATCODE_ADDRESS).parseAddress(deployedAddress);\n }\n\n function buildDeployCommand(\n ContractInfo memory contractInfo,\n string memory buildInfoFile,\n bytes memory constructorData,\n DefenderOptions memory defenderOpts\n ) internal view returns (string[] memory) {\n Vm vm = Vm(Utils.CHEATCODE_ADDRESS);\n\n if (!(defenderOpts.licenseType).toSlice().empty()) {\n if (defenderOpts.skipVerifySourceCode) {\n revert(\"The `licenseType` option cannot be used when the `skipVerifySourceCode` option is `true`\");\n } else if (defenderOpts.skipLicenseType) {\n revert(\"The `licenseType` option cannot be used when the `skipLicenseType` option is `true`\");\n }\n }\n\n string[] memory inputBuilder = new string[](255);\n\n uint8 i = 0;\n\n inputBuilder[i++] = \"npx\";\n inputBuilder[i++] = string(\n abi.encodePacked(\"@openzeppelin/defender-deploy-client-cli@\", Versions.DEFENDER_DEPLOY_CLIENT_CLI)\n );\n inputBuilder[i++] = \"deploy\";\n inputBuilder[i++] = \"--contractName\";\n inputBuilder[i++] = contractInfo.shortName;\n inputBuilder[i++] = \"--contractPath\";\n inputBuilder[i++] = contractInfo.contractPath;\n inputBuilder[i++] = \"--chainId\";\n inputBuilder[i++] = Strings.toString(block.chainid);\n inputBuilder[i++] = \"--buildInfoFile\";\n inputBuilder[i++] = buildInfoFile;\n if (constructorData.length > 0) {\n inputBuilder[i++] = \"--constructorBytecode\";\n inputBuilder[i++] = vm.toString(constructorData);\n }\n if (defenderOpts.skipVerifySourceCode) {\n inputBuilder[i++] = \"--verifySourceCode\";\n inputBuilder[i++] = \"false\";\n } else if (!(defenderOpts.licenseType).toSlice().empty()) {\n inputBuilder[i++] = \"--licenseType\";\n inputBuilder[i++] = string(abi.encodePacked('\"', defenderOpts.licenseType, '\"'));\n } else if (!defenderOpts.skipLicenseType && !(contractInfo.license).toSlice().empty()) {\n inputBuilder[i++] = \"--licenseType\";\n inputBuilder[i++] = string(abi.encodePacked('\"', _toLicenseType(contractInfo), '\"'));\n }\n if (!(defenderOpts.relayerId).toSlice().empty()) {\n inputBuilder[i++] = \"--relayerId\";\n inputBuilder[i++] = defenderOpts.relayerId;\n }\n if (defenderOpts.salt != 0) {\n inputBuilder[i++] = \"--salt\";\n inputBuilder[i++] = vm.toString(defenderOpts.salt);\n }\n if (defenderOpts.txOverrides.gasLimit != 0) {\n inputBuilder[i++] = \"--gasLimit\";\n inputBuilder[i++] = Strings.toString(defenderOpts.txOverrides.gasLimit);\n }\n if (defenderOpts.txOverrides.gasPrice != 0) {\n inputBuilder[i++] = \"--gasPrice\";\n inputBuilder[i++] = Strings.toString(defenderOpts.txOverrides.gasPrice);\n }\n if (defenderOpts.txOverrides.maxFeePerGas != 0) {\n inputBuilder[i++] = \"--maxFeePerGas\";\n inputBuilder[i++] = Strings.toString(defenderOpts.txOverrides.maxFeePerGas);\n }\n if (defenderOpts.txOverrides.maxPriorityFeePerGas != 0) {\n inputBuilder[i++] = \"--maxPriorityFeePerGas\";\n inputBuilder[i++] = Strings.toString(defenderOpts.txOverrides.maxPriorityFeePerGas);\n }\n if (!(defenderOpts.metadata).toSlice().empty()) {\n inputBuilder[i++] = \"--metadata\";\n inputBuilder[i++] = string(abi.encodePacked('\"', vm.replace(defenderOpts.metadata, '\"', '\\\\\"'), '\"'));\n }\n\n // Create a copy of inputs but with the correct length\n string[] memory inputs = new string[](i);\n for (uint8 j = 0; j < i; j++) {\n inputs[j] = inputBuilder[j];\n }\n\n return inputs;\n }\n\n function _toLicenseType(ContractInfo memory contractInfo) private pure returns (string memory) {\n Strings.slice memory id = contractInfo.license.toSlice();\n if (id.equals(\"UNLICENSED\".toSlice())) {\n return \"None\";\n } else if (id.equals(\"Unlicense\".toSlice())) {\n return \"Unlicense\";\n } else if (id.equals(\"MIT\".toSlice())) {\n return \"MIT\";\n } else if (id.equals(\"GPL-2.0-only\".toSlice()) || id.equals(\"GPL-2.0-or-later\".toSlice())) {\n return \"GNU GPLv2\";\n } else if (id.equals(\"GPL-3.0-only\".toSlice()) || id.equals(\"GPL-3.0-or-later\".toSlice())) {\n return \"GNU GPLv3\";\n } else if (id.equals(\"LGPL-2.1-only\".toSlice()) || id.equals(\"LGPL-2.1-or-later\".toSlice())) {\n return \"GNU LGPLv2.1\";\n } else if (id.equals(\"LGPL-3.0-only\".toSlice()) || id.equals(\"LGPL-3.0-or-later\".toSlice())) {\n return \"GNU LGPLv3\";\n } else if (id.equals(\"BSD-2-Clause\".toSlice())) {\n return \"BSD-2-Clause\";\n } else if (id.equals(\"BSD-3-Clause\".toSlice())) {\n return \"BSD-3-Clause\";\n } else if (id.equals(\"MPL-2.0\".toSlice())) {\n return \"MPL-2.0\";\n } else if (id.equals(\"OSL-3.0\".toSlice())) {\n return \"OSL-3.0\";\n } else if (id.equals(\"Apache-2.0\".toSlice())) {\n return \"Apache-2.0\";\n } else if (id.equals(\"AGPL-3.0-only\".toSlice()) || id.equals(\"AGPL-3.0-or-later\".toSlice())) {\n return \"GNU AGPLv3\";\n } else if (id.equals(\"BUSL-1.1\".toSlice())) {\n return \"BSL 1.1\";\n } else {\n revert(\n string(\n abi.encodePacked(\n \"SPDX license identifier \",\n contractInfo.license,\n \" in \",\n contractInfo.contractPath,\n \" does not look like a supported license for block explorer verification. Use the `licenseType` option to specify a license type, or set the `skipLicenseType` option to `true` to skip.\"\n )\n )\n );\n }\n }\n\n function proposeUpgrade(\n address proxyAddress,\n address proxyAdminAddress,\n address newImplementationAddress,\n string memory newImplementationContractName,\n Options memory opts\n ) internal returns (ProposeUpgradeResponse memory) {\n Vm vm = Vm(Utils.CHEATCODE_ADDRESS);\n\n string memory outDir = Utils.getOutDir();\n ContractInfo memory contractInfo = Utils.getContractInfo(newImplementationContractName, outDir);\n\n string[] memory inputs = buildProposeUpgradeCommand(\n proxyAddress,\n proxyAdminAddress,\n newImplementationAddress,\n contractInfo,\n opts\n );\n\n VmSafe.FfiResult memory result = Utils.runAsBashCommand(inputs);\n string memory stdout = string(result.stdout);\n\n if (result.exitCode != 0) {\n revert(\n string(\n abi.encodePacked(\n \"Failed to propose upgrade for proxy \",\n vm.toString(proxyAddress),\n \": \",\n string(result.stderr)\n )\n )\n );\n }\n\n return parseProposeUpgradeResponse(stdout);\n }\n\n function parseProposeUpgradeResponse(string memory stdout) internal pure returns (ProposeUpgradeResponse memory) {\n ProposeUpgradeResponse memory response;\n response.proposalId = _parseLine(\"Proposal ID: \", stdout, true);\n response.url = _parseLine(\"Proposal URL: \", stdout, false);\n return response;\n }\n\n function _parseLine(\n string memory expectedPrefix,\n string memory stdout,\n bool required\n ) private pure returns (string memory) {\n Strings.slice memory delim = expectedPrefix.toSlice();\n if (stdout.toSlice().contains(delim)) {\n Strings.slice memory slice = stdout.toSlice().copy().find(delim).beyond(delim);\n // Remove any following lines\n if (slice.contains(\"\\n\".toSlice())) {\n slice = slice.split(\"\\n\".toSlice());\n }\n return slice.toString();\n } else if (required) {\n revert(\n string(abi.encodePacked(\"Failed to find line with prefix '\", expectedPrefix, \"' in output: \", stdout))\n );\n } else {\n return \"\";\n }\n }\n\n function buildProposeUpgradeCommand(\n address proxyAddress,\n address proxyAdminAddress,\n address newImplementationAddress,\n ContractInfo memory contractInfo,\n Options memory opts\n ) internal view returns (string[] memory) {\n Vm vm = Vm(Utils.CHEATCODE_ADDRESS);\n\n string[] memory inputBuilder = new string[](255);\n\n uint8 i = 0;\n\n inputBuilder[i++] = \"npx\";\n inputBuilder[i++] = string(\n abi.encodePacked(\"@openzeppelin/defender-deploy-client-cli@\", Versions.DEFENDER_DEPLOY_CLIENT_CLI)\n );\n inputBuilder[i++] = \"proposeUpgrade\";\n inputBuilder[i++] = \"--proxyAddress\";\n inputBuilder[i++] = vm.toString(proxyAddress);\n inputBuilder[i++] = \"--newImplementationAddress\";\n inputBuilder[i++] = vm.toString(newImplementationAddress);\n inputBuilder[i++] = \"--chainId\";\n inputBuilder[i++] = Strings.toString(block.chainid);\n inputBuilder[i++] = \"--contractArtifactFile\";\n inputBuilder[i++] = string(abi.encodePacked('\"', contractInfo.artifactPath, '\"'));\n if (proxyAdminAddress != address(0)) {\n inputBuilder[i++] = \"--proxyAdminAddress\";\n inputBuilder[i++] = vm.toString(proxyAdminAddress);\n }\n if (!(opts.defender.upgradeApprovalProcessId).toSlice().empty()) {\n inputBuilder[i++] = \"--approvalProcessId\";\n inputBuilder[i++] = opts.defender.upgradeApprovalProcessId;\n }\n\n // Create a copy of inputs but with the correct length\n string[] memory inputs = new string[](i);\n for (uint8 j = 0; j < i; j++) {\n inputs[j] = inputBuilder[j];\n }\n\n return inputs;\n }\n\n function getApprovalProcess(string memory command) internal returns (ApprovalProcessResponse memory) {\n string[] memory inputs = buildGetApprovalProcessCommand(command);\n\n VmSafe.FfiResult memory result = Utils.runAsBashCommand(inputs);\n string memory stdout = string(result.stdout);\n\n if (result.exitCode != 0) {\n revert(string(abi.encodePacked(\"Failed to get approval process: \", string(result.stderr))));\n }\n\n return parseApprovalProcessResponse(stdout);\n }\n\n function parseApprovalProcessResponse(string memory stdout) internal pure returns (ApprovalProcessResponse memory) {\n Vm vm = Vm(Utils.CHEATCODE_ADDRESS);\n\n ApprovalProcessResponse memory response;\n\n response.approvalProcessId = _parseLine(\"Approval process ID: \", stdout, true);\n\n string memory viaString = _parseLine(\"Via: \", stdout, false);\n if (viaString.toSlice().len() != 0) {\n response.via = vm.parseAddress(viaString);\n }\n\n response.viaType = _parseLine(\"Via type: \", stdout, false);\n\n return response;\n }\n\n function buildGetApprovalProcessCommand(string memory command) internal view returns (string[] memory) {\n string[] memory inputBuilder = new string[](255);\n\n uint8 i = 0;\n\n inputBuilder[i++] = \"npx\";\n inputBuilder[i++] = string(\n abi.encodePacked(\"@openzeppelin/defender-deploy-client-cli@\", Versions.DEFENDER_DEPLOY_CLIENT_CLI)\n );\n inputBuilder[i++] = command;\n inputBuilder[i++] = \"--chainId\";\n inputBuilder[i++] = Strings.toString(block.chainid);\n\n // Create a copy of inputs but with the correct length\n string[] memory inputs = new string[](i);\n for (uint8 j = 0; j < i; j++) {\n inputs[j] = inputBuilder[j];\n }\n\n return inputs;\n }\n}\n\n// lib/openzeppelin-foundry-upgrades/src/Upgrades.sol\n\n/**\n * @dev Library for deploying and managing upgradeable contracts from Forge scripts or tests.\n *\n * NOTE: Requires OpenZeppelin Contracts v5 or higher.\n */\nlibrary Upgrades {\n /**\n * @dev Deploys a UUPS proxy using the given contract as the implementation.\n *\n * @param contractName Name of the contract to use as the implementation, e.g. \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n * @param initializerData Encoded call data of the initializer function to call during creation of the proxy, or empty if no initialization is required\n * @param opts Common options\n * @return Proxy address\n */\n function deployUUPSProxy(\n string memory contractName,\n bytes memory initializerData,\n Options memory opts\n ) internal returns (address) {\n address impl = deployImplementation(contractName, opts);\n\n return Core.deploy(\"ERC1967Proxy.sol:ERC1967Proxy\", abi.encode(impl, initializerData), opts);\n }\n\n /**\n * @dev Deploys a UUPS proxy using the given contract as the implementation.\n *\n * @param contractName Name of the contract to use as the implementation, e.g. \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n * @param initializerData Encoded call data of the initializer function to call during creation of the proxy, or empty if no initialization is required\n * @return Proxy address\n */\n function deployUUPSProxy(string memory contractName, bytes memory initializerData) internal returns (address) {\n Options memory opts;\n return deployUUPSProxy(contractName, initializerData, opts);\n }\n\n /**\n * @dev Deploys a transparent proxy using the given contract as the implementation.\n *\n * @param contractName Name of the contract to use as the implementation, e.g. \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n * @param initialOwner Address to set as the owner of the ProxyAdmin contract which gets deployed by the proxy\n * @param initializerData Encoded call data of the initializer function to call during creation of the proxy, or empty if no initialization is required\n * @param opts Common options\n * @return Proxy address\n */\n function deployTransparentProxy(\n string memory contractName,\n address initialOwner,\n bytes memory initializerData,\n Options memory opts\n ) internal returns (address) {\n address impl = deployImplementation(contractName, opts);\n\n return\n Core.deploy(\n \"TransparentUpgradeableProxy.sol:TransparentUpgradeableProxy\",\n abi.encode(impl, initialOwner, initializerData),\n opts\n );\n }\n\n /**\n * @dev Deploys a transparent proxy using the given contract as the implementation.\n *\n * @param contractName Name of the contract to use as the implementation, e.g. \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n * @param initialOwner Address to set as the owner of the ProxyAdmin contract which gets deployed by the proxy\n * @param initializerData Encoded call data of the initializer function to call during creation of the proxy, or empty if no initialization is required\n * @return Proxy address\n */\n function deployTransparentProxy(\n string memory contractName,\n address initialOwner,\n bytes memory initializerData\n ) internal returns (address) {\n Options memory opts;\n return deployTransparentProxy(contractName, initialOwner, initializerData, opts);\n }\n\n /**\n * @dev Upgrades a proxy to a new implementation contract. Only supported for UUPS or transparent proxies.\n *\n * Requires that either the `referenceContract` option is set, or the new implementation contract has a `@custom:oz-upgrades-from ` annotation.\n *\n * @param proxy Address of the proxy to upgrade\n * @param contractName Name of the new implementation contract to upgrade to, e.g. \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n * @param data Encoded call data of an arbitrary function to call during the upgrade process, or empty if no function needs to be called during the upgrade\n * @param opts Common options\n */\n function upgradeProxy(address proxy, string memory contractName, bytes memory data, Options memory opts) internal {\n Core.upgradeProxy(proxy, contractName, data, opts);\n }\n\n /**\n * @dev Upgrades a proxy to a new implementation contract. Only supported for UUPS or transparent proxies.\n *\n * Requires that either the `referenceContract` option is set, or the new implementation contract has a `@custom:oz-upgrades-from ` annotation.\n *\n * @param proxy Address of the proxy to upgrade\n * @param contractName Name of the new implementation contract to upgrade to, e.g. \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n * @param data Encoded call data of an arbitrary function to call during the upgrade process, or empty if no function needs to be called during the upgrade\n */\n function upgradeProxy(address proxy, string memory contractName, bytes memory data) internal {\n Options memory opts;\n Core.upgradeProxy(proxy, contractName, data, opts);\n }\n\n /**\n * @notice For tests only. If broadcasting in scripts, use the `--sender
` option with `forge script` instead.\n *\n * @dev Upgrades a proxy to a new implementation contract. Only supported for UUPS or transparent proxies.\n *\n * Requires that either the `referenceContract` option is set, or the new implementation contract has a `@custom:oz-upgrades-from ` annotation.\n *\n * This function provides an additional `tryCaller` parameter to test an upgrade using a specific caller address.\n * Use this if you encounter `OwnableUnauthorizedAccount` errors in your tests.\n *\n * @param proxy Address of the proxy to upgrade\n * @param contractName Name of the new implementation contract to upgrade to, e.g. \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n * @param data Encoded call data of an arbitrary function to call during the upgrade process, or empty if no function needs to be called during the upgrade\n * @param opts Common options\n * @param tryCaller Address to use as the caller of the upgrade function. This should be the address that owns the proxy or its ProxyAdmin.\n */\n function upgradeProxy(\n address proxy,\n string memory contractName,\n bytes memory data,\n Options memory opts,\n address tryCaller\n ) internal {\n Core.upgradeProxy(proxy, contractName, data, opts, tryCaller);\n }\n\n /**\n * @notice For tests only. If broadcasting in scripts, use the `--sender
` option with `forge script` instead.\n *\n * @dev Upgrades a proxy to a new implementation contract. Only supported for UUPS or transparent proxies.\n *\n * Requires that either the `referenceContract` option is set, or the new implementation contract has a `@custom:oz-upgrades-from ` annotation.\n *\n * This function provides an additional `tryCaller` parameter to test an upgrade using a specific caller address.\n * Use this if you encounter `OwnableUnauthorizedAccount` errors in your tests.\n *\n * @param proxy Address of the proxy to upgrade\n * @param contractName Name of the new implementation contract to upgrade to, e.g. \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n * @param data Encoded call data of an arbitrary function to call during the upgrade process, or empty if no function needs to be called during the upgrade\n * @param tryCaller Address to use as the caller of the upgrade function. This should be the address that owns the proxy or its ProxyAdmin.\n */\n function upgradeProxy(address proxy, string memory contractName, bytes memory data, address tryCaller) internal {\n Options memory opts;\n Core.upgradeProxy(proxy, contractName, data, opts, tryCaller);\n }\n\n /**\n * @dev Deploys an upgradeable beacon using the given contract as the implementation.\n *\n * @param contractName Name of the contract to use as the implementation, e.g. \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n * @param initialOwner Address to set as the owner of the UpgradeableBeacon contract which gets deployed\n * @param opts Common options\n * @return Beacon address\n */\n function deployBeacon(\n string memory contractName,\n address initialOwner,\n Options memory opts\n ) internal returns (address) {\n address impl = deployImplementation(contractName, opts);\n\n return Core.deploy(\"UpgradeableBeacon.sol:UpgradeableBeacon\", abi.encode(impl, initialOwner), opts);\n }\n\n /**\n * @dev Deploys an upgradeable beacon using the given contract as the implementation.\n *\n * @param contractName Name of the contract to use as the implementation, e.g. \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n * @param initialOwner Address to set as the owner of the UpgradeableBeacon contract which gets deployed\n * @return Beacon address\n */\n function deployBeacon(string memory contractName, address initialOwner) internal returns (address) {\n Options memory opts;\n return deployBeacon(contractName, initialOwner, opts);\n }\n\n /**\n * @dev Upgrades a beacon to a new implementation contract.\n *\n * Requires that either the `referenceContract` option is set, or the new implementation contract has a `@custom:oz-upgrades-from ` annotation.\n *\n * @param beacon Address of the beacon to upgrade\n * @param contractName Name of the new implementation contract to upgrade to, e.g. \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n * @param opts Common options\n */\n function upgradeBeacon(address beacon, string memory contractName, Options memory opts) internal {\n Core.upgradeBeacon(beacon, contractName, opts);\n }\n\n /**\n * @dev Upgrades a beacon to a new implementation contract.\n *\n * Requires that either the `referenceContract` option is set, or the new implementation contract has a `@custom:oz-upgrades-from ` annotation.\n *\n * @param beacon Address of the beacon to upgrade\n * @param contractName Name of the new implementation contract to upgrade to, e.g. \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n */\n function upgradeBeacon(address beacon, string memory contractName) internal {\n Options memory opts;\n Core.upgradeBeacon(beacon, contractName, opts);\n }\n\n /**\n * @notice For tests only. If broadcasting in scripts, use the `--sender
` option with `forge script` instead.\n *\n * @dev Upgrades a beacon to a new implementation contract.\n *\n * Requires that either the `referenceContract` option is set, or the new implementation contract has a `@custom:oz-upgrades-from ` annotation.\n *\n * This function provides an additional `tryCaller` parameter to test an upgrade using a specific caller address.\n * Use this if you encounter `OwnableUnauthorizedAccount` errors in your tests.\n *\n * @param beacon Address of the beacon to upgrade\n * @param contractName Name of the new implementation contract to upgrade to, e.g. \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n * @param opts Common options\n * @param tryCaller Address to use as the caller of the upgrade function. This should be the address that owns the beacon.\n */\n function upgradeBeacon(\n address beacon,\n string memory contractName,\n Options memory opts,\n address tryCaller\n ) internal {\n Core.upgradeBeacon(beacon, contractName, opts, tryCaller);\n }\n\n /**\n * @notice For tests only. If broadcasting in scripts, use the `--sender
` option with `forge script` instead.\n *\n * @dev Upgrades a beacon to a new implementation contract.\n *\n * Requires that either the `referenceContract` option is set, or the new implementation contract has a `@custom:oz-upgrades-from ` annotation.\n *\n * This function provides an additional `tryCaller` parameter to test an upgrade using a specific caller address.\n * Use this if you encounter `OwnableUnauthorizedAccount` errors in your tests.\n *\n * @param beacon Address of the beacon to upgrade\n * @param contractName Name of the new implementation contract to upgrade to, e.g. \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n * @param tryCaller Address to use as the caller of the upgrade function. This should be the address that owns the beacon.\n */\n function upgradeBeacon(address beacon, string memory contractName, address tryCaller) internal {\n Options memory opts;\n Core.upgradeBeacon(beacon, contractName, opts, tryCaller);\n }\n\n /**\n * @dev Deploys a beacon proxy using the given beacon and call data.\n *\n * @param beacon Address of the beacon to use\n * @param data Encoded call data of the initializer function to call during creation of the proxy, or empty if no initialization is required\n * @return Proxy address\n */\n function deployBeaconProxy(address beacon, bytes memory data) internal returns (address) {\n Options memory opts;\n return deployBeaconProxy(beacon, data, opts);\n }\n\n /**\n * @dev Deploys a beacon proxy using the given beacon and call data.\n *\n * @param beacon Address of the beacon to use\n * @param data Encoded call data of the initializer function to call during creation of the proxy, or empty if no initialization is required\n * @param opts Common options\n * @return Proxy address\n */\n function deployBeaconProxy(address beacon, bytes memory data, Options memory opts) internal returns (address) {\n return Core.deploy(\"BeaconProxy.sol:BeaconProxy\", abi.encode(beacon, data), opts);\n }\n\n /**\n * @dev Validates an implementation contract, but does not deploy it.\n *\n * @param contractName Name of the contract to validate, e.g. \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n * @param opts Common options\n */\n function validateImplementation(string memory contractName, Options memory opts) internal {\n Core.validateImplementation(contractName, opts);\n }\n\n /**\n * @dev Validates and deploys an implementation contract, and returns its address.\n *\n * @param contractName Name of the contract to deploy, e.g. \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n * @param opts Common options\n * @return Address of the implementation contract\n */\n function deployImplementation(string memory contractName, Options memory opts) internal returns (address) {\n return Core.deployImplementation(contractName, opts);\n }\n\n /**\n * @dev Validates a new implementation contract in comparison with a reference contract, but does not deploy it.\n *\n * Requires that either the `referenceContract` option is set, or the contract has a `@custom:oz-upgrades-from ` annotation.\n *\n * @param contractName Name of the contract to validate, e.g. \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n * @param opts Common options\n */\n function validateUpgrade(string memory contractName, Options memory opts) internal {\n Core.validateUpgrade(contractName, opts);\n }\n\n /**\n * @dev Validates a new implementation contract in comparison with a reference contract, deploys the new implementation contract,\n * and returns its address.\n *\n * Requires that either the `referenceContract` option is set, or the contract has a `@custom:oz-upgrades-from ` annotation.\n *\n * Use this method to prepare an upgrade to be run from an admin address you do not control directly or cannot use from your deployment environment.\n *\n * @param contractName Name of the contract to deploy, e.g. \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n * @param opts Common options\n * @return Address of the new implementation contract\n */\n function prepareUpgrade(string memory contractName, Options memory opts) internal returns (address) {\n return Core.prepareUpgrade(contractName, opts);\n }\n\n /**\n * @dev Gets the admin address of a transparent proxy from its ERC1967 admin storage slot.\n *\n * @param proxy Address of a transparent proxy\n * @return Admin address\n */\n function getAdminAddress(address proxy) internal view returns (address) {\n return Core.getAdminAddress(proxy);\n }\n\n /**\n * @dev Gets the implementation address of a transparent or UUPS proxy from its ERC1967 implementation storage slot.\n *\n * @param proxy Address of a transparent or UUPS proxy\n * @return Implementation address\n */\n function getImplementationAddress(address proxy) internal view returns (address) {\n return Core.getImplementationAddress(proxy);\n }\n\n /**\n * @dev Gets the beacon address of a beacon proxy from its ERC1967 beacon storage slot.\n *\n * @param proxy Address of a beacon proxy\n * @return Beacon address\n */\n function getBeaconAddress(address proxy) internal view returns (address) {\n return Core.getBeaconAddress(proxy);\n }\n}\n\n/**\n * @dev Library for deploying and managing upgradeable contracts from Forge tests, without validations.\n *\n * Can be used with `forge coverage`. Requires implementation contracts to be instantiated first.\n * Does not require `--ffi` and does not require a clean compilation before each run.\n *\n * Not supported for OpenZeppelin Defender deployments.\n *\n * WARNING: Not recommended for use in Forge scripts.\n * `UnsafeUpgrades` does not validate whether your contracts are upgrade safe or whether new implementations are compatible with previous ones.\n * Use `Upgrades` if you want validations to be run.\n *\n * NOTE: Requires OpenZeppelin Contracts v5 or higher.\n */\nlibrary UnsafeUpgrades {\n /**\n * @dev Deploys a UUPS proxy using the given contract address as the implementation.\n *\n * @param impl Address of the contract to use as the implementation\n * @param initializerData Encoded call data of the initializer function to call during creation of the proxy, or empty if no initialization is required\n * @return Proxy address\n */\n function deployUUPSProxy(address impl, bytes memory initializerData) internal returns (address) {\n return address(new ERC1967Proxy(impl, initializerData));\n }\n\n /**\n * @dev Deploys a transparent proxy using the given contract address as the implementation.\n *\n * @param impl Address of the contract to use as the implementation\n * @param initialOwner Address to set as the owner of the ProxyAdmin contract which gets deployed by the proxy\n * @param initializerData Encoded call data of the initializer function to call during creation of the proxy, or empty if no initialization is required\n * @return Proxy address\n */\n function deployTransparentProxy(\n address impl,\n address initialOwner,\n bytes memory initializerData\n ) internal returns (address) {\n return address(new TransparentUpgradeableProxy(impl, initialOwner, initializerData));\n }\n\n /**\n * @dev Upgrades a proxy to a new implementation contract address. Only supported for UUPS or transparent proxies.\n *\n * @param proxy Address of the proxy to upgrade\n * @param newImpl Address of the new implementation contract to upgrade to\n * @param data Encoded call data of an arbitrary function to call during the upgrade process, or empty if no function needs to be called during the upgrade\n */\n function upgradeProxy(address proxy, address newImpl, bytes memory data) internal {\n Core.upgradeProxyTo(proxy, newImpl, data);\n }\n\n /**\n * @notice For tests only. If broadcasting in scripts, use the `--sender
` option with `forge script` instead.\n *\n * @dev Upgrades a proxy to a new implementation contract address. Only supported for UUPS or transparent proxies.\n *\n * This function provides an additional `tryCaller` parameter to test an upgrade using a specific caller address.\n * Use this if you encounter `OwnableUnauthorizedAccount` errors in your tests.\n *\n * @param proxy Address of the proxy to upgrade\n * @param newImpl Address of the new implementation contract to upgrade to\n * @param data Encoded call data of an arbitrary function to call during the upgrade process, or empty if no function needs to be called during the upgrade\n * @param tryCaller Address to use as the caller of the upgrade function. This should be the address that owns the proxy or its ProxyAdmin.\n */\n function upgradeProxy(address proxy, address newImpl, bytes memory data, address tryCaller) internal {\n Core.upgradeProxyTo(proxy, newImpl, data, tryCaller);\n }\n\n /**\n * @dev Deploys an upgradeable beacon using the given contract address as the implementation.\n *\n * @param impl Address of the contract to use as the implementation\n * @param initialOwner Address to set as the owner of the UpgradeableBeacon contract which gets deployed\n * @return Beacon address\n */\n function deployBeacon(address impl, address initialOwner) internal returns (address) {\n return address(new UpgradeableBeacon(impl, initialOwner));\n }\n\n /**\n * @dev Upgrades a beacon to a new implementation contract address.\n *\n * @param beacon Address of the beacon to upgrade\n * @param newImpl Address of the new implementation contract to upgrade to\n */\n function upgradeBeacon(address beacon, address newImpl) internal {\n Core.upgradeBeaconTo(beacon, newImpl);\n }\n\n /**\n * @notice For tests only. If broadcasting in scripts, use the `--sender
` option with `forge script` instead.\n *\n * @dev Upgrades a beacon to a new implementation contract address.\n *\n * This function provides an additional `tryCaller` parameter to test an upgrade using a specific caller address.\n * Use this if you encounter `OwnableUnauthorizedAccount` errors in your tests.\n *\n * @param beacon Address of the beacon to upgrade\n * @param newImpl Address of the new implementation contract to upgrade to\n * @param tryCaller Address to use as the caller of the upgrade function. This should be the address that owns the beacon.\n */\n function upgradeBeacon(address beacon, address newImpl, address tryCaller) internal {\n Core.upgradeBeaconTo(beacon, newImpl, tryCaller);\n }\n\n /**\n * @dev Deploys a beacon proxy using the given beacon and call data.\n *\n * @param beacon Address of the beacon to use\n * @param data Encoded call data of the initializer function to call during creation of the proxy, or empty if no initialization is required\n * @return Proxy address\n */\n function deployBeaconProxy(address beacon, bytes memory data) internal returns (address) {\n return address(new BeaconProxy(beacon, data));\n }\n\n /**\n * @dev Gets the admin address of a transparent proxy from its ERC1967 admin storage slot.\n *\n * @param proxy Address of a transparent proxy\n * @return Admin address\n */\n function getAdminAddress(address proxy) internal view returns (address) {\n return Core.getAdminAddress(proxy);\n }\n\n /**\n * @dev Gets the implementation address of a transparent or UUPS proxy from its ERC1967 implementation storage slot.\n *\n * @param proxy Address of a transparent or UUPS proxy\n * @return Implementation address\n */\n function getImplementationAddress(address proxy) internal view returns (address) {\n return Core.getImplementationAddress(proxy);\n }\n\n /**\n * @dev Gets the beacon address of a beacon proxy from its ERC1967 beacon storage slot.\n *\n * @param proxy Address of a beacon proxy\n * @return Beacon address\n */\n function getBeaconAddress(address proxy) internal view returns (address) {\n return Core.getBeaconAddress(proxy);\n }\n}\n\n"}},"settings":{"evmVersion":"paris","optimizer":{"enabled":false,"runs":200},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"],"":["ast"]}}}},"output":{"sources":{"src/Upgrades.sol":{"ast":{"absolutePath":"src/Upgrades.sol","exportedSymbols":{"Address":[12471],"ApprovalProcessResponse":[17621],"BeaconProxy":[17293],"Context":[12499],"ContractInfo":[16467],"Core":[18590],"Defender":[17609],"DefenderDeploy":[20094],"DefenderOptions":[13800],"ERC1967Proxy":[17243],"ERC1967Utils":[16374],"IBeacon":[12220],"IERC1967":[12178],"IProxyAdmin":[13836],"ITransparentUpgradeableProxy":[17346],"IUpgradeableBeacon":[13843],"IUpgradeableProxy":[13858],"Math":[13659],"Options":[13779],"Ownable":[14002],"ProposeUpgradeResponse":[17614],"Proxy":[12212],"ProxyAdmin":[17335],"SignedMath":[13762],"StorageSlot":[12607],"Strings":[16079],"TransparentUpgradeableProxy":[17460],"TxOverrides":[13810],"UnsafeUpgrades":[20814],"UpgradeableBeacon":[16456],"Upgrades":[20607],"Utils":[17211],"Versions":[13817],"Vm":[4037],"VmSafe":[3388],"console":[12159]},"id":20815,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1,"literals":["solidity","<","0.9",".0",">=","0.4",".22",">=","0.6",".2","^","0.8",".0","^","0.8",".20"],"nodeType":"PragmaDirective","src":"32:55:0"},{"id":2,"literals":["experimental","ABIEncoderV2"],"nodeType":"PragmaDirective","src":"88:33:0"},{"abstract":false,"baseContracts":[],"canonicalName":"VmSafe","contractDependencies":[],"contractKind":"interface","documentation":{"id":3,"nodeType":"StructuredDocumentation","src":"222:225:0","text":"The `VmSafe` interface does not allow manipulation of the EVM state or other actions that may\n result in Script simulations differing from on-chain execution. It is recommended to only use\n these cheats in scripts."},"fullyImplemented":false,"id":3388,"linearizedBaseContracts":[3388],"name":"VmSafe","nameLocation":"457:6:0","nodeType":"ContractDefinition","nodes":[{"canonicalName":"VmSafe.CallerMode","documentation":{"id":4,"nodeType":"StructuredDocumentation","src":"470:92:0","text":"A modification applied to either `msg.sender` or `tx.origin`. Returned by `readCallers`."},"id":10,"members":[{"id":5,"name":"None","nameLocation":"648:4:0","nodeType":"EnumValue","src":"648:4:0"},{"id":6,"name":"Broadcast","nameLocation":"752:9:0","nodeType":"EnumValue","src":"752:9:0"},{"id":7,"name":"RecurrentBroadcast","nameLocation":"867:18:0","nodeType":"EnumValue","src":"867:18:0"},{"id":8,"name":"Prank","nameLocation":"977:5:0","nodeType":"EnumValue","src":"977:5:0"},{"id":9,"name":"RecurrentPrank","nameLocation":"1080:14:0","nodeType":"EnumValue","src":"1080:14:0"}],"name":"CallerMode","nameLocation":"572:10:0","nodeType":"EnumDefinition","src":"567:533:0"},{"canonicalName":"VmSafe.AccountAccessKind","documentation":{"id":11,"nodeType":"StructuredDocumentation","src":"1106:45:0","text":"The kind of account access that occurred."},"id":23,"members":[{"id":12,"name":"Call","nameLocation":"1224:4:0","nodeType":"EnumValue","src":"1224:4:0"},{"id":13,"name":"DelegateCall","nameLocation":"1290:12:0","nodeType":"EnumValue","src":"1290:12:0"},{"id":14,"name":"CallCode","nameLocation":"1360:8:0","nodeType":"EnumValue","src":"1360:8:0"},{"id":15,"name":"StaticCall","nameLocation":"1428:10:0","nodeType":"EnumValue","src":"1428:10:0"},{"id":16,"name":"Create","nameLocation":"1484:6:0","nodeType":"EnumValue","src":"1484:6:0"},{"id":17,"name":"SelfDestruct","nameLocation":"1543:12:0","nodeType":"EnumValue","src":"1543:12:0"},{"id":18,"name":"Resume","nameLocation":"1682:6:0","nodeType":"EnumValue","src":"1682:6:0"},{"id":19,"name":"Balance","nameLocation":"1741:7:0","nodeType":"EnumValue","src":"1741:7:0"},{"id":20,"name":"Extcodesize","nameLocation":"1802:11:0","nodeType":"EnumValue","src":"1802:11:0"},{"id":21,"name":"Extcodehash","nameLocation":"1867:11:0","nodeType":"EnumValue","src":"1867:11:0"},{"id":22,"name":"Extcodecopy","nameLocation":"1930:11:0","nodeType":"EnumValue","src":"1930:11:0"}],"name":"AccountAccessKind","nameLocation":"1161:17:0","nodeType":"EnumDefinition","src":"1156:791:0"},{"canonicalName":"VmSafe.ForgeContext","documentation":{"id":24,"nodeType":"StructuredDocumentation","src":"1953:29:0","text":"Forge execution contexts."},"id":34,"members":[{"id":25,"name":"TestGroup","nameLocation":"2085:9:0","nodeType":"EnumValue","src":"2085:9:0"},{"id":26,"name":"Test","nameLocation":"2147:4:0","nodeType":"EnumValue","src":"2147:4:0"},{"id":27,"name":"Coverage","nameLocation":"2208:8:0","nodeType":"EnumValue","src":"2208:8:0"},{"id":28,"name":"Snapshot","nameLocation":"2273:8:0","nodeType":"EnumValue","src":"2273:8:0"},{"id":29,"name":"ScriptGroup","nameLocation":"2365:11:0","nodeType":"EnumValue","src":"2365:11:0"},{"id":30,"name":"ScriptDryRun","nameLocation":"2431:12:0","nodeType":"EnumValue","src":"2431:12:0"},{"id":31,"name":"ScriptBroadcast","nameLocation":"2510:15:0","nodeType":"EnumValue","src":"2510:15:0"},{"id":32,"name":"ScriptResume","nameLocation":"2589:12:0","nodeType":"EnumValue","src":"2589:12:0"},{"id":33,"name":"Unknown","nameLocation":"2657:7:0","nodeType":"EnumValue","src":"2657:7:0"}],"name":"ForgeContext","nameLocation":"1992:12:0","nodeType":"EnumDefinition","src":"1987:683:0"},{"canonicalName":"VmSafe.Log","documentation":{"id":35,"nodeType":"StructuredDocumentation","src":"2676:51:0","text":"An Ethereum log. Returned by `getRecordedLogs`."},"id":43,"members":[{"constant":false,"id":38,"mutability":"mutable","name":"topics","nameLocation":"2830:6:0","nodeType":"VariableDeclaration","scope":43,"src":"2820:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":36,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2820:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":37,"nodeType":"ArrayTypeName","src":"2820:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":40,"mutability":"mutable","name":"data","nameLocation":"2888:4:0","nodeType":"VariableDeclaration","scope":43,"src":"2882:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":39,"name":"bytes","nodeType":"ElementaryTypeName","src":"2882:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":42,"mutability":"mutable","name":"emitter","nameLocation":"2955:7:0","nodeType":"VariableDeclaration","scope":43,"src":"2947:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41,"name":"address","nodeType":"ElementaryTypeName","src":"2947:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"Log","nameLocation":"2739:3:0","nodeType":"StructDefinition","scope":3388,"src":"2732:237:0","visibility":"public"},{"canonicalName":"VmSafe.Rpc","documentation":{"id":44,"nodeType":"StructuredDocumentation","src":"2975:58:0","text":"An RPC URL and its alias. Returned by `rpcUrlStructs`."},"id":49,"members":[{"constant":false,"id":46,"mutability":"mutable","name":"key","nameLocation":"3103:3:0","nodeType":"VariableDeclaration","scope":49,"src":"3096:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":45,"name":"string","nodeType":"ElementaryTypeName","src":"3096:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":48,"mutability":"mutable","name":"url","nameLocation":"3147:3:0","nodeType":"VariableDeclaration","scope":49,"src":"3140:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":47,"name":"string","nodeType":"ElementaryTypeName","src":"3140:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"name":"Rpc","nameLocation":"3045:3:0","nodeType":"StructDefinition","scope":3388,"src":"3038:119:0","visibility":"public"},{"canonicalName":"VmSafe.EthGetLogs","documentation":{"id":50,"nodeType":"StructuredDocumentation","src":"3163:49:0","text":"An RPC log object. Returned by `eth_getLogs`."},"id":70,"members":[{"constant":false,"id":52,"mutability":"mutable","name":"emitter","nameLocation":"3298:7:0","nodeType":"VariableDeclaration","scope":70,"src":"3290:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51,"name":"address","nodeType":"ElementaryTypeName","src":"3290:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55,"mutability":"mutable","name":"topics","nameLocation":"3392:6:0","nodeType":"VariableDeclaration","scope":70,"src":"3382:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":53,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3382:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":54,"nodeType":"ArrayTypeName","src":"3382:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":57,"mutability":"mutable","name":"data","nameLocation":"3450:4:0","nodeType":"VariableDeclaration","scope":70,"src":"3444:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":56,"name":"bytes","nodeType":"ElementaryTypeName","src":"3444:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":59,"mutability":"mutable","name":"blockHash","nameLocation":"3499:9:0","nodeType":"VariableDeclaration","scope":70,"src":"3491:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":58,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3491:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":61,"mutability":"mutable","name":"blockNumber","nameLocation":"3554:11:0","nodeType":"VariableDeclaration","scope":70,"src":"3547:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":60,"name":"uint64","nodeType":"ElementaryTypeName","src":"3547:6:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":63,"mutability":"mutable","name":"transactionHash","nameLocation":"3616:15:0","nodeType":"VariableDeclaration","scope":70,"src":"3608:23:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":62,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3608:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":65,"mutability":"mutable","name":"transactionIndex","nameLocation":"3695:16:0","nodeType":"VariableDeclaration","scope":70,"src":"3688:23:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":64,"name":"uint64","nodeType":"ElementaryTypeName","src":"3688:6:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":67,"mutability":"mutable","name":"logIndex","nameLocation":"3755:8:0","nodeType":"VariableDeclaration","scope":70,"src":"3747:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":66,"name":"uint256","nodeType":"ElementaryTypeName","src":"3747:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":69,"mutability":"mutable","name":"removed","nameLocation":"3818:7:0","nodeType":"VariableDeclaration","scope":70,"src":"3813:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":68,"name":"bool","nodeType":"ElementaryTypeName","src":"3813:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"EthGetLogs","nameLocation":"3224:10:0","nodeType":"StructDefinition","scope":3388,"src":"3217:615:0","visibility":"public"},{"canonicalName":"VmSafe.DirEntry","documentation":{"id":71,"nodeType":"StructuredDocumentation","src":"3838:65:0","text":"A single entry in a directory listing. Returned by `readDir`."},"id":82,"members":[{"constant":false,"id":73,"mutability":"mutable","name":"errorMessage","nameLocation":"3979:12:0","nodeType":"VariableDeclaration","scope":82,"src":"3972:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":72,"name":"string","nodeType":"ElementaryTypeName","src":"3972:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":75,"mutability":"mutable","name":"path","nameLocation":"4042:4:0","nodeType":"VariableDeclaration","scope":82,"src":"4035:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":74,"name":"string","nodeType":"ElementaryTypeName","src":"4035:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":77,"mutability":"mutable","name":"depth","nameLocation":"4098:5:0","nodeType":"VariableDeclaration","scope":82,"src":"4091:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":76,"name":"uint64","nodeType":"ElementaryTypeName","src":"4091:6:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":79,"mutability":"mutable","name":"isDir","nameLocation":"4163:5:0","nodeType":"VariableDeclaration","scope":82,"src":"4158:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78,"name":"bool","nodeType":"ElementaryTypeName","src":"4158:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":81,"mutability":"mutable","name":"isSymlink","nameLocation":"4226:9:0","nodeType":"VariableDeclaration","scope":82,"src":"4221:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80,"name":"bool","nodeType":"ElementaryTypeName","src":"4221:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"DirEntry","nameLocation":"3915:8:0","nodeType":"StructDefinition","scope":3388,"src":"3908:334:0","visibility":"public"},{"canonicalName":"VmSafe.FsMetadata","documentation":{"id":83,"nodeType":"StructuredDocumentation","src":"4248:219:0","text":"Metadata information about a file.\n This structure is returned from the `fsMetadata` function and represents known\n metadata about a file such as its permissions, size, modification\n times, etc."},"id":98,"members":[{"constant":false,"id":85,"mutability":"mutable","name":"isDir","nameLocation":"4558:5:0","nodeType":"VariableDeclaration","scope":98,"src":"4553:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":84,"name":"bool","nodeType":"ElementaryTypeName","src":"4553:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":87,"mutability":"mutable","name":"isSymlink","nameLocation":"4629:9:0","nodeType":"VariableDeclaration","scope":98,"src":"4624:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":86,"name":"bool","nodeType":"ElementaryTypeName","src":"4624:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":89,"mutability":"mutable","name":"length","nameLocation":"4721:6:0","nodeType":"VariableDeclaration","scope":98,"src":"4713:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":88,"name":"uint256","nodeType":"ElementaryTypeName","src":"4713:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":91,"mutability":"mutable","name":"readOnly","nameLocation":"4812:8:0","nodeType":"VariableDeclaration","scope":98,"src":"4807:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":90,"name":"bool","nodeType":"ElementaryTypeName","src":"4807:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":93,"mutability":"mutable","name":"modified","nameLocation":"4901:8:0","nodeType":"VariableDeclaration","scope":98,"src":"4893:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":92,"name":"uint256","nodeType":"ElementaryTypeName","src":"4893:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":95,"mutability":"mutable","name":"accessed","nameLocation":"4977:8:0","nodeType":"VariableDeclaration","scope":98,"src":"4969:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":94,"name":"uint256","nodeType":"ElementaryTypeName","src":"4969:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":97,"mutability":"mutable","name":"created","nameLocation":"5057:7:0","nodeType":"VariableDeclaration","scope":98,"src":"5049:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":96,"name":"uint256","nodeType":"ElementaryTypeName","src":"5049:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"FsMetadata","nameLocation":"4479:10:0","nodeType":"StructDefinition","scope":3388,"src":"4472:599:0","visibility":"public"},{"canonicalName":"VmSafe.Wallet","documentation":{"id":99,"nodeType":"StructuredDocumentation","src":"5077:43:0","text":"A wallet with a public and private key."},"id":108,"members":[{"constant":false,"id":101,"mutability":"mutable","name":"addr","nameLocation":"5190:4:0","nodeType":"VariableDeclaration","scope":108,"src":"5182:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":100,"name":"address","nodeType":"ElementaryTypeName","src":"5182:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":103,"mutability":"mutable","name":"publicKeyX","nameLocation":"5252:10:0","nodeType":"VariableDeclaration","scope":108,"src":"5244:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":102,"name":"uint256","nodeType":"ElementaryTypeName","src":"5244:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":105,"mutability":"mutable","name":"publicKeyY","nameLocation":"5320:10:0","nodeType":"VariableDeclaration","scope":108,"src":"5312:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":104,"name":"uint256","nodeType":"ElementaryTypeName","src":"5312:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":107,"mutability":"mutable","name":"privateKey","nameLocation":"5385:10:0","nodeType":"VariableDeclaration","scope":108,"src":"5377:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":106,"name":"uint256","nodeType":"ElementaryTypeName","src":"5377:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Wallet","nameLocation":"5132:6:0","nodeType":"StructDefinition","scope":3388,"src":"5125:277:0","visibility":"public"},{"canonicalName":"VmSafe.FfiResult","documentation":{"id":109,"nodeType":"StructuredDocumentation","src":"5408:34:0","text":"The result of a `tryFfi` call."},"id":116,"members":[{"constant":false,"id":111,"mutability":"mutable","name":"exitCode","nameLocation":"5518:8:0","nodeType":"VariableDeclaration","scope":116,"src":"5512:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"},"typeName":{"id":110,"name":"int32","nodeType":"ElementaryTypeName","src":"5512:5:0","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"visibility":"internal"},{"constant":false,"id":113,"mutability":"mutable","name":"stdout","nameLocation":"5595:6:0","nodeType":"VariableDeclaration","scope":116,"src":"5589:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":112,"name":"bytes","nodeType":"ElementaryTypeName","src":"5589:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":115,"mutability":"mutable","name":"stderr","nameLocation":"5647:6:0","nodeType":"VariableDeclaration","scope":116,"src":"5641:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":114,"name":"bytes","nodeType":"ElementaryTypeName","src":"5641:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"FfiResult","nameLocation":"5454:9:0","nodeType":"StructDefinition","scope":3388,"src":"5447:213:0","visibility":"public"},{"canonicalName":"VmSafe.ChainInfo","documentation":{"id":117,"nodeType":"StructuredDocumentation","src":"5666:38:0","text":"Information on the chain and fork."},"id":122,"members":[{"constant":false,"id":119,"mutability":"mutable","name":"forkId","nameLocation":"5810:6:0","nodeType":"VariableDeclaration","scope":122,"src":"5802:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":118,"name":"uint256","nodeType":"ElementaryTypeName","src":"5802:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":121,"mutability":"mutable","name":"chainId","nameLocation":"5879:7:0","nodeType":"VariableDeclaration","scope":122,"src":"5871:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":120,"name":"uint256","nodeType":"ElementaryTypeName","src":"5871:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"ChainInfo","nameLocation":"5716:9:0","nodeType":"StructDefinition","scope":3388,"src":"5709:184:0","visibility":"public"},{"canonicalName":"VmSafe.AccountAccess","documentation":{"id":123,"nodeType":"StructuredDocumentation","src":"5899:50:0","text":"The result of a `stopAndReturnStateDiff` call."},"id":154,"members":[{"constant":false,"id":126,"mutability":"mutable","name":"chainInfo","nameLocation":"6046:9:0","nodeType":"VariableDeclaration","scope":154,"src":"6036:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ChainInfo_$122_storage_ptr","typeString":"struct VmSafe.ChainInfo"},"typeName":{"id":125,"nodeType":"UserDefinedTypeName","pathNode":{"id":124,"name":"ChainInfo","nameLocations":["6036:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":122,"src":"6036:9:0"},"referencedDeclaration":122,"src":"6036:9:0","typeDescriptions":{"typeIdentifier":"t_struct$_ChainInfo_$122_storage_ptr","typeString":"struct VmSafe.ChainInfo"}},"visibility":"internal"},{"constant":false,"id":129,"mutability":"mutable","name":"kind","nameLocation":"6509:4:0","nodeType":"VariableDeclaration","scope":154,"src":"6491:22:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AccountAccessKind_$23","typeString":"enum VmSafe.AccountAccessKind"},"typeName":{"id":128,"nodeType":"UserDefinedTypeName","pathNode":{"id":127,"name":"AccountAccessKind","nameLocations":["6491:17:0"],"nodeType":"IdentifierPath","referencedDeclaration":23,"src":"6491:17:0"},"referencedDeclaration":23,"src":"6491:17:0","typeDescriptions":{"typeIdentifier":"t_enum$_AccountAccessKind_$23","typeString":"enum VmSafe.AccountAccessKind"}},"visibility":"internal"},{"constant":false,"id":131,"mutability":"mutable","name":"account","nameLocation":"6686:7:0","nodeType":"VariableDeclaration","scope":154,"src":"6678:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":130,"name":"address","nodeType":"ElementaryTypeName","src":"6678:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":133,"mutability":"mutable","name":"accessor","nameLocation":"6749:8:0","nodeType":"VariableDeclaration","scope":154,"src":"6741:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":132,"name":"address","nodeType":"ElementaryTypeName","src":"6741:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":135,"mutability":"mutable","name":"initialized","nameLocation":"6960:11:0","nodeType":"VariableDeclaration","scope":154,"src":"6955:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":134,"name":"bool","nodeType":"ElementaryTypeName","src":"6955:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":137,"mutability":"mutable","name":"oldBalance","nameLocation":"7046:10:0","nodeType":"VariableDeclaration","scope":154,"src":"7038:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":136,"name":"uint256","nodeType":"ElementaryTypeName","src":"7038:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":139,"mutability":"mutable","name":"newBalance","nameLocation":"7221:10:0","nodeType":"VariableDeclaration","scope":154,"src":"7213:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":138,"name":"uint256","nodeType":"ElementaryTypeName","src":"7213:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":141,"mutability":"mutable","name":"deployedCode","nameLocation":"7298:12:0","nodeType":"VariableDeclaration","scope":154,"src":"7292:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":140,"name":"bytes","nodeType":"ElementaryTypeName","src":"7292:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":143,"mutability":"mutable","name":"value","nameLocation":"7382:5:0","nodeType":"VariableDeclaration","scope":154,"src":"7374:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":142,"name":"uint256","nodeType":"ElementaryTypeName","src":"7374:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":145,"mutability":"mutable","name":"data","nameLocation":"7456:4:0","nodeType":"VariableDeclaration","scope":154,"src":"7450:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":144,"name":"bytes","nodeType":"ElementaryTypeName","src":"7450:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":147,"mutability":"mutable","name":"reverted","nameLocation":"7551:8:0","nodeType":"VariableDeclaration","scope":154,"src":"7546:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":146,"name":"bool","nodeType":"ElementaryTypeName","src":"7546:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":151,"mutability":"mutable","name":"storageAccesses","nameLocation":"7673:15:0","nodeType":"VariableDeclaration","scope":154,"src":"7657:31:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StorageAccess_$168_storage_$dyn_storage_ptr","typeString":"struct VmSafe.StorageAccess[]"},"typeName":{"baseType":{"id":149,"nodeType":"UserDefinedTypeName","pathNode":{"id":148,"name":"StorageAccess","nameLocations":["7657:13:0"],"nodeType":"IdentifierPath","referencedDeclaration":168,"src":"7657:13:0"},"referencedDeclaration":168,"src":"7657:13:0","typeDescriptions":{"typeIdentifier":"t_struct$_StorageAccess_$168_storage_ptr","typeString":"struct VmSafe.StorageAccess"}},"id":150,"nodeType":"ArrayTypeName","src":"7657:15:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StorageAccess_$168_storage_$dyn_storage_ptr","typeString":"struct VmSafe.StorageAccess[]"}},"visibility":"internal"},{"constant":false,"id":153,"mutability":"mutable","name":"depth","nameLocation":"7779:5:0","nodeType":"VariableDeclaration","scope":154,"src":"7772:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":152,"name":"uint64","nodeType":"ElementaryTypeName","src":"7772:6:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"name":"AccountAccess","nameLocation":"5961:13:0","nodeType":"StructDefinition","scope":3388,"src":"5954:1837:0","visibility":"public"},{"canonicalName":"VmSafe.StorageAccess","documentation":{"id":155,"nodeType":"StructuredDocumentation","src":"7797:51:0","text":"The storage accessed during an `AccountAccess`."},"id":168,"members":[{"constant":false,"id":157,"mutability":"mutable","name":"account","nameLocation":"7943:7:0","nodeType":"VariableDeclaration","scope":168,"src":"7935:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":156,"name":"address","nodeType":"ElementaryTypeName","src":"7935:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":159,"mutability":"mutable","name":"slot","nameLocation":"8007:4:0","nodeType":"VariableDeclaration","scope":168,"src":"7999:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":158,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7999:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":161,"mutability":"mutable","name":"isWrite","nameLocation":"8064:7:0","nodeType":"VariableDeclaration","scope":168,"src":"8059:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":160,"name":"bool","nodeType":"ElementaryTypeName","src":"8059:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":163,"mutability":"mutable","name":"previousValue","nameLocation":"8132:13:0","nodeType":"VariableDeclaration","scope":168,"src":"8124:21:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":162,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8124:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":165,"mutability":"mutable","name":"newValue","nameLocation":"8201:8:0","nodeType":"VariableDeclaration","scope":168,"src":"8193:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":164,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8193:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":167,"mutability":"mutable","name":"reverted","nameLocation":"8263:8:0","nodeType":"VariableDeclaration","scope":168,"src":"8258:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":166,"name":"bool","nodeType":"ElementaryTypeName","src":"8258:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"StorageAccess","nameLocation":"7860:13:0","nodeType":"StructDefinition","scope":3388,"src":"7853:425:0","visibility":"public"},{"canonicalName":"VmSafe.Gas","documentation":{"id":169,"nodeType":"StructuredDocumentation","src":"8284:40:0","text":"Gas used. Returned by `lastCallGas`."},"id":180,"members":[{"constant":false,"id":171,"mutability":"mutable","name":"gasLimit","nameLocation":"8395:8:0","nodeType":"VariableDeclaration","scope":180,"src":"8388:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":170,"name":"uint64","nodeType":"ElementaryTypeName","src":"8388:6:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":173,"mutability":"mutable","name":"gasTotalUsed","nameLocation":"8451:12:0","nodeType":"VariableDeclaration","scope":180,"src":"8444:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":172,"name":"uint64","nodeType":"ElementaryTypeName","src":"8444:6:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":175,"mutability":"mutable","name":"gasMemoryUsed","nameLocation":"8632:13:0","nodeType":"VariableDeclaration","scope":180,"src":"8625:20:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":174,"name":"uint64","nodeType":"ElementaryTypeName","src":"8625:6:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":177,"mutability":"mutable","name":"gasRefunded","nameLocation":"8700:11:0","nodeType":"VariableDeclaration","scope":180,"src":"8694:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"},"typeName":{"id":176,"name":"int64","nodeType":"ElementaryTypeName","src":"8694:5:0","typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"}},"visibility":"internal"},{"constant":false,"id":179,"mutability":"mutable","name":"gasRemaining","nameLocation":"8768:12:0","nodeType":"VariableDeclaration","scope":180,"src":"8761:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":178,"name":"uint64","nodeType":"ElementaryTypeName","src":"8761:6:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"name":"Gas","nameLocation":"8336:3:0","nodeType":"StructDefinition","scope":3388,"src":"8329:458:0","visibility":"public"},{"documentation":{"id":181,"nodeType":"StructuredDocumentation","src":"8826:99:0","text":"Derives a private key from the name, labels the account with that name, and returns the wallet."},"functionSelector":"7404f1d2","id":189,"implemented":false,"kind":"function","modifiers":[],"name":"createWallet","nameLocation":"8939:12:0","nodeType":"FunctionDefinition","parameters":{"id":184,"nodeType":"ParameterList","parameters":[{"constant":false,"id":183,"mutability":"mutable","name":"walletLabel","nameLocation":"8968:11:0","nodeType":"VariableDeclaration","scope":189,"src":"8952:27:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":182,"name":"string","nodeType":"ElementaryTypeName","src":"8952:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8951:29:0"},"returnParameters":{"id":188,"nodeType":"ParameterList","parameters":[{"constant":false,"id":187,"mutability":"mutable","name":"wallet","nameLocation":"9013:6:0","nodeType":"VariableDeclaration","scope":189,"src":"8999:20:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Wallet_$108_memory_ptr","typeString":"struct VmSafe.Wallet"},"typeName":{"id":186,"nodeType":"UserDefinedTypeName","pathNode":{"id":185,"name":"Wallet","nameLocations":["8999:6:0"],"nodeType":"IdentifierPath","referencedDeclaration":108,"src":"8999:6:0"},"referencedDeclaration":108,"src":"8999:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_Wallet_$108_storage_ptr","typeString":"struct VmSafe.Wallet"}},"visibility":"internal"}],"src":"8998:22:0"},"scope":3388,"src":"8930:91:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":190,"nodeType":"StructuredDocumentation","src":"9027:67:0","text":"Generates a wallet from the private key and returns the wallet."},"functionSelector":"7a675bb6","id":198,"implemented":false,"kind":"function","modifiers":[],"name":"createWallet","nameLocation":"9108:12:0","nodeType":"FunctionDefinition","parameters":{"id":193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":192,"mutability":"mutable","name":"privateKey","nameLocation":"9129:10:0","nodeType":"VariableDeclaration","scope":198,"src":"9121:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":191,"name":"uint256","nodeType":"ElementaryTypeName","src":"9121:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9120:20:0"},"returnParameters":{"id":197,"nodeType":"ParameterList","parameters":[{"constant":false,"id":196,"mutability":"mutable","name":"wallet","nameLocation":"9173:6:0","nodeType":"VariableDeclaration","scope":198,"src":"9159:20:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Wallet_$108_memory_ptr","typeString":"struct VmSafe.Wallet"},"typeName":{"id":195,"nodeType":"UserDefinedTypeName","pathNode":{"id":194,"name":"Wallet","nameLocations":["9159:6:0"],"nodeType":"IdentifierPath","referencedDeclaration":108,"src":"9159:6:0"},"referencedDeclaration":108,"src":"9159:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_Wallet_$108_storage_ptr","typeString":"struct VmSafe.Wallet"}},"visibility":"internal"}],"src":"9158:22:0"},"scope":3388,"src":"9099:82:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":199,"nodeType":"StructuredDocumentation","src":"9187:103:0","text":"Generates a wallet from the private key, labels the account with that name, and returns the wallet."},"functionSelector":"ed7c5462","id":209,"implemented":false,"kind":"function","modifiers":[],"name":"createWallet","nameLocation":"9304:12:0","nodeType":"FunctionDefinition","parameters":{"id":204,"nodeType":"ParameterList","parameters":[{"constant":false,"id":201,"mutability":"mutable","name":"privateKey","nameLocation":"9325:10:0","nodeType":"VariableDeclaration","scope":209,"src":"9317:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":200,"name":"uint256","nodeType":"ElementaryTypeName","src":"9317:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":203,"mutability":"mutable","name":"walletLabel","nameLocation":"9353:11:0","nodeType":"VariableDeclaration","scope":209,"src":"9337:27:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":202,"name":"string","nodeType":"ElementaryTypeName","src":"9337:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9316:49:0"},"returnParameters":{"id":208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":207,"mutability":"mutable","name":"wallet","nameLocation":"9398:6:0","nodeType":"VariableDeclaration","scope":209,"src":"9384:20:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Wallet_$108_memory_ptr","typeString":"struct VmSafe.Wallet"},"typeName":{"id":206,"nodeType":"UserDefinedTypeName","pathNode":{"id":205,"name":"Wallet","nameLocations":["9384:6:0"],"nodeType":"IdentifierPath","referencedDeclaration":108,"src":"9384:6:0"},"referencedDeclaration":108,"src":"9384:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_Wallet_$108_storage_ptr","typeString":"struct VmSafe.Wallet"}},"visibility":"internal"}],"src":"9383:22:0"},"scope":3388,"src":"9295:111:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":210,"nodeType":"StructuredDocumentation","src":"9412:137:0","text":"Derive a private key from a provided mnenomic string (or mnenomic file path)\n at the derivation path `m/44'/60'/0'/0/{index}`."},"functionSelector":"6229498b","id":219,"implemented":false,"kind":"function","modifiers":[],"name":"deriveKey","nameLocation":"9563:9:0","nodeType":"FunctionDefinition","parameters":{"id":215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":212,"mutability":"mutable","name":"mnemonic","nameLocation":"9589:8:0","nodeType":"VariableDeclaration","scope":219,"src":"9573:24:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":211,"name":"string","nodeType":"ElementaryTypeName","src":"9573:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":214,"mutability":"mutable","name":"index","nameLocation":"9606:5:0","nodeType":"VariableDeclaration","scope":219,"src":"9599:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":213,"name":"uint32","nodeType":"ElementaryTypeName","src":"9599:6:0","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"9572:40:0"},"returnParameters":{"id":218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":217,"mutability":"mutable","name":"privateKey","nameLocation":"9644:10:0","nodeType":"VariableDeclaration","scope":219,"src":"9636:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":216,"name":"uint256","nodeType":"ElementaryTypeName","src":"9636:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9635:20:0"},"scope":3388,"src":"9554:102:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":220,"nodeType":"StructuredDocumentation","src":"9662:118:0","text":"Derive a private key from a provided mnenomic string (or mnenomic file path)\n at `{derivationPath}{index}`."},"functionSelector":"6bcb2c1b","id":231,"implemented":false,"kind":"function","modifiers":[],"name":"deriveKey","nameLocation":"9794:9:0","nodeType":"FunctionDefinition","parameters":{"id":227,"nodeType":"ParameterList","parameters":[{"constant":false,"id":222,"mutability":"mutable","name":"mnemonic","nameLocation":"9820:8:0","nodeType":"VariableDeclaration","scope":231,"src":"9804:24:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":221,"name":"string","nodeType":"ElementaryTypeName","src":"9804:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":224,"mutability":"mutable","name":"derivationPath","nameLocation":"9846:14:0","nodeType":"VariableDeclaration","scope":231,"src":"9830:30:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":223,"name":"string","nodeType":"ElementaryTypeName","src":"9830:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":226,"mutability":"mutable","name":"index","nameLocation":"9869:5:0","nodeType":"VariableDeclaration","scope":231,"src":"9862:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":225,"name":"uint32","nodeType":"ElementaryTypeName","src":"9862:6:0","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"9803:72:0"},"returnParameters":{"id":230,"nodeType":"ParameterList","parameters":[{"constant":false,"id":229,"mutability":"mutable","name":"privateKey","nameLocation":"9931:10:0","nodeType":"VariableDeclaration","scope":231,"src":"9923:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":228,"name":"uint256","nodeType":"ElementaryTypeName","src":"9923:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9922:20:0"},"scope":3388,"src":"9785:158:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":232,"nodeType":"StructuredDocumentation","src":"9949:163:0","text":"Derive a private key from a provided mnenomic string (or mnenomic file path) in the specified language\n at the derivation path `m/44'/60'/0'/0/{index}`."},"functionSelector":"32c8176d","id":243,"implemented":false,"kind":"function","modifiers":[],"name":"deriveKey","nameLocation":"10126:9:0","nodeType":"FunctionDefinition","parameters":{"id":239,"nodeType":"ParameterList","parameters":[{"constant":false,"id":234,"mutability":"mutable","name":"mnemonic","nameLocation":"10152:8:0","nodeType":"VariableDeclaration","scope":243,"src":"10136:24:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":233,"name":"string","nodeType":"ElementaryTypeName","src":"10136:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":236,"mutability":"mutable","name":"index","nameLocation":"10169:5:0","nodeType":"VariableDeclaration","scope":243,"src":"10162:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":235,"name":"uint32","nodeType":"ElementaryTypeName","src":"10162:6:0","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":238,"mutability":"mutable","name":"language","nameLocation":"10192:8:0","nodeType":"VariableDeclaration","scope":243,"src":"10176:24:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":237,"name":"string","nodeType":"ElementaryTypeName","src":"10176:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"10135:66:0"},"returnParameters":{"id":242,"nodeType":"ParameterList","parameters":[{"constant":false,"id":241,"mutability":"mutable","name":"privateKey","nameLocation":"10257:10:0","nodeType":"VariableDeclaration","scope":243,"src":"10249:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":240,"name":"uint256","nodeType":"ElementaryTypeName","src":"10249:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10248:20:0"},"scope":3388,"src":"10117:152:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":244,"nodeType":"StructuredDocumentation","src":"10275:144:0","text":"Derive a private key from a provided mnenomic string (or mnenomic file path) in the specified language\n at `{derivationPath}{index}`."},"functionSelector":"29233b1f","id":257,"implemented":false,"kind":"function","modifiers":[],"name":"deriveKey","nameLocation":"10433:9:0","nodeType":"FunctionDefinition","parameters":{"id":253,"nodeType":"ParameterList","parameters":[{"constant":false,"id":246,"mutability":"mutable","name":"mnemonic","nameLocation":"10459:8:0","nodeType":"VariableDeclaration","scope":257,"src":"10443:24:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":245,"name":"string","nodeType":"ElementaryTypeName","src":"10443:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":248,"mutability":"mutable","name":"derivationPath","nameLocation":"10485:14:0","nodeType":"VariableDeclaration","scope":257,"src":"10469:30:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":247,"name":"string","nodeType":"ElementaryTypeName","src":"10469:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":250,"mutability":"mutable","name":"index","nameLocation":"10508:5:0","nodeType":"VariableDeclaration","scope":257,"src":"10501:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":249,"name":"uint32","nodeType":"ElementaryTypeName","src":"10501:6:0","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":252,"mutability":"mutable","name":"language","nameLocation":"10531:8:0","nodeType":"VariableDeclaration","scope":257,"src":"10515:24:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":251,"name":"string","nodeType":"ElementaryTypeName","src":"10515:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"10442:98:0"},"returnParameters":{"id":256,"nodeType":"ParameterList","parameters":[{"constant":false,"id":255,"mutability":"mutable","name":"privateKey","nameLocation":"10596:10:0","nodeType":"VariableDeclaration","scope":257,"src":"10588:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":254,"name":"uint256","nodeType":"ElementaryTypeName","src":"10588:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10587:20:0"},"scope":3388,"src":"10424:184:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":258,"nodeType":"StructuredDocumentation","src":"10614:73:0","text":"Adds a private key to the local forge wallet and returns the address."},"functionSelector":"22100064","id":265,"implemented":false,"kind":"function","modifiers":[],"name":"rememberKey","nameLocation":"10701:11:0","nodeType":"FunctionDefinition","parameters":{"id":261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":260,"mutability":"mutable","name":"privateKey","nameLocation":"10721:10:0","nodeType":"VariableDeclaration","scope":265,"src":"10713:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":259,"name":"uint256","nodeType":"ElementaryTypeName","src":"10713:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10712:20:0"},"returnParameters":{"id":264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":263,"mutability":"mutable","name":"keyAddr","nameLocation":"10759:7:0","nodeType":"VariableDeclaration","scope":265,"src":"10751:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":262,"name":"address","nodeType":"ElementaryTypeName","src":"10751:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10750:17:0"},"scope":3388,"src":"10692:76:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":266,"nodeType":"StructuredDocumentation","src":"10774:268:0","text":"Signs data with a `Wallet`.\n Returns a compact signature (`r`, `vs`) as per EIP-2098, where `vs` encodes both the\n signature's `s` value, and the recovery id `v` in a single bytes32.\n This format reduces the signature size from 65 to 64 bytes."},"functionSelector":"3d0e292f","id":278,"implemented":false,"kind":"function","modifiers":[],"name":"signCompact","nameLocation":"11056:11:0","nodeType":"FunctionDefinition","parameters":{"id":272,"nodeType":"ParameterList","parameters":[{"constant":false,"id":269,"mutability":"mutable","name":"wallet","nameLocation":"11084:6:0","nodeType":"VariableDeclaration","scope":278,"src":"11068:22:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Wallet_$108_calldata_ptr","typeString":"struct VmSafe.Wallet"},"typeName":{"id":268,"nodeType":"UserDefinedTypeName","pathNode":{"id":267,"name":"Wallet","nameLocations":["11068:6:0"],"nodeType":"IdentifierPath","referencedDeclaration":108,"src":"11068:6:0"},"referencedDeclaration":108,"src":"11068:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_Wallet_$108_storage_ptr","typeString":"struct VmSafe.Wallet"}},"visibility":"internal"},{"constant":false,"id":271,"mutability":"mutable","name":"digest","nameLocation":"11100:6:0","nodeType":"VariableDeclaration","scope":278,"src":"11092:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":270,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11092:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11067:40:0"},"returnParameters":{"id":277,"nodeType":"ParameterList","parameters":[{"constant":false,"id":274,"mutability":"mutable","name":"r","nameLocation":"11134:1:0","nodeType":"VariableDeclaration","scope":278,"src":"11126:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":273,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11126:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":276,"mutability":"mutable","name":"vs","nameLocation":"11145:2:0","nodeType":"VariableDeclaration","scope":278,"src":"11137:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":275,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11137:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11125:23:0"},"scope":3388,"src":"11047:102:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":279,"nodeType":"StructuredDocumentation","src":"11155:300:0","text":"Signs `digest` with `privateKey` using the secp256k1 curve.\n Returns a compact signature (`r`, `vs`) as per EIP-2098, where `vs` encodes both the\n signature's `s` value, and the recovery id `v` in a single bytes32.\n This format reduces the signature size from 65 to 64 bytes."},"functionSelector":"cc2a781f","id":290,"implemented":false,"kind":"function","modifiers":[],"name":"signCompact","nameLocation":"11469:11:0","nodeType":"FunctionDefinition","parameters":{"id":284,"nodeType":"ParameterList","parameters":[{"constant":false,"id":281,"mutability":"mutable","name":"privateKey","nameLocation":"11489:10:0","nodeType":"VariableDeclaration","scope":290,"src":"11481:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":280,"name":"uint256","nodeType":"ElementaryTypeName","src":"11481:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":283,"mutability":"mutable","name":"digest","nameLocation":"11509:6:0","nodeType":"VariableDeclaration","scope":290,"src":"11501:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":282,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11501:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11480:36:0"},"returnParameters":{"id":289,"nodeType":"ParameterList","parameters":[{"constant":false,"id":286,"mutability":"mutable","name":"r","nameLocation":"11548:1:0","nodeType":"VariableDeclaration","scope":290,"src":"11540:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":285,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11540:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":288,"mutability":"mutable","name":"vs","nameLocation":"11559:2:0","nodeType":"VariableDeclaration","scope":290,"src":"11551:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":287,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11551:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11539:23:0"},"scope":3388,"src":"11460:103:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":291,"nodeType":"StructuredDocumentation","src":"11569:665:0","text":"Signs `digest` with signer provided to script using the secp256k1 curve.\n Returns a compact signature (`r`, `vs`) as per EIP-2098, where `vs` encodes both the\n signature's `s` value, and the recovery id `v` in a single bytes32.\n This format reduces the signature size from 65 to 64 bytes.\n If `--sender` is provided, the signer with provided address is used, otherwise,\n if exactly one signer is provided to the script, that signer is used.\n Raises error if signer passed through `--sender` does not match any unlocked signers or\n if `--sender` is not provided and not exactly one signer is passed to the script."},"functionSelector":"a282dc4b","id":300,"implemented":false,"kind":"function","modifiers":[],"name":"signCompact","nameLocation":"12248:11:0","nodeType":"FunctionDefinition","parameters":{"id":294,"nodeType":"ParameterList","parameters":[{"constant":false,"id":293,"mutability":"mutable","name":"digest","nameLocation":"12268:6:0","nodeType":"VariableDeclaration","scope":300,"src":"12260:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":292,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12260:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"12259:16:0"},"returnParameters":{"id":299,"nodeType":"ParameterList","parameters":[{"constant":false,"id":296,"mutability":"mutable","name":"r","nameLocation":"12307:1:0","nodeType":"VariableDeclaration","scope":300,"src":"12299:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":295,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12299:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":298,"mutability":"mutable","name":"vs","nameLocation":"12318:2:0","nodeType":"VariableDeclaration","scope":300,"src":"12310:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":297,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12310:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"12298:23:0"},"scope":3388,"src":"12239:83:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":301,"nodeType":"StructuredDocumentation","src":"12328:403:0","text":"Signs `digest` with signer provided to script using the secp256k1 curve.\n Returns a compact signature (`r`, `vs`) as per EIP-2098, where `vs` encodes both the\n signature's `s` value, and the recovery id `v` in a single bytes32.\n This format reduces the signature size from 65 to 64 bytes.\n Raises error if none of the signers passed into the script have provided address."},"functionSelector":"8e2f97bf","id":312,"implemented":false,"kind":"function","modifiers":[],"name":"signCompact","nameLocation":"12745:11:0","nodeType":"FunctionDefinition","parameters":{"id":306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":303,"mutability":"mutable","name":"signer","nameLocation":"12765:6:0","nodeType":"VariableDeclaration","scope":312,"src":"12757:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":302,"name":"address","nodeType":"ElementaryTypeName","src":"12757:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":305,"mutability":"mutable","name":"digest","nameLocation":"12781:6:0","nodeType":"VariableDeclaration","scope":312,"src":"12773:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":304,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12773:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"12756:32:0"},"returnParameters":{"id":311,"nodeType":"ParameterList","parameters":[{"constant":false,"id":308,"mutability":"mutable","name":"r","nameLocation":"12820:1:0","nodeType":"VariableDeclaration","scope":312,"src":"12812:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":307,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12812:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":310,"mutability":"mutable","name":"vs","nameLocation":"12831:2:0","nodeType":"VariableDeclaration","scope":312,"src":"12823:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":309,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12823:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"12811:23:0"},"scope":3388,"src":"12736:99:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":313,"nodeType":"StructuredDocumentation","src":"12841:63:0","text":"Signs `digest` with `privateKey` using the secp256r1 curve."},"functionSelector":"83211b40","id":324,"implemented":false,"kind":"function","modifiers":[],"name":"signP256","nameLocation":"12918:8:0","nodeType":"FunctionDefinition","parameters":{"id":318,"nodeType":"ParameterList","parameters":[{"constant":false,"id":315,"mutability":"mutable","name":"privateKey","nameLocation":"12935:10:0","nodeType":"VariableDeclaration","scope":324,"src":"12927:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":314,"name":"uint256","nodeType":"ElementaryTypeName","src":"12927:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":317,"mutability":"mutable","name":"digest","nameLocation":"12955:6:0","nodeType":"VariableDeclaration","scope":324,"src":"12947:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":316,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12947:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"12926:36:0"},"returnParameters":{"id":323,"nodeType":"ParameterList","parameters":[{"constant":false,"id":320,"mutability":"mutable","name":"r","nameLocation":"12994:1:0","nodeType":"VariableDeclaration","scope":324,"src":"12986:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":319,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12986:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":322,"mutability":"mutable","name":"s","nameLocation":"13005:1:0","nodeType":"VariableDeclaration","scope":324,"src":"12997:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":321,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12997:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"12985:22:0"},"scope":3388,"src":"12909:99:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":325,"nodeType":"StructuredDocumentation","src":"13014:31:0","text":"Signs data with a `Wallet`."},"functionSelector":"b25c5a25","id":339,"implemented":false,"kind":"function","modifiers":[],"name":"sign","nameLocation":"13059:4:0","nodeType":"FunctionDefinition","parameters":{"id":331,"nodeType":"ParameterList","parameters":[{"constant":false,"id":328,"mutability":"mutable","name":"wallet","nameLocation":"13080:6:0","nodeType":"VariableDeclaration","scope":339,"src":"13064:22:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Wallet_$108_calldata_ptr","typeString":"struct VmSafe.Wallet"},"typeName":{"id":327,"nodeType":"UserDefinedTypeName","pathNode":{"id":326,"name":"Wallet","nameLocations":["13064:6:0"],"nodeType":"IdentifierPath","referencedDeclaration":108,"src":"13064:6:0"},"referencedDeclaration":108,"src":"13064:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_Wallet_$108_storage_ptr","typeString":"struct VmSafe.Wallet"}},"visibility":"internal"},{"constant":false,"id":330,"mutability":"mutable","name":"digest","nameLocation":"13096:6:0","nodeType":"VariableDeclaration","scope":339,"src":"13088:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":329,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13088:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"13063:40:0"},"returnParameters":{"id":338,"nodeType":"ParameterList","parameters":[{"constant":false,"id":333,"mutability":"mutable","name":"v","nameLocation":"13128:1:0","nodeType":"VariableDeclaration","scope":339,"src":"13122:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":332,"name":"uint8","nodeType":"ElementaryTypeName","src":"13122:5:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":335,"mutability":"mutable","name":"r","nameLocation":"13139:1:0","nodeType":"VariableDeclaration","scope":339,"src":"13131:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":334,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13131:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":337,"mutability":"mutable","name":"s","nameLocation":"13150:1:0","nodeType":"VariableDeclaration","scope":339,"src":"13142:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":336,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13142:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"13121:31:0"},"scope":3388,"src":"13050:103:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":340,"nodeType":"StructuredDocumentation","src":"13159:63:0","text":"Signs `digest` with `privateKey` using the secp256k1 curve."},"functionSelector":"e341eaa4","id":353,"implemented":false,"kind":"function","modifiers":[],"name":"sign","nameLocation":"13236:4:0","nodeType":"FunctionDefinition","parameters":{"id":345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":342,"mutability":"mutable","name":"privateKey","nameLocation":"13249:10:0","nodeType":"VariableDeclaration","scope":353,"src":"13241:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":341,"name":"uint256","nodeType":"ElementaryTypeName","src":"13241:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":344,"mutability":"mutable","name":"digest","nameLocation":"13269:6:0","nodeType":"VariableDeclaration","scope":353,"src":"13261:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":343,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13261:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"13240:36:0"},"returnParameters":{"id":352,"nodeType":"ParameterList","parameters":[{"constant":false,"id":347,"mutability":"mutable","name":"v","nameLocation":"13306:1:0","nodeType":"VariableDeclaration","scope":353,"src":"13300:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":346,"name":"uint8","nodeType":"ElementaryTypeName","src":"13300:5:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":349,"mutability":"mutable","name":"r","nameLocation":"13317:1:0","nodeType":"VariableDeclaration","scope":353,"src":"13309:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":348,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13309:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":351,"mutability":"mutable","name":"s","nameLocation":"13328:1:0","nodeType":"VariableDeclaration","scope":353,"src":"13320:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":350,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13320:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"13299:31:0"},"scope":3388,"src":"13227:104:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":354,"nodeType":"StructuredDocumentation","src":"13337:428:0","text":"Signs `digest` with signer provided to script using the secp256k1 curve.\n If `--sender` is provided, the signer with provided address is used, otherwise,\n if exactly one signer is provided to the script, that signer is used.\n Raises error if signer passed through `--sender` does not match any unlocked signers or\n if `--sender` is not provided and not exactly one signer is passed to the script."},"functionSelector":"799cd333","id":365,"implemented":false,"kind":"function","modifiers":[],"name":"sign","nameLocation":"13779:4:0","nodeType":"FunctionDefinition","parameters":{"id":357,"nodeType":"ParameterList","parameters":[{"constant":false,"id":356,"mutability":"mutable","name":"digest","nameLocation":"13792:6:0","nodeType":"VariableDeclaration","scope":365,"src":"13784:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":355,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13784:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"13783:16:0"},"returnParameters":{"id":364,"nodeType":"ParameterList","parameters":[{"constant":false,"id":359,"mutability":"mutable","name":"v","nameLocation":"13829:1:0","nodeType":"VariableDeclaration","scope":365,"src":"13823:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":358,"name":"uint8","nodeType":"ElementaryTypeName","src":"13823:5:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":361,"mutability":"mutable","name":"r","nameLocation":"13840:1:0","nodeType":"VariableDeclaration","scope":365,"src":"13832:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":360,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13832:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":363,"mutability":"mutable","name":"s","nameLocation":"13851:1:0","nodeType":"VariableDeclaration","scope":365,"src":"13843:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":362,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13843:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"13822:31:0"},"scope":3388,"src":"13770:84:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":366,"nodeType":"StructuredDocumentation","src":"13860:166:0","text":"Signs `digest` with signer provided to script using the secp256k1 curve.\n Raises error if none of the signers passed into the script have provided address."},"functionSelector":"8c1aa205","id":379,"implemented":false,"kind":"function","modifiers":[],"name":"sign","nameLocation":"14040:4:0","nodeType":"FunctionDefinition","parameters":{"id":371,"nodeType":"ParameterList","parameters":[{"constant":false,"id":368,"mutability":"mutable","name":"signer","nameLocation":"14053:6:0","nodeType":"VariableDeclaration","scope":379,"src":"14045:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":367,"name":"address","nodeType":"ElementaryTypeName","src":"14045:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":370,"mutability":"mutable","name":"digest","nameLocation":"14069:6:0","nodeType":"VariableDeclaration","scope":379,"src":"14061:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":369,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14061:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"14044:32:0"},"returnParameters":{"id":378,"nodeType":"ParameterList","parameters":[{"constant":false,"id":373,"mutability":"mutable","name":"v","nameLocation":"14106:1:0","nodeType":"VariableDeclaration","scope":379,"src":"14100:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":372,"name":"uint8","nodeType":"ElementaryTypeName","src":"14100:5:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":375,"mutability":"mutable","name":"r","nameLocation":"14117:1:0","nodeType":"VariableDeclaration","scope":379,"src":"14109:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":374,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14109:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":377,"mutability":"mutable","name":"s","nameLocation":"14128:1:0","nodeType":"VariableDeclaration","scope":379,"src":"14120:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":376,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14120:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"14099:31:0"},"scope":3388,"src":"14031:100:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":380,"nodeType":"StructuredDocumentation","src":"14175:138:0","text":"Gets the environment variable `name` and parses it as `address`.\n Reverts if the variable was not found or could not be parsed."},"functionSelector":"350d56bf","id":387,"implemented":false,"kind":"function","modifiers":[],"name":"envAddress","nameLocation":"14327:10:0","nodeType":"FunctionDefinition","parameters":{"id":383,"nodeType":"ParameterList","parameters":[{"constant":false,"id":382,"mutability":"mutable","name":"name","nameLocation":"14354:4:0","nodeType":"VariableDeclaration","scope":387,"src":"14338:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":381,"name":"string","nodeType":"ElementaryTypeName","src":"14338:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"14337:22:0"},"returnParameters":{"id":386,"nodeType":"ParameterList","parameters":[{"constant":false,"id":385,"mutability":"mutable","name":"value","nameLocation":"14391:5:0","nodeType":"VariableDeclaration","scope":387,"src":"14383:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":384,"name":"address","nodeType":"ElementaryTypeName","src":"14383:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14382:15:0"},"scope":3388,"src":"14318:80:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":388,"nodeType":"StructuredDocumentation","src":"14404:172:0","text":"Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`.\n Reverts if the variable was not found or could not be parsed."},"functionSelector":"ad31b9fa","id":398,"implemented":false,"kind":"function","modifiers":[],"name":"envAddress","nameLocation":"14590:10:0","nodeType":"FunctionDefinition","parameters":{"id":393,"nodeType":"ParameterList","parameters":[{"constant":false,"id":390,"mutability":"mutable","name":"name","nameLocation":"14617:4:0","nodeType":"VariableDeclaration","scope":398,"src":"14601:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":389,"name":"string","nodeType":"ElementaryTypeName","src":"14601:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":392,"mutability":"mutable","name":"delim","nameLocation":"14639:5:0","nodeType":"VariableDeclaration","scope":398,"src":"14623:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":391,"name":"string","nodeType":"ElementaryTypeName","src":"14623:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"14600:45:0"},"returnParameters":{"id":397,"nodeType":"ParameterList","parameters":[{"constant":false,"id":396,"mutability":"mutable","name":"value","nameLocation":"14686:5:0","nodeType":"VariableDeclaration","scope":398,"src":"14669:22:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":394,"name":"address","nodeType":"ElementaryTypeName","src":"14669:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":395,"nodeType":"ArrayTypeName","src":"14669:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"14668:24:0"},"scope":3388,"src":"14581:112:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":399,"nodeType":"StructuredDocumentation","src":"14699:135:0","text":"Gets the environment variable `name` and parses it as `bool`.\n Reverts if the variable was not found or could not be parsed."},"functionSelector":"7ed1ec7d","id":406,"implemented":false,"kind":"function","modifiers":[],"name":"envBool","nameLocation":"14848:7:0","nodeType":"FunctionDefinition","parameters":{"id":402,"nodeType":"ParameterList","parameters":[{"constant":false,"id":401,"mutability":"mutable","name":"name","nameLocation":"14872:4:0","nodeType":"VariableDeclaration","scope":406,"src":"14856:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":400,"name":"string","nodeType":"ElementaryTypeName","src":"14856:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"14855:22:0"},"returnParameters":{"id":405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":404,"mutability":"mutable","name":"value","nameLocation":"14906:5:0","nodeType":"VariableDeclaration","scope":406,"src":"14901:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":403,"name":"bool","nodeType":"ElementaryTypeName","src":"14901:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14900:12:0"},"scope":3388,"src":"14839:74:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":407,"nodeType":"StructuredDocumentation","src":"14919:169:0","text":"Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`.\n Reverts if the variable was not found or could not be parsed."},"functionSelector":"aaaddeaf","id":417,"implemented":false,"kind":"function","modifiers":[],"name":"envBool","nameLocation":"15102:7:0","nodeType":"FunctionDefinition","parameters":{"id":412,"nodeType":"ParameterList","parameters":[{"constant":false,"id":409,"mutability":"mutable","name":"name","nameLocation":"15126:4:0","nodeType":"VariableDeclaration","scope":417,"src":"15110:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":408,"name":"string","nodeType":"ElementaryTypeName","src":"15110:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":411,"mutability":"mutable","name":"delim","nameLocation":"15148:5:0","nodeType":"VariableDeclaration","scope":417,"src":"15132:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":410,"name":"string","nodeType":"ElementaryTypeName","src":"15132:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"15109:45:0"},"returnParameters":{"id":416,"nodeType":"ParameterList","parameters":[{"constant":false,"id":415,"mutability":"mutable","name":"value","nameLocation":"15192:5:0","nodeType":"VariableDeclaration","scope":417,"src":"15178:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":413,"name":"bool","nodeType":"ElementaryTypeName","src":"15178:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":414,"nodeType":"ArrayTypeName","src":"15178:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"15177:21:0"},"scope":3388,"src":"15093:106:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":418,"nodeType":"StructuredDocumentation","src":"15205:138:0","text":"Gets the environment variable `name` and parses it as `bytes32`.\n Reverts if the variable was not found or could not be parsed."},"functionSelector":"97949042","id":425,"implemented":false,"kind":"function","modifiers":[],"name":"envBytes32","nameLocation":"15357:10:0","nodeType":"FunctionDefinition","parameters":{"id":421,"nodeType":"ParameterList","parameters":[{"constant":false,"id":420,"mutability":"mutable","name":"name","nameLocation":"15384:4:0","nodeType":"VariableDeclaration","scope":425,"src":"15368:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":419,"name":"string","nodeType":"ElementaryTypeName","src":"15368:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"15367:22:0"},"returnParameters":{"id":424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":423,"mutability":"mutable","name":"value","nameLocation":"15421:5:0","nodeType":"VariableDeclaration","scope":425,"src":"15413:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":422,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15413:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"15412:15:0"},"scope":3388,"src":"15348:80:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":426,"nodeType":"StructuredDocumentation","src":"15434:172:0","text":"Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`.\n Reverts if the variable was not found or could not be parsed."},"functionSelector":"5af231c1","id":436,"implemented":false,"kind":"function","modifiers":[],"name":"envBytes32","nameLocation":"15620:10:0","nodeType":"FunctionDefinition","parameters":{"id":431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":428,"mutability":"mutable","name":"name","nameLocation":"15647:4:0","nodeType":"VariableDeclaration","scope":436,"src":"15631:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":427,"name":"string","nodeType":"ElementaryTypeName","src":"15631:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":430,"mutability":"mutable","name":"delim","nameLocation":"15669:5:0","nodeType":"VariableDeclaration","scope":436,"src":"15653:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":429,"name":"string","nodeType":"ElementaryTypeName","src":"15653:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"15630:45:0"},"returnParameters":{"id":435,"nodeType":"ParameterList","parameters":[{"constant":false,"id":434,"mutability":"mutable","name":"value","nameLocation":"15716:5:0","nodeType":"VariableDeclaration","scope":436,"src":"15699:22:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":432,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15699:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":433,"nodeType":"ArrayTypeName","src":"15699:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"15698:24:0"},"scope":3388,"src":"15611:112:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":437,"nodeType":"StructuredDocumentation","src":"15729:136:0","text":"Gets the environment variable `name` and parses it as `bytes`.\n Reverts if the variable was not found or could not be parsed."},"functionSelector":"4d7baf06","id":444,"implemented":false,"kind":"function","modifiers":[],"name":"envBytes","nameLocation":"15879:8:0","nodeType":"FunctionDefinition","parameters":{"id":440,"nodeType":"ParameterList","parameters":[{"constant":false,"id":439,"mutability":"mutable","name":"name","nameLocation":"15904:4:0","nodeType":"VariableDeclaration","scope":444,"src":"15888:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":438,"name":"string","nodeType":"ElementaryTypeName","src":"15888:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"15887:22:0"},"returnParameters":{"id":443,"nodeType":"ParameterList","parameters":[{"constant":false,"id":442,"mutability":"mutable","name":"value","nameLocation":"15946:5:0","nodeType":"VariableDeclaration","scope":444,"src":"15933:18:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":441,"name":"bytes","nodeType":"ElementaryTypeName","src":"15933:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"15932:20:0"},"scope":3388,"src":"15870:83:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":445,"nodeType":"StructuredDocumentation","src":"15959:170:0","text":"Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`.\n Reverts if the variable was not found or could not be parsed."},"functionSelector":"ddc2651b","id":455,"implemented":false,"kind":"function","modifiers":[],"name":"envBytes","nameLocation":"16143:8:0","nodeType":"FunctionDefinition","parameters":{"id":450,"nodeType":"ParameterList","parameters":[{"constant":false,"id":447,"mutability":"mutable","name":"name","nameLocation":"16168:4:0","nodeType":"VariableDeclaration","scope":455,"src":"16152:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":446,"name":"string","nodeType":"ElementaryTypeName","src":"16152:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":449,"mutability":"mutable","name":"delim","nameLocation":"16190:5:0","nodeType":"VariableDeclaration","scope":455,"src":"16174:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":448,"name":"string","nodeType":"ElementaryTypeName","src":"16174:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"16151:45:0"},"returnParameters":{"id":454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":453,"mutability":"mutable","name":"value","nameLocation":"16235:5:0","nodeType":"VariableDeclaration","scope":455,"src":"16220:20:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":451,"name":"bytes","nodeType":"ElementaryTypeName","src":"16220:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":452,"nodeType":"ArrayTypeName","src":"16220:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"16219:22:0"},"scope":3388,"src":"16134:108:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":456,"nodeType":"StructuredDocumentation","src":"16248:91:0","text":"Gets the environment variable `name` and returns true if it exists, else returns false."},"functionSelector":"ce8365f9","id":463,"implemented":false,"kind":"function","modifiers":[],"name":"envExists","nameLocation":"16353:9:0","nodeType":"FunctionDefinition","parameters":{"id":459,"nodeType":"ParameterList","parameters":[{"constant":false,"id":458,"mutability":"mutable","name":"name","nameLocation":"16379:4:0","nodeType":"VariableDeclaration","scope":463,"src":"16363:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":457,"name":"string","nodeType":"ElementaryTypeName","src":"16363:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"16362:22:0"},"returnParameters":{"id":462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":461,"mutability":"mutable","name":"result","nameLocation":"16413:6:0","nodeType":"VariableDeclaration","scope":463,"src":"16408:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":460,"name":"bool","nodeType":"ElementaryTypeName","src":"16408:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16407:13:0"},"scope":3388,"src":"16344:77:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":464,"nodeType":"StructuredDocumentation","src":"16427:137:0","text":"Gets the environment variable `name` and parses it as `int256`.\n Reverts if the variable was not found or could not be parsed."},"functionSelector":"892a0c61","id":471,"implemented":false,"kind":"function","modifiers":[],"name":"envInt","nameLocation":"16578:6:0","nodeType":"FunctionDefinition","parameters":{"id":467,"nodeType":"ParameterList","parameters":[{"constant":false,"id":466,"mutability":"mutable","name":"name","nameLocation":"16601:4:0","nodeType":"VariableDeclaration","scope":471,"src":"16585:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":465,"name":"string","nodeType":"ElementaryTypeName","src":"16585:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"16584:22:0"},"returnParameters":{"id":470,"nodeType":"ParameterList","parameters":[{"constant":false,"id":469,"mutability":"mutable","name":"value","nameLocation":"16637:5:0","nodeType":"VariableDeclaration","scope":471,"src":"16630:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":468,"name":"int256","nodeType":"ElementaryTypeName","src":"16630:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"16629:14:0"},"scope":3388,"src":"16569:75:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":472,"nodeType":"StructuredDocumentation","src":"16650:171:0","text":"Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`.\n Reverts if the variable was not found or could not be parsed."},"functionSelector":"42181150","id":482,"implemented":false,"kind":"function","modifiers":[],"name":"envInt","nameLocation":"16835:6:0","nodeType":"FunctionDefinition","parameters":{"id":477,"nodeType":"ParameterList","parameters":[{"constant":false,"id":474,"mutability":"mutable","name":"name","nameLocation":"16858:4:0","nodeType":"VariableDeclaration","scope":482,"src":"16842:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":473,"name":"string","nodeType":"ElementaryTypeName","src":"16842:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":476,"mutability":"mutable","name":"delim","nameLocation":"16880:5:0","nodeType":"VariableDeclaration","scope":482,"src":"16864:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":475,"name":"string","nodeType":"ElementaryTypeName","src":"16864:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"16841:45:0"},"returnParameters":{"id":481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":480,"mutability":"mutable","name":"value","nameLocation":"16926:5:0","nodeType":"VariableDeclaration","scope":482,"src":"16910:21:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":478,"name":"int256","nodeType":"ElementaryTypeName","src":"16910:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":479,"nodeType":"ArrayTypeName","src":"16910:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"}],"src":"16909:23:0"},"scope":3388,"src":"16826:107:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":483,"nodeType":"StructuredDocumentation","src":"16939:180:0","text":"Gets the environment variable `name` and parses it as `bool`.\n Reverts if the variable could not be parsed.\n Returns `defaultValue` if the variable was not found."},"functionSelector":"4777f3cf","id":492,"implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"17133:5:0","nodeType":"FunctionDefinition","parameters":{"id":488,"nodeType":"ParameterList","parameters":[{"constant":false,"id":485,"mutability":"mutable","name":"name","nameLocation":"17155:4:0","nodeType":"VariableDeclaration","scope":492,"src":"17139:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":484,"name":"string","nodeType":"ElementaryTypeName","src":"17139:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":487,"mutability":"mutable","name":"defaultValue","nameLocation":"17166:12:0","nodeType":"VariableDeclaration","scope":492,"src":"17161:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":486,"name":"bool","nodeType":"ElementaryTypeName","src":"17161:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17138:41:0"},"returnParameters":{"id":491,"nodeType":"ParameterList","parameters":[{"constant":false,"id":490,"mutability":"mutable","name":"value","nameLocation":"17208:5:0","nodeType":"VariableDeclaration","scope":492,"src":"17203:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":489,"name":"bool","nodeType":"ElementaryTypeName","src":"17203:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17202:12:0"},"scope":3388,"src":"17124:91:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":493,"nodeType":"StructuredDocumentation","src":"17221:183:0","text":"Gets the environment variable `name` and parses it as `uint256`.\n Reverts if the variable could not be parsed.\n Returns `defaultValue` if the variable was not found."},"functionSelector":"5e97348f","id":502,"implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"17418:5:0","nodeType":"FunctionDefinition","parameters":{"id":498,"nodeType":"ParameterList","parameters":[{"constant":false,"id":495,"mutability":"mutable","name":"name","nameLocation":"17440:4:0","nodeType":"VariableDeclaration","scope":502,"src":"17424:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":494,"name":"string","nodeType":"ElementaryTypeName","src":"17424:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":497,"mutability":"mutable","name":"defaultValue","nameLocation":"17454:12:0","nodeType":"VariableDeclaration","scope":502,"src":"17446:20:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":496,"name":"uint256","nodeType":"ElementaryTypeName","src":"17446:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17423:44:0"},"returnParameters":{"id":501,"nodeType":"ParameterList","parameters":[{"constant":false,"id":500,"mutability":"mutable","name":"value","nameLocation":"17499:5:0","nodeType":"VariableDeclaration","scope":502,"src":"17491:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":499,"name":"uint256","nodeType":"ElementaryTypeName","src":"17491:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17490:15:0"},"scope":3388,"src":"17409:97:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":503,"nodeType":"StructuredDocumentation","src":"17512:217:0","text":"Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`.\n Reverts if the variable could not be parsed.\n Returns `defaultValue` if the variable was not found."},"functionSelector":"c74e9deb","id":516,"implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"17743:5:0","nodeType":"FunctionDefinition","parameters":{"id":511,"nodeType":"ParameterList","parameters":[{"constant":false,"id":505,"mutability":"mutable","name":"name","nameLocation":"17765:4:0","nodeType":"VariableDeclaration","scope":516,"src":"17749:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":504,"name":"string","nodeType":"ElementaryTypeName","src":"17749:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":507,"mutability":"mutable","name":"delim","nameLocation":"17787:5:0","nodeType":"VariableDeclaration","scope":516,"src":"17771:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":506,"name":"string","nodeType":"ElementaryTypeName","src":"17771:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":510,"mutability":"mutable","name":"defaultValue","nameLocation":"17813:12:0","nodeType":"VariableDeclaration","scope":516,"src":"17794:31:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":508,"name":"address","nodeType":"ElementaryTypeName","src":"17794:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":509,"nodeType":"ArrayTypeName","src":"17794:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"17748:78:0"},"returnParameters":{"id":515,"nodeType":"ParameterList","parameters":[{"constant":false,"id":514,"mutability":"mutable","name":"value","nameLocation":"17891:5:0","nodeType":"VariableDeclaration","scope":516,"src":"17874:22:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":512,"name":"address","nodeType":"ElementaryTypeName","src":"17874:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":513,"nodeType":"ArrayTypeName","src":"17874:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"17873:24:0"},"scope":3388,"src":"17734:164:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":517,"nodeType":"StructuredDocumentation","src":"17904:217:0","text":"Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`.\n Reverts if the variable could not be parsed.\n Returns `defaultValue` if the variable was not found."},"functionSelector":"2281f367","id":530,"implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"18135:5:0","nodeType":"FunctionDefinition","parameters":{"id":525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":519,"mutability":"mutable","name":"name","nameLocation":"18157:4:0","nodeType":"VariableDeclaration","scope":530,"src":"18141:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":518,"name":"string","nodeType":"ElementaryTypeName","src":"18141:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":521,"mutability":"mutable","name":"delim","nameLocation":"18179:5:0","nodeType":"VariableDeclaration","scope":530,"src":"18163:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":520,"name":"string","nodeType":"ElementaryTypeName","src":"18163:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":524,"mutability":"mutable","name":"defaultValue","nameLocation":"18205:12:0","nodeType":"VariableDeclaration","scope":530,"src":"18186:31:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":522,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18186:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":523,"nodeType":"ArrayTypeName","src":"18186:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"18140:78:0"},"returnParameters":{"id":529,"nodeType":"ParameterList","parameters":[{"constant":false,"id":528,"mutability":"mutable","name":"value","nameLocation":"18283:5:0","nodeType":"VariableDeclaration","scope":530,"src":"18266:22:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":526,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18266:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":527,"nodeType":"ArrayTypeName","src":"18266:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"18265:24:0"},"scope":3388,"src":"18126:164:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":531,"nodeType":"StructuredDocumentation","src":"18296:216:0","text":"Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`.\n Reverts if the variable could not be parsed.\n Returns `defaultValue` if the variable was not found."},"functionSelector":"859216bc","id":544,"implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"18526:5:0","nodeType":"FunctionDefinition","parameters":{"id":539,"nodeType":"ParameterList","parameters":[{"constant":false,"id":533,"mutability":"mutable","name":"name","nameLocation":"18548:4:0","nodeType":"VariableDeclaration","scope":544,"src":"18532:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":532,"name":"string","nodeType":"ElementaryTypeName","src":"18532:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":535,"mutability":"mutable","name":"delim","nameLocation":"18570:5:0","nodeType":"VariableDeclaration","scope":544,"src":"18554:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":534,"name":"string","nodeType":"ElementaryTypeName","src":"18554:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":538,"mutability":"mutable","name":"defaultValue","nameLocation":"18595:12:0","nodeType":"VariableDeclaration","scope":544,"src":"18577:30:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_string_calldata_ptr_$dyn_calldata_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":536,"name":"string","nodeType":"ElementaryTypeName","src":"18577:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":537,"nodeType":"ArrayTypeName","src":"18577:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"18531:77:0"},"returnParameters":{"id":543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":542,"mutability":"mutable","name":"value","nameLocation":"18672:5:0","nodeType":"VariableDeclaration","scope":544,"src":"18656:21:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":540,"name":"string","nodeType":"ElementaryTypeName","src":"18656:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":541,"nodeType":"ArrayTypeName","src":"18656:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"18655:23:0"},"scope":3388,"src":"18517:162:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":545,"nodeType":"StructuredDocumentation","src":"18685:215:0","text":"Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`.\n Reverts if the variable could not be parsed.\n Returns `defaultValue` if the variable was not found."},"functionSelector":"64bc3e64","id":558,"implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"18914:5:0","nodeType":"FunctionDefinition","parameters":{"id":553,"nodeType":"ParameterList","parameters":[{"constant":false,"id":547,"mutability":"mutable","name":"name","nameLocation":"18936:4:0","nodeType":"VariableDeclaration","scope":558,"src":"18920:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":546,"name":"string","nodeType":"ElementaryTypeName","src":"18920:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":549,"mutability":"mutable","name":"delim","nameLocation":"18958:5:0","nodeType":"VariableDeclaration","scope":558,"src":"18942:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":548,"name":"string","nodeType":"ElementaryTypeName","src":"18942:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":552,"mutability":"mutable","name":"defaultValue","nameLocation":"18982:12:0","nodeType":"VariableDeclaration","scope":558,"src":"18965:29:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":550,"name":"bytes","nodeType":"ElementaryTypeName","src":"18965:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":551,"nodeType":"ArrayTypeName","src":"18965:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"18919:76:0"},"returnParameters":{"id":557,"nodeType":"ParameterList","parameters":[{"constant":false,"id":556,"mutability":"mutable","name":"value","nameLocation":"19058:5:0","nodeType":"VariableDeclaration","scope":558,"src":"19043:20:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":554,"name":"bytes","nodeType":"ElementaryTypeName","src":"19043:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":555,"nodeType":"ArrayTypeName","src":"19043:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"19042:22:0"},"scope":3388,"src":"18905:160:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":559,"nodeType":"StructuredDocumentation","src":"19071:182:0","text":"Gets the environment variable `name` and parses it as `int256`.\n Reverts if the variable could not be parsed.\n Returns `defaultValue` if the variable was not found."},"functionSelector":"bbcb713e","id":568,"implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"19267:5:0","nodeType":"FunctionDefinition","parameters":{"id":564,"nodeType":"ParameterList","parameters":[{"constant":false,"id":561,"mutability":"mutable","name":"name","nameLocation":"19289:4:0","nodeType":"VariableDeclaration","scope":568,"src":"19273:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":560,"name":"string","nodeType":"ElementaryTypeName","src":"19273:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":563,"mutability":"mutable","name":"defaultValue","nameLocation":"19302:12:0","nodeType":"VariableDeclaration","scope":568,"src":"19295:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":562,"name":"int256","nodeType":"ElementaryTypeName","src":"19295:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"19272:43:0"},"returnParameters":{"id":567,"nodeType":"ParameterList","parameters":[{"constant":false,"id":566,"mutability":"mutable","name":"value","nameLocation":"19346:5:0","nodeType":"VariableDeclaration","scope":568,"src":"19339:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":565,"name":"int256","nodeType":"ElementaryTypeName","src":"19339:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"19338:14:0"},"scope":3388,"src":"19258:95:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":569,"nodeType":"StructuredDocumentation","src":"19359:183:0","text":"Gets the environment variable `name` and parses it as `address`.\n Reverts if the variable could not be parsed.\n Returns `defaultValue` if the variable was not found."},"functionSelector":"561fe540","id":578,"implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"19556:5:0","nodeType":"FunctionDefinition","parameters":{"id":574,"nodeType":"ParameterList","parameters":[{"constant":false,"id":571,"mutability":"mutable","name":"name","nameLocation":"19578:4:0","nodeType":"VariableDeclaration","scope":578,"src":"19562:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":570,"name":"string","nodeType":"ElementaryTypeName","src":"19562:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":573,"mutability":"mutable","name":"defaultValue","nameLocation":"19592:12:0","nodeType":"VariableDeclaration","scope":578,"src":"19584:20:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":572,"name":"address","nodeType":"ElementaryTypeName","src":"19584:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19561:44:0"},"returnParameters":{"id":577,"nodeType":"ParameterList","parameters":[{"constant":false,"id":576,"mutability":"mutable","name":"value","nameLocation":"19637:5:0","nodeType":"VariableDeclaration","scope":578,"src":"19629:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":575,"name":"address","nodeType":"ElementaryTypeName","src":"19629:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19628:15:0"},"scope":3388,"src":"19547:97:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":579,"nodeType":"StructuredDocumentation","src":"19650:183:0","text":"Gets the environment variable `name` and parses it as `bytes32`.\n Reverts if the variable could not be parsed.\n Returns `defaultValue` if the variable was not found."},"functionSelector":"b4a85892","id":588,"implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"19847:5:0","nodeType":"FunctionDefinition","parameters":{"id":584,"nodeType":"ParameterList","parameters":[{"constant":false,"id":581,"mutability":"mutable","name":"name","nameLocation":"19869:4:0","nodeType":"VariableDeclaration","scope":588,"src":"19853:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":580,"name":"string","nodeType":"ElementaryTypeName","src":"19853:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":583,"mutability":"mutable","name":"defaultValue","nameLocation":"19883:12:0","nodeType":"VariableDeclaration","scope":588,"src":"19875:20:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":582,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19875:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"19852:44:0"},"returnParameters":{"id":587,"nodeType":"ParameterList","parameters":[{"constant":false,"id":586,"mutability":"mutable","name":"value","nameLocation":"19928:5:0","nodeType":"VariableDeclaration","scope":588,"src":"19920:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":585,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19920:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"19919:15:0"},"scope":3388,"src":"19838:97:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":589,"nodeType":"StructuredDocumentation","src":"19941:182:0","text":"Gets the environment variable `name` and parses it as `string`.\n Reverts if the variable could not be parsed.\n Returns `defaultValue` if the variable was not found."},"functionSelector":"d145736c","id":598,"implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"20137:5:0","nodeType":"FunctionDefinition","parameters":{"id":594,"nodeType":"ParameterList","parameters":[{"constant":false,"id":591,"mutability":"mutable","name":"name","nameLocation":"20159:4:0","nodeType":"VariableDeclaration","scope":598,"src":"20143:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":590,"name":"string","nodeType":"ElementaryTypeName","src":"20143:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":593,"mutability":"mutable","name":"defaultValue","nameLocation":"20181:12:0","nodeType":"VariableDeclaration","scope":598,"src":"20165:28:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":592,"name":"string","nodeType":"ElementaryTypeName","src":"20165:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"20142:52:0"},"returnParameters":{"id":597,"nodeType":"ParameterList","parameters":[{"constant":false,"id":596,"mutability":"mutable","name":"value","nameLocation":"20232:5:0","nodeType":"VariableDeclaration","scope":598,"src":"20218:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":595,"name":"string","nodeType":"ElementaryTypeName","src":"20218:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"20217:21:0"},"scope":3388,"src":"20128:111:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":599,"nodeType":"StructuredDocumentation","src":"20245:181:0","text":"Gets the environment variable `name` and parses it as `bytes`.\n Reverts if the variable could not be parsed.\n Returns `defaultValue` if the variable was not found."},"functionSelector":"b3e47705","id":608,"implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"20440:5:0","nodeType":"FunctionDefinition","parameters":{"id":604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":601,"mutability":"mutable","name":"name","nameLocation":"20462:4:0","nodeType":"VariableDeclaration","scope":608,"src":"20446:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":600,"name":"string","nodeType":"ElementaryTypeName","src":"20446:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":603,"mutability":"mutable","name":"defaultValue","nameLocation":"20483:12:0","nodeType":"VariableDeclaration","scope":608,"src":"20468:27:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":602,"name":"bytes","nodeType":"ElementaryTypeName","src":"20468:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"20445:51:0"},"returnParameters":{"id":607,"nodeType":"ParameterList","parameters":[{"constant":false,"id":606,"mutability":"mutable","name":"value","nameLocation":"20533:5:0","nodeType":"VariableDeclaration","scope":608,"src":"20520:18:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":605,"name":"bytes","nodeType":"ElementaryTypeName","src":"20520:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"20519:20:0"},"scope":3388,"src":"20431:109:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":609,"nodeType":"StructuredDocumentation","src":"20546:214:0","text":"Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`.\n Reverts if the variable could not be parsed.\n Returns `defaultValue` if the variable was not found."},"functionSelector":"eb85e83b","id":622,"implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"20774:5:0","nodeType":"FunctionDefinition","parameters":{"id":617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":611,"mutability":"mutable","name":"name","nameLocation":"20796:4:0","nodeType":"VariableDeclaration","scope":622,"src":"20780:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":610,"name":"string","nodeType":"ElementaryTypeName","src":"20780:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":613,"mutability":"mutable","name":"delim","nameLocation":"20818:5:0","nodeType":"VariableDeclaration","scope":622,"src":"20802:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":612,"name":"string","nodeType":"ElementaryTypeName","src":"20802:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":616,"mutability":"mutable","name":"defaultValue","nameLocation":"20841:12:0","nodeType":"VariableDeclaration","scope":622,"src":"20825:28:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":614,"name":"bool","nodeType":"ElementaryTypeName","src":"20825:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":615,"nodeType":"ArrayTypeName","src":"20825:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"20779:75:0"},"returnParameters":{"id":621,"nodeType":"ParameterList","parameters":[{"constant":false,"id":620,"mutability":"mutable","name":"value","nameLocation":"20916:5:0","nodeType":"VariableDeclaration","scope":622,"src":"20902:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":618,"name":"bool","nodeType":"ElementaryTypeName","src":"20902:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":619,"nodeType":"ArrayTypeName","src":"20902:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"20901:21:0"},"scope":3388,"src":"20765:158:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":623,"nodeType":"StructuredDocumentation","src":"20929:217:0","text":"Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`.\n Reverts if the variable could not be parsed.\n Returns `defaultValue` if the variable was not found."},"functionSelector":"74318528","id":636,"implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"21160:5:0","nodeType":"FunctionDefinition","parameters":{"id":631,"nodeType":"ParameterList","parameters":[{"constant":false,"id":625,"mutability":"mutable","name":"name","nameLocation":"21182:4:0","nodeType":"VariableDeclaration","scope":636,"src":"21166:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":624,"name":"string","nodeType":"ElementaryTypeName","src":"21166:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":627,"mutability":"mutable","name":"delim","nameLocation":"21204:5:0","nodeType":"VariableDeclaration","scope":636,"src":"21188:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":626,"name":"string","nodeType":"ElementaryTypeName","src":"21188:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":630,"mutability":"mutable","name":"defaultValue","nameLocation":"21230:12:0","nodeType":"VariableDeclaration","scope":636,"src":"21211:31:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":628,"name":"uint256","nodeType":"ElementaryTypeName","src":"21211:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":629,"nodeType":"ArrayTypeName","src":"21211:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"21165:78:0"},"returnParameters":{"id":635,"nodeType":"ParameterList","parameters":[{"constant":false,"id":634,"mutability":"mutable","name":"value","nameLocation":"21308:5:0","nodeType":"VariableDeclaration","scope":636,"src":"21291:22:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":632,"name":"uint256","nodeType":"ElementaryTypeName","src":"21291:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":633,"nodeType":"ArrayTypeName","src":"21291:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"21290:24:0"},"scope":3388,"src":"21151:164:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":637,"nodeType":"StructuredDocumentation","src":"21321:216:0","text":"Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`.\n Reverts if the variable could not be parsed.\n Returns `defaultValue` if the variable was not found."},"functionSelector":"4700d74b","id":650,"implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"21551:5:0","nodeType":"FunctionDefinition","parameters":{"id":645,"nodeType":"ParameterList","parameters":[{"constant":false,"id":639,"mutability":"mutable","name":"name","nameLocation":"21573:4:0","nodeType":"VariableDeclaration","scope":650,"src":"21557:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":638,"name":"string","nodeType":"ElementaryTypeName","src":"21557:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":641,"mutability":"mutable","name":"delim","nameLocation":"21595:5:0","nodeType":"VariableDeclaration","scope":650,"src":"21579:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":640,"name":"string","nodeType":"ElementaryTypeName","src":"21579:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":644,"mutability":"mutable","name":"defaultValue","nameLocation":"21620:12:0","nodeType":"VariableDeclaration","scope":650,"src":"21602:30:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_calldata_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":642,"name":"int256","nodeType":"ElementaryTypeName","src":"21602:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":643,"nodeType":"ArrayTypeName","src":"21602:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"}],"src":"21556:77:0"},"returnParameters":{"id":649,"nodeType":"ParameterList","parameters":[{"constant":false,"id":648,"mutability":"mutable","name":"value","nameLocation":"21697:5:0","nodeType":"VariableDeclaration","scope":650,"src":"21681:21:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":646,"name":"int256","nodeType":"ElementaryTypeName","src":"21681:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":647,"nodeType":"ArrayTypeName","src":"21681:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"}],"src":"21680:23:0"},"scope":3388,"src":"21542:162:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":651,"nodeType":"StructuredDocumentation","src":"21710:137:0","text":"Gets the environment variable `name` and parses it as `string`.\n Reverts if the variable was not found or could not be parsed."},"functionSelector":"f877cb19","id":658,"implemented":false,"kind":"function","modifiers":[],"name":"envString","nameLocation":"21861:9:0","nodeType":"FunctionDefinition","parameters":{"id":654,"nodeType":"ParameterList","parameters":[{"constant":false,"id":653,"mutability":"mutable","name":"name","nameLocation":"21887:4:0","nodeType":"VariableDeclaration","scope":658,"src":"21871:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":652,"name":"string","nodeType":"ElementaryTypeName","src":"21871:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"21870:22:0"},"returnParameters":{"id":657,"nodeType":"ParameterList","parameters":[{"constant":false,"id":656,"mutability":"mutable","name":"value","nameLocation":"21930:5:0","nodeType":"VariableDeclaration","scope":658,"src":"21916:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":655,"name":"string","nodeType":"ElementaryTypeName","src":"21916:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"21915:21:0"},"scope":3388,"src":"21852:85:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":659,"nodeType":"StructuredDocumentation","src":"21943:171:0","text":"Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`.\n Reverts if the variable was not found or could not be parsed."},"functionSelector":"14b02bc9","id":669,"implemented":false,"kind":"function","modifiers":[],"name":"envString","nameLocation":"22128:9:0","nodeType":"FunctionDefinition","parameters":{"id":664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":661,"mutability":"mutable","name":"name","nameLocation":"22154:4:0","nodeType":"VariableDeclaration","scope":669,"src":"22138:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":660,"name":"string","nodeType":"ElementaryTypeName","src":"22138:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":663,"mutability":"mutable","name":"delim","nameLocation":"22176:5:0","nodeType":"VariableDeclaration","scope":669,"src":"22160:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":662,"name":"string","nodeType":"ElementaryTypeName","src":"22160:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"22137:45:0"},"returnParameters":{"id":668,"nodeType":"ParameterList","parameters":[{"constant":false,"id":667,"mutability":"mutable","name":"value","nameLocation":"22222:5:0","nodeType":"VariableDeclaration","scope":669,"src":"22206:21:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":665,"name":"string","nodeType":"ElementaryTypeName","src":"22206:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":666,"nodeType":"ArrayTypeName","src":"22206:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"22205:23:0"},"scope":3388,"src":"22119:110:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":670,"nodeType":"StructuredDocumentation","src":"22235:138:0","text":"Gets the environment variable `name` and parses it as `uint256`.\n Reverts if the variable was not found or could not be parsed."},"functionSelector":"c1978d1f","id":677,"implemented":false,"kind":"function","modifiers":[],"name":"envUint","nameLocation":"22387:7:0","nodeType":"FunctionDefinition","parameters":{"id":673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":672,"mutability":"mutable","name":"name","nameLocation":"22411:4:0","nodeType":"VariableDeclaration","scope":677,"src":"22395:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":671,"name":"string","nodeType":"ElementaryTypeName","src":"22395:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"22394:22:0"},"returnParameters":{"id":676,"nodeType":"ParameterList","parameters":[{"constant":false,"id":675,"mutability":"mutable","name":"value","nameLocation":"22448:5:0","nodeType":"VariableDeclaration","scope":677,"src":"22440:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":674,"name":"uint256","nodeType":"ElementaryTypeName","src":"22440:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22439:15:0"},"scope":3388,"src":"22378:77:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":678,"nodeType":"StructuredDocumentation","src":"22461:172:0","text":"Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`.\n Reverts if the variable was not found or could not be parsed."},"functionSelector":"f3dec099","id":688,"implemented":false,"kind":"function","modifiers":[],"name":"envUint","nameLocation":"22647:7:0","nodeType":"FunctionDefinition","parameters":{"id":683,"nodeType":"ParameterList","parameters":[{"constant":false,"id":680,"mutability":"mutable","name":"name","nameLocation":"22671:4:0","nodeType":"VariableDeclaration","scope":688,"src":"22655:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":679,"name":"string","nodeType":"ElementaryTypeName","src":"22655:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":682,"mutability":"mutable","name":"delim","nameLocation":"22693:5:0","nodeType":"VariableDeclaration","scope":688,"src":"22677:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":681,"name":"string","nodeType":"ElementaryTypeName","src":"22677:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"22654:45:0"},"returnParameters":{"id":687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":686,"mutability":"mutable","name":"value","nameLocation":"22740:5:0","nodeType":"VariableDeclaration","scope":688,"src":"22723:22:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":684,"name":"uint256","nodeType":"ElementaryTypeName","src":"22723:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":685,"nodeType":"ArrayTypeName","src":"22723:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"22722:24:0"},"scope":3388,"src":"22638:109:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":689,"nodeType":"StructuredDocumentation","src":"22753:66:0","text":"Returns true if `forge` command was executed in given context."},"functionSelector":"64af255d","id":697,"implemented":false,"kind":"function","modifiers":[],"name":"isContext","nameLocation":"22833:9:0","nodeType":"FunctionDefinition","parameters":{"id":693,"nodeType":"ParameterList","parameters":[{"constant":false,"id":692,"mutability":"mutable","name":"context","nameLocation":"22856:7:0","nodeType":"VariableDeclaration","scope":697,"src":"22843:20:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ForgeContext_$34","typeString":"enum VmSafe.ForgeContext"},"typeName":{"id":691,"nodeType":"UserDefinedTypeName","pathNode":{"id":690,"name":"ForgeContext","nameLocations":["22843:12:0"],"nodeType":"IdentifierPath","referencedDeclaration":34,"src":"22843:12:0"},"referencedDeclaration":34,"src":"22843:12:0","typeDescriptions":{"typeIdentifier":"t_enum$_ForgeContext_$34","typeString":"enum VmSafe.ForgeContext"}},"visibility":"internal"}],"src":"22842:22:0"},"returnParameters":{"id":696,"nodeType":"ParameterList","parameters":[{"constant":false,"id":695,"mutability":"mutable","name":"result","nameLocation":"22893:6:0","nodeType":"VariableDeclaration","scope":697,"src":"22888:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":694,"name":"bool","nodeType":"ElementaryTypeName","src":"22888:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"22887:13:0"},"scope":3388,"src":"22824:77:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":698,"nodeType":"StructuredDocumentation","src":"22907:31:0","text":"Sets environment variables."},"functionSelector":"3d5923ee","id":705,"implemented":false,"kind":"function","modifiers":[],"name":"setEnv","nameLocation":"22952:6:0","nodeType":"FunctionDefinition","parameters":{"id":703,"nodeType":"ParameterList","parameters":[{"constant":false,"id":700,"mutability":"mutable","name":"name","nameLocation":"22975:4:0","nodeType":"VariableDeclaration","scope":705,"src":"22959:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":699,"name":"string","nodeType":"ElementaryTypeName","src":"22959:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":702,"mutability":"mutable","name":"value","nameLocation":"22997:5:0","nodeType":"VariableDeclaration","scope":705,"src":"22981:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":701,"name":"string","nodeType":"ElementaryTypeName","src":"22981:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"22958:45:0"},"returnParameters":{"id":704,"nodeType":"ParameterList","parameters":[],"src":"23012:0:0"},"scope":3388,"src":"22943:70:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":706,"nodeType":"StructuredDocumentation","src":"23049:91:0","text":"Gets all accessed reads and write slot from a `vm.record` session, for a given address."},"functionSelector":"65bc9481","id":717,"implemented":false,"kind":"function","modifiers":[],"name":"accesses","nameLocation":"23154:8:0","nodeType":"FunctionDefinition","parameters":{"id":709,"nodeType":"ParameterList","parameters":[{"constant":false,"id":708,"mutability":"mutable","name":"target","nameLocation":"23171:6:0","nodeType":"VariableDeclaration","scope":717,"src":"23163:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":707,"name":"address","nodeType":"ElementaryTypeName","src":"23163:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23162:16:0"},"returnParameters":{"id":716,"nodeType":"ParameterList","parameters":[{"constant":false,"id":712,"mutability":"mutable","name":"readSlots","nameLocation":"23214:9:0","nodeType":"VariableDeclaration","scope":717,"src":"23197:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":710,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23197:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":711,"nodeType":"ArrayTypeName","src":"23197:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":715,"mutability":"mutable","name":"writeSlots","nameLocation":"23242:10:0","nodeType":"VariableDeclaration","scope":717,"src":"23225:27:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":713,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23225:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":714,"nodeType":"ArrayTypeName","src":"23225:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"23196:57:0"},"scope":3388,"src":"23145:109:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":718,"nodeType":"StructuredDocumentation","src":"23260:45:0","text":"Gets the address for a given private key."},"functionSelector":"ffa18649","id":725,"implemented":false,"kind":"function","modifiers":[],"name":"addr","nameLocation":"23319:4:0","nodeType":"FunctionDefinition","parameters":{"id":721,"nodeType":"ParameterList","parameters":[{"constant":false,"id":720,"mutability":"mutable","name":"privateKey","nameLocation":"23332:10:0","nodeType":"VariableDeclaration","scope":725,"src":"23324:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":719,"name":"uint256","nodeType":"ElementaryTypeName","src":"23324:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23323:20:0"},"returnParameters":{"id":724,"nodeType":"ParameterList","parameters":[{"constant":false,"id":723,"mutability":"mutable","name":"keyAddr","nameLocation":"23375:7:0","nodeType":"VariableDeclaration","scope":725,"src":"23367:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":722,"name":"address","nodeType":"ElementaryTypeName","src":"23367:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23366:17:0"},"scope":3388,"src":"23310:74:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":726,"nodeType":"StructuredDocumentation","src":"23390:52:0","text":"Gets all the logs according to specified filter."},"functionSelector":"35e1349b","id":742,"implemented":false,"kind":"function","modifiers":[],"name":"eth_getLogs","nameLocation":"23456:11:0","nodeType":"FunctionDefinition","parameters":{"id":736,"nodeType":"ParameterList","parameters":[{"constant":false,"id":728,"mutability":"mutable","name":"fromBlock","nameLocation":"23476:9:0","nodeType":"VariableDeclaration","scope":742,"src":"23468:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":727,"name":"uint256","nodeType":"ElementaryTypeName","src":"23468:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":730,"mutability":"mutable","name":"toBlock","nameLocation":"23495:7:0","nodeType":"VariableDeclaration","scope":742,"src":"23487:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":729,"name":"uint256","nodeType":"ElementaryTypeName","src":"23487:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":732,"mutability":"mutable","name":"target","nameLocation":"23512:6:0","nodeType":"VariableDeclaration","scope":742,"src":"23504:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":731,"name":"address","nodeType":"ElementaryTypeName","src":"23504:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":735,"mutability":"mutable","name":"topics","nameLocation":"23539:6:0","nodeType":"VariableDeclaration","scope":742,"src":"23520:25:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":733,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23520:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":734,"nodeType":"ArrayTypeName","src":"23520:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"23467:79:0"},"returnParameters":{"id":741,"nodeType":"ParameterList","parameters":[{"constant":false,"id":740,"mutability":"mutable","name":"logs","nameLocation":"23601:4:0","nodeType":"VariableDeclaration","scope":742,"src":"23581:24:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_EthGetLogs_$70_memory_ptr_$dyn_memory_ptr","typeString":"struct VmSafe.EthGetLogs[]"},"typeName":{"baseType":{"id":738,"nodeType":"UserDefinedTypeName","pathNode":{"id":737,"name":"EthGetLogs","nameLocations":["23581:10:0"],"nodeType":"IdentifierPath","referencedDeclaration":70,"src":"23581:10:0"},"referencedDeclaration":70,"src":"23581:10:0","typeDescriptions":{"typeIdentifier":"t_struct$_EthGetLogs_$70_storage_ptr","typeString":"struct VmSafe.EthGetLogs"}},"id":739,"nodeType":"ArrayTypeName","src":"23581:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_EthGetLogs_$70_storage_$dyn_storage_ptr","typeString":"struct VmSafe.EthGetLogs[]"}},"visibility":"internal"}],"src":"23580:26:0"},"scope":3388,"src":"23447:160:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":743,"nodeType":"StructuredDocumentation","src":"23613:326:0","text":"Gets the current `block.blobbasefee`.\n You should use this instead of `block.blobbasefee` if you use `vm.blobBaseFee`, as `block.blobbasefee` is assumed to be constant across a transaction,\n and as a result will get optimized out by the compiler.\n See https://github.com/foundry-rs/foundry/issues/6180"},"functionSelector":"1f6d6ef7","id":748,"implemented":false,"kind":"function","modifiers":[],"name":"getBlobBaseFee","nameLocation":"23953:14:0","nodeType":"FunctionDefinition","parameters":{"id":744,"nodeType":"ParameterList","parameters":[],"src":"23967:2:0"},"returnParameters":{"id":747,"nodeType":"ParameterList","parameters":[{"constant":false,"id":746,"mutability":"mutable","name":"blobBaseFee","nameLocation":"24001:11:0","nodeType":"VariableDeclaration","scope":748,"src":"23993:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":745,"name":"uint256","nodeType":"ElementaryTypeName","src":"23993:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23992:21:0"},"scope":3388,"src":"23944:70:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":749,"nodeType":"StructuredDocumentation","src":"24020:304:0","text":"Gets the current `block.number`.\n You should use this instead of `block.number` if you use `vm.roll`, as `block.number` is assumed to be constant across a transaction,\n and as a result will get optimized out by the compiler.\n See https://github.com/foundry-rs/foundry/issues/6180"},"functionSelector":"42cbb15c","id":754,"implemented":false,"kind":"function","modifiers":[],"name":"getBlockNumber","nameLocation":"24338:14:0","nodeType":"FunctionDefinition","parameters":{"id":750,"nodeType":"ParameterList","parameters":[],"src":"24352:2:0"},"returnParameters":{"id":753,"nodeType":"ParameterList","parameters":[{"constant":false,"id":752,"mutability":"mutable","name":"height","nameLocation":"24386:6:0","nodeType":"VariableDeclaration","scope":754,"src":"24378:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":751,"name":"uint256","nodeType":"ElementaryTypeName","src":"24378:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24377:16:0"},"scope":3388,"src":"24329:65:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":755,"nodeType":"StructuredDocumentation","src":"24400:313:0","text":"Gets the current `block.timestamp`.\n You should use this instead of `block.timestamp` if you use `vm.warp`, as `block.timestamp` is assumed to be constant across a transaction,\n and as a result will get optimized out by the compiler.\n See https://github.com/foundry-rs/foundry/issues/6180"},"functionSelector":"796b89b9","id":760,"implemented":false,"kind":"function","modifiers":[],"name":"getBlockTimestamp","nameLocation":"24727:17:0","nodeType":"FunctionDefinition","parameters":{"id":756,"nodeType":"ParameterList","parameters":[],"src":"24744:2:0"},"returnParameters":{"id":759,"nodeType":"ParameterList","parameters":[{"constant":false,"id":758,"mutability":"mutable","name":"timestamp","nameLocation":"24778:9:0","nodeType":"VariableDeclaration","scope":760,"src":"24770:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":757,"name":"uint256","nodeType":"ElementaryTypeName","src":"24770:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24769:19:0"},"scope":3388,"src":"24718:71:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":761,"nodeType":"StructuredDocumentation","src":"24795:82:0","text":"Gets the map key and parent of a mapping at a given slot, for a given address."},"functionSelector":"876e24e6","id":774,"implemented":false,"kind":"function","modifiers":[],"name":"getMappingKeyAndParentOf","nameLocation":"24891:24:0","nodeType":"FunctionDefinition","parameters":{"id":766,"nodeType":"ParameterList","parameters":[{"constant":false,"id":763,"mutability":"mutable","name":"target","nameLocation":"24924:6:0","nodeType":"VariableDeclaration","scope":774,"src":"24916:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":762,"name":"address","nodeType":"ElementaryTypeName","src":"24916:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":765,"mutability":"mutable","name":"elementSlot","nameLocation":"24940:11:0","nodeType":"VariableDeclaration","scope":774,"src":"24932:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":764,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24932:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"24915:37:0"},"returnParameters":{"id":773,"nodeType":"ParameterList","parameters":[{"constant":false,"id":768,"mutability":"mutable","name":"found","nameLocation":"24992:5:0","nodeType":"VariableDeclaration","scope":774,"src":"24987:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":767,"name":"bool","nodeType":"ElementaryTypeName","src":"24987:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":770,"mutability":"mutable","name":"key","nameLocation":"25007:3:0","nodeType":"VariableDeclaration","scope":774,"src":"24999:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":769,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24999:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":772,"mutability":"mutable","name":"parent","nameLocation":"25020:6:0","nodeType":"VariableDeclaration","scope":774,"src":"25012:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":771,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25012:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"24986:41:0"},"scope":3388,"src":"24882:146:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":775,"nodeType":"StructuredDocumentation","src":"25034:86:0","text":"Gets the number of elements in the mapping at the given slot, for a given address."},"functionSelector":"2f2fd63f","id":784,"implemented":false,"kind":"function","modifiers":[],"name":"getMappingLength","nameLocation":"25134:16:0","nodeType":"FunctionDefinition","parameters":{"id":780,"nodeType":"ParameterList","parameters":[{"constant":false,"id":777,"mutability":"mutable","name":"target","nameLocation":"25159:6:0","nodeType":"VariableDeclaration","scope":784,"src":"25151:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":776,"name":"address","nodeType":"ElementaryTypeName","src":"25151:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":779,"mutability":"mutable","name":"mappingSlot","nameLocation":"25175:11:0","nodeType":"VariableDeclaration","scope":784,"src":"25167:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":778,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25167:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"25150:37:0"},"returnParameters":{"id":783,"nodeType":"ParameterList","parameters":[{"constant":false,"id":782,"mutability":"mutable","name":"length","nameLocation":"25214:6:0","nodeType":"VariableDeclaration","scope":784,"src":"25206:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":781,"name":"uint256","nodeType":"ElementaryTypeName","src":"25206:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25205:16:0"},"scope":3388,"src":"25125:97:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":785,"nodeType":"StructuredDocumentation","src":"25228:193:0","text":"Gets the elements at index idx of the mapping at the given slot, for a given address. The\n index must be less than the length of the mapping (i.e. the number of keys in the mapping)."},"functionSelector":"ebc73ab4","id":796,"implemented":false,"kind":"function","modifiers":[],"name":"getMappingSlotAt","nameLocation":"25435:16:0","nodeType":"FunctionDefinition","parameters":{"id":792,"nodeType":"ParameterList","parameters":[{"constant":false,"id":787,"mutability":"mutable","name":"target","nameLocation":"25460:6:0","nodeType":"VariableDeclaration","scope":796,"src":"25452:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":786,"name":"address","nodeType":"ElementaryTypeName","src":"25452:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":789,"mutability":"mutable","name":"mappingSlot","nameLocation":"25476:11:0","nodeType":"VariableDeclaration","scope":796,"src":"25468:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":788,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25468:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":791,"mutability":"mutable","name":"idx","nameLocation":"25497:3:0","nodeType":"VariableDeclaration","scope":796,"src":"25489:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":790,"name":"uint256","nodeType":"ElementaryTypeName","src":"25489:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25451:50:0"},"returnParameters":{"id":795,"nodeType":"ParameterList","parameters":[{"constant":false,"id":794,"mutability":"mutable","name":"value","nameLocation":"25528:5:0","nodeType":"VariableDeclaration","scope":796,"src":"25520:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":793,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25520:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"25519:15:0"},"scope":3388,"src":"25426:109:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":797,"nodeType":"StructuredDocumentation","src":"25541:33:0","text":"Gets the nonce of an account."},"functionSelector":"2d0335ab","id":804,"implemented":false,"kind":"function","modifiers":[],"name":"getNonce","nameLocation":"25588:8:0","nodeType":"FunctionDefinition","parameters":{"id":800,"nodeType":"ParameterList","parameters":[{"constant":false,"id":799,"mutability":"mutable","name":"account","nameLocation":"25605:7:0","nodeType":"VariableDeclaration","scope":804,"src":"25597:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":798,"name":"address","nodeType":"ElementaryTypeName","src":"25597:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"25596:17:0"},"returnParameters":{"id":803,"nodeType":"ParameterList","parameters":[{"constant":false,"id":802,"mutability":"mutable","name":"nonce","nameLocation":"25644:5:0","nodeType":"VariableDeclaration","scope":804,"src":"25637:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":801,"name":"uint64","nodeType":"ElementaryTypeName","src":"25637:6:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"25636:14:0"},"scope":3388,"src":"25579:72:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":805,"nodeType":"StructuredDocumentation","src":"25657:32:0","text":"Get the nonce of a `Wallet`."},"functionSelector":"a5748aad","id":813,"implemented":false,"kind":"function","modifiers":[],"name":"getNonce","nameLocation":"25703:8:0","nodeType":"FunctionDefinition","parameters":{"id":809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":808,"mutability":"mutable","name":"wallet","nameLocation":"25728:6:0","nodeType":"VariableDeclaration","scope":813,"src":"25712:22:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Wallet_$108_calldata_ptr","typeString":"struct VmSafe.Wallet"},"typeName":{"id":807,"nodeType":"UserDefinedTypeName","pathNode":{"id":806,"name":"Wallet","nameLocations":["25712:6:0"],"nodeType":"IdentifierPath","referencedDeclaration":108,"src":"25712:6:0"},"referencedDeclaration":108,"src":"25712:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_Wallet_$108_storage_ptr","typeString":"struct VmSafe.Wallet"}},"visibility":"internal"}],"src":"25711:24:0"},"returnParameters":{"id":812,"nodeType":"ParameterList","parameters":[{"constant":false,"id":811,"mutability":"mutable","name":"nonce","nameLocation":"25761:5:0","nodeType":"VariableDeclaration","scope":813,"src":"25754:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":810,"name":"uint64","nodeType":"ElementaryTypeName","src":"25754:6:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"25753:14:0"},"scope":3388,"src":"25694:74:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":814,"nodeType":"StructuredDocumentation","src":"25774:31:0","text":"Gets all the recorded logs."},"functionSelector":"191553a4","id":821,"implemented":false,"kind":"function","modifiers":[],"name":"getRecordedLogs","nameLocation":"25819:15:0","nodeType":"FunctionDefinition","parameters":{"id":815,"nodeType":"ParameterList","parameters":[],"src":"25834:2:0"},"returnParameters":{"id":820,"nodeType":"ParameterList","parameters":[{"constant":false,"id":819,"mutability":"mutable","name":"logs","nameLocation":"25868:4:0","nodeType":"VariableDeclaration","scope":821,"src":"25855:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Log_$43_memory_ptr_$dyn_memory_ptr","typeString":"struct VmSafe.Log[]"},"typeName":{"baseType":{"id":817,"nodeType":"UserDefinedTypeName","pathNode":{"id":816,"name":"Log","nameLocations":["25855:3:0"],"nodeType":"IdentifierPath","referencedDeclaration":43,"src":"25855:3:0"},"referencedDeclaration":43,"src":"25855:3:0","typeDescriptions":{"typeIdentifier":"t_struct$_Log_$43_storage_ptr","typeString":"struct VmSafe.Log"}},"id":818,"nodeType":"ArrayTypeName","src":"25855:5:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Log_$43_storage_$dyn_storage_ptr","typeString":"struct VmSafe.Log[]"}},"visibility":"internal"}],"src":"25854:19:0"},"scope":3388,"src":"25810:64:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":822,"nodeType":"StructuredDocumentation","src":"25880:39:0","text":"Gets the gas used in the last call."},"functionSelector":"2b589b28","id":828,"implemented":false,"kind":"function","modifiers":[],"name":"lastCallGas","nameLocation":"25933:11:0","nodeType":"FunctionDefinition","parameters":{"id":823,"nodeType":"ParameterList","parameters":[],"src":"25944:2:0"},"returnParameters":{"id":827,"nodeType":"ParameterList","parameters":[{"constant":false,"id":826,"mutability":"mutable","name":"gas","nameLocation":"25981:3:0","nodeType":"VariableDeclaration","scope":828,"src":"25970:14:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Gas_$180_memory_ptr","typeString":"struct VmSafe.Gas"},"typeName":{"id":825,"nodeType":"UserDefinedTypeName","pathNode":{"id":824,"name":"Gas","nameLocations":["25970:3:0"],"nodeType":"IdentifierPath","referencedDeclaration":180,"src":"25970:3:0"},"referencedDeclaration":180,"src":"25970:3:0","typeDescriptions":{"typeIdentifier":"t_struct$_Gas_$180_storage_ptr","typeString":"struct VmSafe.Gas"}},"visibility":"internal"}],"src":"25969:16:0"},"scope":3388,"src":"25924:62:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":829,"nodeType":"StructuredDocumentation","src":"25992:41:0","text":"Loads a storage slot from an address."},"functionSelector":"667f9d70","id":838,"implemented":false,"kind":"function","modifiers":[],"name":"load","nameLocation":"26047:4:0","nodeType":"FunctionDefinition","parameters":{"id":834,"nodeType":"ParameterList","parameters":[{"constant":false,"id":831,"mutability":"mutable","name":"target","nameLocation":"26060:6:0","nodeType":"VariableDeclaration","scope":838,"src":"26052:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":830,"name":"address","nodeType":"ElementaryTypeName","src":"26052:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":833,"mutability":"mutable","name":"slot","nameLocation":"26076:4:0","nodeType":"VariableDeclaration","scope":838,"src":"26068:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":832,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26068:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"26051:30:0"},"returnParameters":{"id":837,"nodeType":"ParameterList","parameters":[{"constant":false,"id":836,"mutability":"mutable","name":"data","nameLocation":"26113:4:0","nodeType":"VariableDeclaration","scope":838,"src":"26105:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":835,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26105:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"26104:14:0"},"scope":3388,"src":"26038:81:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":839,"nodeType":"StructuredDocumentation","src":"26125:80:0","text":"Pauses gas metering (i.e. gas usage is not counted). Noop if already paused."},"functionSelector":"d1a5b36f","id":842,"implemented":false,"kind":"function","modifiers":[],"name":"pauseGasMetering","nameLocation":"26219:16:0","nodeType":"FunctionDefinition","parameters":{"id":840,"nodeType":"ParameterList","parameters":[],"src":"26235:2:0"},"returnParameters":{"id":841,"nodeType":"ParameterList","parameters":[],"src":"26246:0:0"},"scope":3388,"src":"26210:37:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":843,"nodeType":"StructuredDocumentation","src":"26253:41:0","text":"Records all storage reads and writes."},"functionSelector":"266cf109","id":846,"implemented":false,"kind":"function","modifiers":[],"name":"record","nameLocation":"26308:6:0","nodeType":"FunctionDefinition","parameters":{"id":844,"nodeType":"ParameterList","parameters":[],"src":"26314:2:0"},"returnParameters":{"id":845,"nodeType":"ParameterList","parameters":[],"src":"26325:0:0"},"scope":3388,"src":"26299:27:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":847,"nodeType":"StructuredDocumentation","src":"26332:36:0","text":"Record all the transaction logs."},"functionSelector":"41af2f52","id":850,"implemented":false,"kind":"function","modifiers":[],"name":"recordLogs","nameLocation":"26382:10:0","nodeType":"FunctionDefinition","parameters":{"id":848,"nodeType":"ParameterList","parameters":[],"src":"26392:2:0"},"returnParameters":{"id":849,"nodeType":"ParameterList","parameters":[],"src":"26403:0:0"},"scope":3388,"src":"26373:31:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":851,"nodeType":"StructuredDocumentation","src":"26410:79:0","text":"Resumes gas metering (i.e. gas usage is counted again). Noop if already on."},"functionSelector":"2bcd50e0","id":854,"implemented":false,"kind":"function","modifiers":[],"name":"resumeGasMetering","nameLocation":"26503:17:0","nodeType":"FunctionDefinition","parameters":{"id":852,"nodeType":"ParameterList","parameters":[],"src":"26520:2:0"},"returnParameters":{"id":853,"nodeType":"ParameterList","parameters":[],"src":"26531:0:0"},"scope":3388,"src":"26494:38:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":855,"nodeType":"StructuredDocumentation","src":"26538:66:0","text":"Performs an Ethereum JSON-RPC request to the current fork URL."},"functionSelector":"1206c8a8","id":864,"implemented":false,"kind":"function","modifiers":[],"name":"rpc","nameLocation":"26618:3:0","nodeType":"FunctionDefinition","parameters":{"id":860,"nodeType":"ParameterList","parameters":[{"constant":false,"id":857,"mutability":"mutable","name":"method","nameLocation":"26638:6:0","nodeType":"VariableDeclaration","scope":864,"src":"26622:22:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":856,"name":"string","nodeType":"ElementaryTypeName","src":"26622:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":859,"mutability":"mutable","name":"params","nameLocation":"26662:6:0","nodeType":"VariableDeclaration","scope":864,"src":"26646:22:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":858,"name":"string","nodeType":"ElementaryTypeName","src":"26646:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"26621:48:0"},"returnParameters":{"id":863,"nodeType":"ParameterList","parameters":[{"constant":false,"id":862,"mutability":"mutable","name":"data","nameLocation":"26701:4:0","nodeType":"VariableDeclaration","scope":864,"src":"26688:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":861,"name":"bytes","nodeType":"ElementaryTypeName","src":"26688:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"26687:19:0"},"scope":3388,"src":"26609:98:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":865,"nodeType":"StructuredDocumentation","src":"26713:64:0","text":"Performs an Ethereum JSON-RPC request to the given endpoint."},"functionSelector":"0199a220","id":876,"implemented":false,"kind":"function","modifiers":[],"name":"rpc","nameLocation":"26791:3:0","nodeType":"FunctionDefinition","parameters":{"id":872,"nodeType":"ParameterList","parameters":[{"constant":false,"id":867,"mutability":"mutable","name":"urlOrAlias","nameLocation":"26811:10:0","nodeType":"VariableDeclaration","scope":876,"src":"26795:26:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":866,"name":"string","nodeType":"ElementaryTypeName","src":"26795:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":869,"mutability":"mutable","name":"method","nameLocation":"26839:6:0","nodeType":"VariableDeclaration","scope":876,"src":"26823:22:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":868,"name":"string","nodeType":"ElementaryTypeName","src":"26823:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":871,"mutability":"mutable","name":"params","nameLocation":"26863:6:0","nodeType":"VariableDeclaration","scope":876,"src":"26847:22:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":870,"name":"string","nodeType":"ElementaryTypeName","src":"26847:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"26794:76:0"},"returnParameters":{"id":875,"nodeType":"ParameterList","parameters":[{"constant":false,"id":874,"mutability":"mutable","name":"data","nameLocation":"26918:4:0","nodeType":"VariableDeclaration","scope":876,"src":"26905:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":873,"name":"bytes","nodeType":"ElementaryTypeName","src":"26905:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"26904:19:0"},"scope":3388,"src":"26782:142:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":877,"nodeType":"StructuredDocumentation","src":"26930:57:0","text":"Starts recording all map SSTOREs for later retrieval."},"functionSelector":"3e9705c0","id":880,"implemented":false,"kind":"function","modifiers":[],"name":"startMappingRecording","nameLocation":"27001:21:0","nodeType":"FunctionDefinition","parameters":{"id":878,"nodeType":"ParameterList","parameters":[],"src":"27022:2:0"},"returnParameters":{"id":879,"nodeType":"ParameterList","parameters":[],"src":"27033:0:0"},"scope":3388,"src":"26992:42:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":881,"nodeType":"StructuredDocumentation","src":"27040:133:0","text":"Record all account accesses as part of CREATE, CALL or SELFDESTRUCT opcodes in order,\n along with the context of the calls"},"functionSelector":"cf22e3c9","id":884,"implemented":false,"kind":"function","modifiers":[],"name":"startStateDiffRecording","nameLocation":"27187:23:0","nodeType":"FunctionDefinition","parameters":{"id":882,"nodeType":"ParameterList","parameters":[],"src":"27210:2:0"},"returnParameters":{"id":883,"nodeType":"ParameterList","parameters":[],"src":"27221:0:0"},"scope":3388,"src":"27178:44:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":885,"nodeType":"StructuredDocumentation","src":"27228:97:0","text":"Returns an ordered array of all account accesses from a `vm.startStateDiffRecording` session."},"functionSelector":"aa5cf90e","id":892,"implemented":false,"kind":"function","modifiers":[],"name":"stopAndReturnStateDiff","nameLocation":"27339:22:0","nodeType":"FunctionDefinition","parameters":{"id":886,"nodeType":"ParameterList","parameters":[],"src":"27361:2:0"},"returnParameters":{"id":891,"nodeType":"ParameterList","parameters":[{"constant":false,"id":890,"mutability":"mutable","name":"accountAccesses","nameLocation":"27405:15:0","nodeType":"VariableDeclaration","scope":892,"src":"27382:38:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AccountAccess_$154_memory_ptr_$dyn_memory_ptr","typeString":"struct VmSafe.AccountAccess[]"},"typeName":{"baseType":{"id":888,"nodeType":"UserDefinedTypeName","pathNode":{"id":887,"name":"AccountAccess","nameLocations":["27382:13:0"],"nodeType":"IdentifierPath","referencedDeclaration":154,"src":"27382:13:0"},"referencedDeclaration":154,"src":"27382:13:0","typeDescriptions":{"typeIdentifier":"t_struct$_AccountAccess_$154_storage_ptr","typeString":"struct VmSafe.AccountAccess"}},"id":889,"nodeType":"ArrayTypeName","src":"27382:15:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AccountAccess_$154_storage_$dyn_storage_ptr","typeString":"struct VmSafe.AccountAccess[]"}},"visibility":"internal"}],"src":"27381:40:0"},"scope":3388,"src":"27330:92:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":893,"nodeType":"StructuredDocumentation","src":"27428:85:0","text":"Stops recording all map SSTOREs for later retrieval and clears the recorded data."},"functionSelector":"0d4aae9b","id":896,"implemented":false,"kind":"function","modifiers":[],"name":"stopMappingRecording","nameLocation":"27527:20:0","nodeType":"FunctionDefinition","parameters":{"id":894,"nodeType":"ParameterList","parameters":[],"src":"27547:2:0"},"returnParameters":{"id":895,"nodeType":"ParameterList","parameters":[],"src":"27558:0:0"},"scope":3388,"src":"27518:41:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":897,"nodeType":"StructuredDocumentation","src":"27602:151:0","text":"Closes file for reading, resetting the offset and allowing to read it from beginning with readLine.\n `path` is relative to the project root."},"functionSelector":"48c3241f","id":902,"implemented":false,"kind":"function","modifiers":[],"name":"closeFile","nameLocation":"27767:9:0","nodeType":"FunctionDefinition","parameters":{"id":900,"nodeType":"ParameterList","parameters":[{"constant":false,"id":899,"mutability":"mutable","name":"path","nameLocation":"27793:4:0","nodeType":"VariableDeclaration","scope":902,"src":"27777:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":898,"name":"string","nodeType":"ElementaryTypeName","src":"27777:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"27776:22:0"},"returnParameters":{"id":901,"nodeType":"ParameterList","parameters":[],"src":"27807:0:0"},"scope":3388,"src":"27758:50:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":903,"nodeType":"StructuredDocumentation","src":"27814:304:0","text":"Copies the contents of one file to another. This function will **overwrite** the contents of `to`.\n On success, the total number of bytes copied is returned and it is equal to the length of the `to` file as reported by `metadata`.\n Both `from` and `to` are relative to the project root."},"functionSelector":"a54a87d8","id":912,"implemented":false,"kind":"function","modifiers":[],"name":"copyFile","nameLocation":"28132:8:0","nodeType":"FunctionDefinition","parameters":{"id":908,"nodeType":"ParameterList","parameters":[{"constant":false,"id":905,"mutability":"mutable","name":"from","nameLocation":"28157:4:0","nodeType":"VariableDeclaration","scope":912,"src":"28141:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":904,"name":"string","nodeType":"ElementaryTypeName","src":"28141:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":907,"mutability":"mutable","name":"to","nameLocation":"28179:2:0","nodeType":"VariableDeclaration","scope":912,"src":"28163:18:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":906,"name":"string","nodeType":"ElementaryTypeName","src":"28163:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"28140:42:0"},"returnParameters":{"id":911,"nodeType":"ParameterList","parameters":[{"constant":false,"id":910,"mutability":"mutable","name":"copied","nameLocation":"28208:6:0","nodeType":"VariableDeclaration","scope":912,"src":"28201:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":909,"name":"uint64","nodeType":"ElementaryTypeName","src":"28201:6:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"28200:15:0"},"scope":3388,"src":"28123:93:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":913,"nodeType":"StructuredDocumentation","src":"28222:394:0","text":"Creates a new, empty directory at the provided path.\n This cheatcode will revert in the following situations, but is not limited to just these cases:\n - User lacks permissions to modify `path`.\n - A parent of the given path doesn't exist and `recursive` is false.\n - `path` already exists and `recursive` is false.\n `path` is relative to the project root."},"functionSelector":"168b64d3","id":920,"implemented":false,"kind":"function","modifiers":[],"name":"createDir","nameLocation":"28630:9:0","nodeType":"FunctionDefinition","parameters":{"id":918,"nodeType":"ParameterList","parameters":[{"constant":false,"id":915,"mutability":"mutable","name":"path","nameLocation":"28656:4:0","nodeType":"VariableDeclaration","scope":920,"src":"28640:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":914,"name":"string","nodeType":"ElementaryTypeName","src":"28640:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":917,"mutability":"mutable","name":"recursive","nameLocation":"28667:9:0","nodeType":"VariableDeclaration","scope":920,"src":"28662:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":916,"name":"bool","nodeType":"ElementaryTypeName","src":"28662:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"28639:38:0"},"returnParameters":{"id":919,"nodeType":"ParameterList","parameters":[],"src":"28686:0:0"},"scope":3388,"src":"28621:66:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":921,"nodeType":"StructuredDocumentation","src":"28693:219:0","text":"Deploys a contract from an artifact file. Takes in the relative path to the json file or the path to the\n artifact in the form of :: where and parts are optional."},"functionSelector":"9a8325a0","id":928,"implemented":false,"kind":"function","modifiers":[],"name":"deployCode","nameLocation":"28926:10:0","nodeType":"FunctionDefinition","parameters":{"id":924,"nodeType":"ParameterList","parameters":[{"constant":false,"id":923,"mutability":"mutable","name":"artifactPath","nameLocation":"28953:12:0","nodeType":"VariableDeclaration","scope":928,"src":"28937:28:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":922,"name":"string","nodeType":"ElementaryTypeName","src":"28937:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"28936:30:0"},"returnParameters":{"id":927,"nodeType":"ParameterList","parameters":[{"constant":false,"id":926,"mutability":"mutable","name":"deployedAddress","nameLocation":"28993:15:0","nodeType":"VariableDeclaration","scope":928,"src":"28985:23:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":925,"name":"address","nodeType":"ElementaryTypeName","src":"28985:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"28984:25:0"},"scope":3388,"src":"28917:93:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":929,"nodeType":"StructuredDocumentation","src":"29016:282:0","text":"Deploys a contract from an artifact file. Takes in the relative path to the json file or the path to the\n artifact in the form of :: where and parts are optional.\n Additionaly accepts abi-encoded constructor arguments."},"functionSelector":"29ce9dde","id":938,"implemented":false,"kind":"function","modifiers":[],"name":"deployCode","nameLocation":"29312:10:0","nodeType":"FunctionDefinition","parameters":{"id":934,"nodeType":"ParameterList","parameters":[{"constant":false,"id":931,"mutability":"mutable","name":"artifactPath","nameLocation":"29339:12:0","nodeType":"VariableDeclaration","scope":938,"src":"29323:28:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":930,"name":"string","nodeType":"ElementaryTypeName","src":"29323:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":933,"mutability":"mutable","name":"constructorArgs","nameLocation":"29368:15:0","nodeType":"VariableDeclaration","scope":938,"src":"29353:30:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":932,"name":"bytes","nodeType":"ElementaryTypeName","src":"29353:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"29322:62:0"},"returnParameters":{"id":937,"nodeType":"ParameterList","parameters":[{"constant":false,"id":936,"mutability":"mutable","name":"deployedAddress","nameLocation":"29427:15:0","nodeType":"VariableDeclaration","scope":938,"src":"29419:23:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":935,"name":"address","nodeType":"ElementaryTypeName","src":"29419:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"29418:25:0"},"scope":3388,"src":"29303:141:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":939,"nodeType":"StructuredDocumentation","src":"29450:84:0","text":"Returns true if the given path points to an existing entity, else returns false."},"functionSelector":"261a323e","id":946,"implemented":false,"kind":"function","modifiers":[],"name":"exists","nameLocation":"29548:6:0","nodeType":"FunctionDefinition","parameters":{"id":942,"nodeType":"ParameterList","parameters":[{"constant":false,"id":941,"mutability":"mutable","name":"path","nameLocation":"29571:4:0","nodeType":"VariableDeclaration","scope":946,"src":"29555:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":940,"name":"string","nodeType":"ElementaryTypeName","src":"29555:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"29554:22:0"},"returnParameters":{"id":945,"nodeType":"ParameterList","parameters":[{"constant":false,"id":944,"mutability":"mutable","name":"result","nameLocation":"29600:6:0","nodeType":"VariableDeclaration","scope":946,"src":"29595:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":943,"name":"bool","nodeType":"ElementaryTypeName","src":"29595:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"29594:13:0"},"scope":3388,"src":"29539:69:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":947,"nodeType":"StructuredDocumentation","src":"29614:54:0","text":"Performs a foreign function call via the terminal."},"functionSelector":"89160467","id":955,"implemented":false,"kind":"function","modifiers":[],"name":"ffi","nameLocation":"29682:3:0","nodeType":"FunctionDefinition","parameters":{"id":951,"nodeType":"ParameterList","parameters":[{"constant":false,"id":950,"mutability":"mutable","name":"commandInput","nameLocation":"29704:12:0","nodeType":"VariableDeclaration","scope":955,"src":"29686:30:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_string_calldata_ptr_$dyn_calldata_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":948,"name":"string","nodeType":"ElementaryTypeName","src":"29686:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":949,"nodeType":"ArrayTypeName","src":"29686:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"29685:32:0"},"returnParameters":{"id":954,"nodeType":"ParameterList","parameters":[{"constant":false,"id":953,"mutability":"mutable","name":"result","nameLocation":"29749:6:0","nodeType":"VariableDeclaration","scope":955,"src":"29736:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":952,"name":"bytes","nodeType":"ElementaryTypeName","src":"29736:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"29735:21:0"},"scope":3388,"src":"29673:84:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":956,"nodeType":"StructuredDocumentation","src":"29763:88:0","text":"Given a path, query the file system to get information about a file, directory, etc."},"functionSelector":"af368a08","id":964,"implemented":false,"kind":"function","modifiers":[],"name":"fsMetadata","nameLocation":"29865:10:0","nodeType":"FunctionDefinition","parameters":{"id":959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":958,"mutability":"mutable","name":"path","nameLocation":"29892:4:0","nodeType":"VariableDeclaration","scope":964,"src":"29876:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":957,"name":"string","nodeType":"ElementaryTypeName","src":"29876:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"29875:22:0"},"returnParameters":{"id":963,"nodeType":"ParameterList","parameters":[{"constant":false,"id":962,"mutability":"mutable","name":"metadata","nameLocation":"29939:8:0","nodeType":"VariableDeclaration","scope":964,"src":"29921:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FsMetadata_$98_memory_ptr","typeString":"struct VmSafe.FsMetadata"},"typeName":{"id":961,"nodeType":"UserDefinedTypeName","pathNode":{"id":960,"name":"FsMetadata","nameLocations":["29921:10:0"],"nodeType":"IdentifierPath","referencedDeclaration":98,"src":"29921:10:0"},"referencedDeclaration":98,"src":"29921:10:0","typeDescriptions":{"typeIdentifier":"t_struct$_FsMetadata_$98_storage_ptr","typeString":"struct VmSafe.FsMetadata"}},"visibility":"internal"}],"src":"29920:28:0"},"scope":3388,"src":"29856:93:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":965,"nodeType":"StructuredDocumentation","src":"29955:227:0","text":"Gets the creation bytecode from an artifact file. Takes in the relative path to the json file or the path to the\n artifact in the form of :: where and parts are optional."},"functionSelector":"8d1cc925","id":972,"implemented":false,"kind":"function","modifiers":[],"name":"getCode","nameLocation":"30196:7:0","nodeType":"FunctionDefinition","parameters":{"id":968,"nodeType":"ParameterList","parameters":[{"constant":false,"id":967,"mutability":"mutable","name":"artifactPath","nameLocation":"30220:12:0","nodeType":"VariableDeclaration","scope":972,"src":"30204:28:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":966,"name":"string","nodeType":"ElementaryTypeName","src":"30204:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"30203:30:0"},"returnParameters":{"id":971,"nodeType":"ParameterList","parameters":[{"constant":false,"id":970,"mutability":"mutable","name":"creationBytecode","nameLocation":"30270:16:0","nodeType":"VariableDeclaration","scope":972,"src":"30257:29:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":969,"name":"bytes","nodeType":"ElementaryTypeName","src":"30257:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"30256:31:0"},"scope":3388,"src":"30187:101:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":973,"nodeType":"StructuredDocumentation","src":"30294:227:0","text":"Gets the deployed bytecode from an artifact file. Takes in the relative path to the json file or the path to the\n artifact in the form of :: where and parts are optional."},"functionSelector":"3ebf73b4","id":980,"implemented":false,"kind":"function","modifiers":[],"name":"getDeployedCode","nameLocation":"30535:15:0","nodeType":"FunctionDefinition","parameters":{"id":976,"nodeType":"ParameterList","parameters":[{"constant":false,"id":975,"mutability":"mutable","name":"artifactPath","nameLocation":"30567:12:0","nodeType":"VariableDeclaration","scope":980,"src":"30551:28:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":974,"name":"string","nodeType":"ElementaryTypeName","src":"30551:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"30550:30:0"},"returnParameters":{"id":979,"nodeType":"ParameterList","parameters":[{"constant":false,"id":978,"mutability":"mutable","name":"runtimeBytecode","nameLocation":"30617:15:0","nodeType":"VariableDeclaration","scope":980,"src":"30604:28:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":977,"name":"bytes","nodeType":"ElementaryTypeName","src":"30604:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"30603:30:0"},"scope":3388,"src":"30526:108:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":981,"nodeType":"StructuredDocumentation","src":"30640:95:0","text":"Returns true if the path exists on disk and is pointing at a directory, else returns false."},"functionSelector":"7d15d019","id":988,"implemented":false,"kind":"function","modifiers":[],"name":"isDir","nameLocation":"30749:5:0","nodeType":"FunctionDefinition","parameters":{"id":984,"nodeType":"ParameterList","parameters":[{"constant":false,"id":983,"mutability":"mutable","name":"path","nameLocation":"30771:4:0","nodeType":"VariableDeclaration","scope":988,"src":"30755:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":982,"name":"string","nodeType":"ElementaryTypeName","src":"30755:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"30754:22:0"},"returnParameters":{"id":987,"nodeType":"ParameterList","parameters":[{"constant":false,"id":986,"mutability":"mutable","name":"result","nameLocation":"30800:6:0","nodeType":"VariableDeclaration","scope":988,"src":"30795:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":985,"name":"bool","nodeType":"ElementaryTypeName","src":"30795:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"30794:13:0"},"scope":3388,"src":"30740:68:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":989,"nodeType":"StructuredDocumentation","src":"30814:98:0","text":"Returns true if the path exists on disk and is pointing at a regular file, else returns false."},"functionSelector":"e0eb04d4","id":996,"implemented":false,"kind":"function","modifiers":[],"name":"isFile","nameLocation":"30926:6:0","nodeType":"FunctionDefinition","parameters":{"id":992,"nodeType":"ParameterList","parameters":[{"constant":false,"id":991,"mutability":"mutable","name":"path","nameLocation":"30949:4:0","nodeType":"VariableDeclaration","scope":996,"src":"30933:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":990,"name":"string","nodeType":"ElementaryTypeName","src":"30933:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"30932:22:0"},"returnParameters":{"id":995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":994,"mutability":"mutable","name":"result","nameLocation":"30978:6:0","nodeType":"VariableDeclaration","scope":996,"src":"30973:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":993,"name":"bool","nodeType":"ElementaryTypeName","src":"30973:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"30972:13:0"},"scope":3388,"src":"30917:69:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":997,"nodeType":"StructuredDocumentation","src":"30992:45:0","text":"Get the path of the current project root."},"functionSelector":"d930a0e6","id":1002,"implemented":false,"kind":"function","modifiers":[],"name":"projectRoot","nameLocation":"31051:11:0","nodeType":"FunctionDefinition","parameters":{"id":998,"nodeType":"ParameterList","parameters":[],"src":"31062:2:0"},"returnParameters":{"id":1001,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1000,"mutability":"mutable","name":"path","nameLocation":"31102:4:0","nodeType":"VariableDeclaration","scope":1002,"src":"31088:18:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":999,"name":"string","nodeType":"ElementaryTypeName","src":"31088:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"31087:20:0"},"scope":3388,"src":"31042:66:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1003,"nodeType":"StructuredDocumentation","src":"31114:56:0","text":"Prompts the user for a string value in the terminal."},"functionSelector":"47eaf474","id":1010,"implemented":false,"kind":"function","modifiers":[],"name":"prompt","nameLocation":"31184:6:0","nodeType":"FunctionDefinition","parameters":{"id":1006,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1005,"mutability":"mutable","name":"promptText","nameLocation":"31207:10:0","nodeType":"VariableDeclaration","scope":1010,"src":"31191:26:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1004,"name":"string","nodeType":"ElementaryTypeName","src":"31191:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"31190:28:0"},"returnParameters":{"id":1009,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1008,"mutability":"mutable","name":"input","nameLocation":"31251:5:0","nodeType":"VariableDeclaration","scope":1010,"src":"31237:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1007,"name":"string","nodeType":"ElementaryTypeName","src":"31237:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"31236:21:0"},"scope":3388,"src":"31175:83:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1011,"nodeType":"StructuredDocumentation","src":"31264:52:0","text":"Prompts the user for an address in the terminal."},"functionSelector":"62ee05f4","id":1018,"implemented":false,"kind":"function","modifiers":[],"name":"promptAddress","nameLocation":"31330:13:0","nodeType":"FunctionDefinition","parameters":{"id":1014,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1013,"mutability":"mutable","name":"promptText","nameLocation":"31360:10:0","nodeType":"VariableDeclaration","scope":1018,"src":"31344:26:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1012,"name":"string","nodeType":"ElementaryTypeName","src":"31344:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"31343:28:0"},"returnParameters":{"id":1017,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1016,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1018,"src":"31390:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1015,"name":"address","nodeType":"ElementaryTypeName","src":"31390:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"31389:9:0"},"scope":3388,"src":"31321:78:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1019,"nodeType":"StructuredDocumentation","src":"31405:63:0","text":"Prompts the user for a hidden string value in the terminal."},"functionSelector":"1e279d41","id":1026,"implemented":false,"kind":"function","modifiers":[],"name":"promptSecret","nameLocation":"31482:12:0","nodeType":"FunctionDefinition","parameters":{"id":1022,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1021,"mutability":"mutable","name":"promptText","nameLocation":"31511:10:0","nodeType":"VariableDeclaration","scope":1026,"src":"31495:26:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1020,"name":"string","nodeType":"ElementaryTypeName","src":"31495:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"31494:28:0"},"returnParameters":{"id":1025,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1024,"mutability":"mutable","name":"input","nameLocation":"31555:5:0","nodeType":"VariableDeclaration","scope":1026,"src":"31541:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1023,"name":"string","nodeType":"ElementaryTypeName","src":"31541:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"31540:21:0"},"scope":3388,"src":"31473:89:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1027,"nodeType":"StructuredDocumentation","src":"31568:69:0","text":"Prompts the user for hidden uint256 in the terminal (usually pk)."},"functionSelector":"69ca02b7","id":1034,"implemented":false,"kind":"function","modifiers":[],"name":"promptSecretUint","nameLocation":"31651:16:0","nodeType":"FunctionDefinition","parameters":{"id":1030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1029,"mutability":"mutable","name":"promptText","nameLocation":"31684:10:0","nodeType":"VariableDeclaration","scope":1034,"src":"31668:26:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1028,"name":"string","nodeType":"ElementaryTypeName","src":"31668:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"31667:28:0"},"returnParameters":{"id":1033,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1032,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1034,"src":"31714:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1031,"name":"uint256","nodeType":"ElementaryTypeName","src":"31714:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31713:9:0"},"scope":3388,"src":"31642:81:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1035,"nodeType":"StructuredDocumentation","src":"31729:49:0","text":"Prompts the user for uint256 in the terminal."},"functionSelector":"652fd489","id":1042,"implemented":false,"kind":"function","modifiers":[],"name":"promptUint","nameLocation":"31792:10:0","nodeType":"FunctionDefinition","parameters":{"id":1038,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1037,"mutability":"mutable","name":"promptText","nameLocation":"31819:10:0","nodeType":"VariableDeclaration","scope":1042,"src":"31803:26:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1036,"name":"string","nodeType":"ElementaryTypeName","src":"31803:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"31802:28:0"},"returnParameters":{"id":1041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1040,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1042,"src":"31849:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1039,"name":"uint256","nodeType":"ElementaryTypeName","src":"31849:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31848:9:0"},"scope":3388,"src":"31783:75:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1043,"nodeType":"StructuredDocumentation","src":"31864:237:0","text":"Reads the directory at the given path recursively, up to `maxDepth`.\n `maxDepth` defaults to 1, meaning only the direct children of the given directory will be returned.\n Follows symbolic links if `followLinks` is true."},"functionSelector":"c4bc59e0","id":1052,"implemented":false,"kind":"function","modifiers":[],"name":"readDir","nameLocation":"32115:7:0","nodeType":"FunctionDefinition","parameters":{"id":1046,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1045,"mutability":"mutable","name":"path","nameLocation":"32139:4:0","nodeType":"VariableDeclaration","scope":1052,"src":"32123:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1044,"name":"string","nodeType":"ElementaryTypeName","src":"32123:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"32122:22:0"},"returnParameters":{"id":1051,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1050,"mutability":"mutable","name":"entries","nameLocation":"32186:7:0","nodeType":"VariableDeclaration","scope":1052,"src":"32168:25:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_DirEntry_$82_memory_ptr_$dyn_memory_ptr","typeString":"struct VmSafe.DirEntry[]"},"typeName":{"baseType":{"id":1048,"nodeType":"UserDefinedTypeName","pathNode":{"id":1047,"name":"DirEntry","nameLocations":["32168:8:0"],"nodeType":"IdentifierPath","referencedDeclaration":82,"src":"32168:8:0"},"referencedDeclaration":82,"src":"32168:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_DirEntry_$82_storage_ptr","typeString":"struct VmSafe.DirEntry"}},"id":1049,"nodeType":"ArrayTypeName","src":"32168:10:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_DirEntry_$82_storage_$dyn_storage_ptr","typeString":"struct VmSafe.DirEntry[]"}},"visibility":"internal"}],"src":"32167:27:0"},"scope":3388,"src":"32106:89:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1053,"nodeType":"StructuredDocumentation","src":"32201:26:0","text":"See `readDir(string)`."},"functionSelector":"1497876c","id":1064,"implemented":false,"kind":"function","modifiers":[],"name":"readDir","nameLocation":"32241:7:0","nodeType":"FunctionDefinition","parameters":{"id":1058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1055,"mutability":"mutable","name":"path","nameLocation":"32265:4:0","nodeType":"VariableDeclaration","scope":1064,"src":"32249:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1054,"name":"string","nodeType":"ElementaryTypeName","src":"32249:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1057,"mutability":"mutable","name":"maxDepth","nameLocation":"32278:8:0","nodeType":"VariableDeclaration","scope":1064,"src":"32271:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1056,"name":"uint64","nodeType":"ElementaryTypeName","src":"32271:6:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"32248:39:0"},"returnParameters":{"id":1063,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1062,"mutability":"mutable","name":"entries","nameLocation":"32329:7:0","nodeType":"VariableDeclaration","scope":1064,"src":"32311:25:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_DirEntry_$82_memory_ptr_$dyn_memory_ptr","typeString":"struct VmSafe.DirEntry[]"},"typeName":{"baseType":{"id":1060,"nodeType":"UserDefinedTypeName","pathNode":{"id":1059,"name":"DirEntry","nameLocations":["32311:8:0"],"nodeType":"IdentifierPath","referencedDeclaration":82,"src":"32311:8:0"},"referencedDeclaration":82,"src":"32311:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_DirEntry_$82_storage_ptr","typeString":"struct VmSafe.DirEntry"}},"id":1061,"nodeType":"ArrayTypeName","src":"32311:10:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_DirEntry_$82_storage_$dyn_storage_ptr","typeString":"struct VmSafe.DirEntry[]"}},"visibility":"internal"}],"src":"32310:27:0"},"scope":3388,"src":"32232:106:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1065,"nodeType":"StructuredDocumentation","src":"32344:26:0","text":"See `readDir(string)`."},"functionSelector":"8102d70d","id":1078,"implemented":false,"kind":"function","modifiers":[],"name":"readDir","nameLocation":"32384:7:0","nodeType":"FunctionDefinition","parameters":{"id":1072,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1067,"mutability":"mutable","name":"path","nameLocation":"32408:4:0","nodeType":"VariableDeclaration","scope":1078,"src":"32392:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1066,"name":"string","nodeType":"ElementaryTypeName","src":"32392:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1069,"mutability":"mutable","name":"maxDepth","nameLocation":"32421:8:0","nodeType":"VariableDeclaration","scope":1078,"src":"32414:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1068,"name":"uint64","nodeType":"ElementaryTypeName","src":"32414:6:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":1071,"mutability":"mutable","name":"followLinks","nameLocation":"32436:11:0","nodeType":"VariableDeclaration","scope":1078,"src":"32431:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1070,"name":"bool","nodeType":"ElementaryTypeName","src":"32431:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"32391:57:0"},"returnParameters":{"id":1077,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1076,"mutability":"mutable","name":"entries","nameLocation":"32514:7:0","nodeType":"VariableDeclaration","scope":1078,"src":"32496:25:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_DirEntry_$82_memory_ptr_$dyn_memory_ptr","typeString":"struct VmSafe.DirEntry[]"},"typeName":{"baseType":{"id":1074,"nodeType":"UserDefinedTypeName","pathNode":{"id":1073,"name":"DirEntry","nameLocations":["32496:8:0"],"nodeType":"IdentifierPath","referencedDeclaration":82,"src":"32496:8:0"},"referencedDeclaration":82,"src":"32496:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_DirEntry_$82_storage_ptr","typeString":"struct VmSafe.DirEntry"}},"id":1075,"nodeType":"ArrayTypeName","src":"32496:10:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_DirEntry_$82_storage_$dyn_storage_ptr","typeString":"struct VmSafe.DirEntry[]"}},"visibility":"internal"}],"src":"32495:27:0"},"scope":3388,"src":"32375:148:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1079,"nodeType":"StructuredDocumentation","src":"32529:87:0","text":"Reads the entire content of file to string. `path` is relative to the project root."},"functionSelector":"60f9bb11","id":1086,"implemented":false,"kind":"function","modifiers":[],"name":"readFile","nameLocation":"32630:8:0","nodeType":"FunctionDefinition","parameters":{"id":1082,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1081,"mutability":"mutable","name":"path","nameLocation":"32655:4:0","nodeType":"VariableDeclaration","scope":1086,"src":"32639:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1080,"name":"string","nodeType":"ElementaryTypeName","src":"32639:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"32638:22:0"},"returnParameters":{"id":1085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1084,"mutability":"mutable","name":"data","nameLocation":"32698:4:0","nodeType":"VariableDeclaration","scope":1086,"src":"32684:18:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1083,"name":"string","nodeType":"ElementaryTypeName","src":"32684:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"32683:20:0"},"scope":3388,"src":"32621:83:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1087,"nodeType":"StructuredDocumentation","src":"32710:87:0","text":"Reads the entire content of file as binary. `path` is relative to the project root."},"functionSelector":"16ed7bc4","id":1094,"implemented":false,"kind":"function","modifiers":[],"name":"readFileBinary","nameLocation":"32811:14:0","nodeType":"FunctionDefinition","parameters":{"id":1090,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1089,"mutability":"mutable","name":"path","nameLocation":"32842:4:0","nodeType":"VariableDeclaration","scope":1094,"src":"32826:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1088,"name":"string","nodeType":"ElementaryTypeName","src":"32826:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"32825:22:0"},"returnParameters":{"id":1093,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1092,"mutability":"mutable","name":"data","nameLocation":"32884:4:0","nodeType":"VariableDeclaration","scope":1094,"src":"32871:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1091,"name":"bytes","nodeType":"ElementaryTypeName","src":"32871:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"32870:19:0"},"scope":3388,"src":"32802:88:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1095,"nodeType":"StructuredDocumentation","src":"32896:38:0","text":"Reads next line of file to string."},"functionSelector":"70f55728","id":1102,"implemented":false,"kind":"function","modifiers":[],"name":"readLine","nameLocation":"32948:8:0","nodeType":"FunctionDefinition","parameters":{"id":1098,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1097,"mutability":"mutable","name":"path","nameLocation":"32973:4:0","nodeType":"VariableDeclaration","scope":1102,"src":"32957:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1096,"name":"string","nodeType":"ElementaryTypeName","src":"32957:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"32956:22:0"},"returnParameters":{"id":1101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1100,"mutability":"mutable","name":"line","nameLocation":"33016:4:0","nodeType":"VariableDeclaration","scope":1102,"src":"33002:18:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1099,"name":"string","nodeType":"ElementaryTypeName","src":"33002:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"33001:20:0"},"scope":3388,"src":"32939:83:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1103,"nodeType":"StructuredDocumentation","src":"33028:248:0","text":"Reads a symbolic link, returning the path that the link points to.\n This cheatcode will revert in the following situations, but is not limited to just these cases:\n - `path` is not a symbolic link.\n - `path` does not exist."},"functionSelector":"9f5684a2","id":1110,"implemented":false,"kind":"function","modifiers":[],"name":"readLink","nameLocation":"33290:8:0","nodeType":"FunctionDefinition","parameters":{"id":1106,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1105,"mutability":"mutable","name":"linkPath","nameLocation":"33315:8:0","nodeType":"VariableDeclaration","scope":1110,"src":"33299:24:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1104,"name":"string","nodeType":"ElementaryTypeName","src":"33299:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"33298:26:0"},"returnParameters":{"id":1109,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1108,"mutability":"mutable","name":"targetPath","nameLocation":"33362:10:0","nodeType":"VariableDeclaration","scope":1110,"src":"33348:24:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1107,"name":"string","nodeType":"ElementaryTypeName","src":"33348:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"33347:26:0"},"scope":3388,"src":"33281:93:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1111,"nodeType":"StructuredDocumentation","src":"33380:379:0","text":"Removes a directory at the provided path.\n This cheatcode will revert in the following situations, but is not limited to just these cases:\n - `path` doesn't exist.\n - `path` isn't a directory.\n - User lacks permissions to modify `path`.\n - The directory is not empty and `recursive` is false.\n `path` is relative to the project root."},"functionSelector":"45c62011","id":1118,"implemented":false,"kind":"function","modifiers":[],"name":"removeDir","nameLocation":"33773:9:0","nodeType":"FunctionDefinition","parameters":{"id":1116,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1113,"mutability":"mutable","name":"path","nameLocation":"33799:4:0","nodeType":"VariableDeclaration","scope":1118,"src":"33783:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1112,"name":"string","nodeType":"ElementaryTypeName","src":"33783:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1115,"mutability":"mutable","name":"recursive","nameLocation":"33810:9:0","nodeType":"VariableDeclaration","scope":1118,"src":"33805:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1114,"name":"bool","nodeType":"ElementaryTypeName","src":"33805:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"33782:38:0"},"returnParameters":{"id":1117,"nodeType":"ParameterList","parameters":[],"src":"33829:0:0"},"scope":3388,"src":"33764:66:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1119,"nodeType":"StructuredDocumentation","src":"33836:322:0","text":"Removes a file from the filesystem.\n This cheatcode will revert in the following situations, but is not limited to just these cases:\n - `path` points to a directory.\n - The file doesn't exist.\n - The user lacks permissions to remove the file.\n `path` is relative to the project root."},"functionSelector":"f1afe04d","id":1124,"implemented":false,"kind":"function","modifiers":[],"name":"removeFile","nameLocation":"34172:10:0","nodeType":"FunctionDefinition","parameters":{"id":1122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1121,"mutability":"mutable","name":"path","nameLocation":"34199:4:0","nodeType":"VariableDeclaration","scope":1124,"src":"34183:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1120,"name":"string","nodeType":"ElementaryTypeName","src":"34183:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"34182:22:0"},"returnParameters":{"id":1123,"nodeType":"ParameterList","parameters":[],"src":"34213:0:0"},"scope":3388,"src":"34163:51:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1125,"nodeType":"StructuredDocumentation","src":"34220:96:0","text":"Performs a foreign function call via terminal and returns the exit code, stdout, and stderr."},"functionSelector":"f45c1ce7","id":1134,"implemented":false,"kind":"function","modifiers":[],"name":"tryFfi","nameLocation":"34330:6:0","nodeType":"FunctionDefinition","parameters":{"id":1129,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1128,"mutability":"mutable","name":"commandInput","nameLocation":"34355:12:0","nodeType":"VariableDeclaration","scope":1134,"src":"34337:30:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_string_calldata_ptr_$dyn_calldata_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":1126,"name":"string","nodeType":"ElementaryTypeName","src":"34337:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":1127,"nodeType":"ArrayTypeName","src":"34337:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"34336:32:0"},"returnParameters":{"id":1133,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1132,"mutability":"mutable","name":"result","nameLocation":"34404:6:0","nodeType":"VariableDeclaration","scope":1134,"src":"34387:23:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FfiResult_$116_memory_ptr","typeString":"struct VmSafe.FfiResult"},"typeName":{"id":1131,"nodeType":"UserDefinedTypeName","pathNode":{"id":1130,"name":"FfiResult","nameLocations":["34387:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":116,"src":"34387:9:0"},"referencedDeclaration":116,"src":"34387:9:0","typeDescriptions":{"typeIdentifier":"t_struct$_FfiResult_$116_storage_ptr","typeString":"struct VmSafe.FfiResult"}},"visibility":"internal"}],"src":"34386:25:0"},"scope":3388,"src":"34321:91:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1135,"nodeType":"StructuredDocumentation","src":"34418:54:0","text":"Returns the time since unix epoch in milliseconds."},"functionSelector":"625387dc","id":1140,"implemented":false,"kind":"function","modifiers":[],"name":"unixTime","nameLocation":"34486:8:0","nodeType":"FunctionDefinition","parameters":{"id":1136,"nodeType":"ParameterList","parameters":[],"src":"34494:2:0"},"returnParameters":{"id":1139,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1138,"mutability":"mutable","name":"milliseconds","nameLocation":"34523:12:0","nodeType":"VariableDeclaration","scope":1140,"src":"34515:20:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1137,"name":"uint256","nodeType":"ElementaryTypeName","src":"34515:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34514:22:0"},"scope":3388,"src":"34477:60:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1141,"nodeType":"StructuredDocumentation","src":"34543:158:0","text":"Writes data to file, creating a file if it does not exist, and entirely replacing its contents if it does.\n `path` is relative to the project root."},"functionSelector":"897e0a97","id":1148,"implemented":false,"kind":"function","modifiers":[],"name":"writeFile","nameLocation":"34715:9:0","nodeType":"FunctionDefinition","parameters":{"id":1146,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1143,"mutability":"mutable","name":"path","nameLocation":"34741:4:0","nodeType":"VariableDeclaration","scope":1148,"src":"34725:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1142,"name":"string","nodeType":"ElementaryTypeName","src":"34725:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1145,"mutability":"mutable","name":"data","nameLocation":"34763:4:0","nodeType":"VariableDeclaration","scope":1148,"src":"34747:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1144,"name":"string","nodeType":"ElementaryTypeName","src":"34747:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"34724:44:0"},"returnParameters":{"id":1147,"nodeType":"ParameterList","parameters":[],"src":"34777:0:0"},"scope":3388,"src":"34706:72:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1149,"nodeType":"StructuredDocumentation","src":"34784:167:0","text":"Writes binary data to a file, creating a file if it does not exist, and entirely replacing its contents if it does.\n `path` is relative to the project root."},"functionSelector":"1f21fc80","id":1156,"implemented":false,"kind":"function","modifiers":[],"name":"writeFileBinary","nameLocation":"34965:15:0","nodeType":"FunctionDefinition","parameters":{"id":1154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1151,"mutability":"mutable","name":"path","nameLocation":"34997:4:0","nodeType":"VariableDeclaration","scope":1156,"src":"34981:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1150,"name":"string","nodeType":"ElementaryTypeName","src":"34981:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1153,"mutability":"mutable","name":"data","nameLocation":"35018:4:0","nodeType":"VariableDeclaration","scope":1156,"src":"35003:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1152,"name":"bytes","nodeType":"ElementaryTypeName","src":"35003:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"34980:43:0"},"returnParameters":{"id":1155,"nodeType":"ParameterList","parameters":[],"src":"35032:0:0"},"scope":3388,"src":"34956:77:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1157,"nodeType":"StructuredDocumentation","src":"35039:110:0","text":"Writes line to file, creating a file if it does not exist.\n `path` is relative to the project root."},"functionSelector":"619d897f","id":1164,"implemented":false,"kind":"function","modifiers":[],"name":"writeLine","nameLocation":"35163:9:0","nodeType":"FunctionDefinition","parameters":{"id":1162,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1159,"mutability":"mutable","name":"path","nameLocation":"35189:4:0","nodeType":"VariableDeclaration","scope":1164,"src":"35173:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1158,"name":"string","nodeType":"ElementaryTypeName","src":"35173:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1161,"mutability":"mutable","name":"data","nameLocation":"35211:4:0","nodeType":"VariableDeclaration","scope":1164,"src":"35195:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1160,"name":"string","nodeType":"ElementaryTypeName","src":"35195:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"35172:44:0"},"returnParameters":{"id":1163,"nodeType":"ParameterList","parameters":[],"src":"35225:0:0"},"scope":3388,"src":"35154:72:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1165,"nodeType":"StructuredDocumentation","src":"35263:151:0","text":"Checks if `key` exists in a JSON object\n `keyExists` is being deprecated in favor of `keyExistsJson`. It will be removed in future versions."},"functionSelector":"528a683c","id":1174,"implemented":false,"kind":"function","modifiers":[],"name":"keyExists","nameLocation":"35428:9:0","nodeType":"FunctionDefinition","parameters":{"id":1170,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1167,"mutability":"mutable","name":"json","nameLocation":"35454:4:0","nodeType":"VariableDeclaration","scope":1174,"src":"35438:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1166,"name":"string","nodeType":"ElementaryTypeName","src":"35438:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1169,"mutability":"mutable","name":"key","nameLocation":"35476:3:0","nodeType":"VariableDeclaration","scope":1174,"src":"35460:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1168,"name":"string","nodeType":"ElementaryTypeName","src":"35460:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"35437:43:0"},"returnParameters":{"id":1173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1172,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1174,"src":"35504:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1171,"name":"bool","nodeType":"ElementaryTypeName","src":"35504:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"35503:6:0"},"scope":3388,"src":"35419:91:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1175,"nodeType":"StructuredDocumentation","src":"35516:44:0","text":"Checks if `key` exists in a JSON object."},"functionSelector":"db4235f6","id":1184,"implemented":false,"kind":"function","modifiers":[],"name":"keyExistsJson","nameLocation":"35574:13:0","nodeType":"FunctionDefinition","parameters":{"id":1180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1177,"mutability":"mutable","name":"json","nameLocation":"35604:4:0","nodeType":"VariableDeclaration","scope":1184,"src":"35588:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1176,"name":"string","nodeType":"ElementaryTypeName","src":"35588:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1179,"mutability":"mutable","name":"key","nameLocation":"35626:3:0","nodeType":"VariableDeclaration","scope":1184,"src":"35610:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1178,"name":"string","nodeType":"ElementaryTypeName","src":"35610:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"35587:43:0"},"returnParameters":{"id":1183,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1182,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1184,"src":"35654:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1181,"name":"bool","nodeType":"ElementaryTypeName","src":"35654:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"35653:6:0"},"scope":3388,"src":"35565:95:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1185,"nodeType":"StructuredDocumentation","src":"35666:70:0","text":"Parses a string of JSON data at `key` and coerces it to `address`."},"functionSelector":"1e19e657","id":1194,"implemented":false,"kind":"function","modifiers":[],"name":"parseJsonAddress","nameLocation":"35750:16:0","nodeType":"FunctionDefinition","parameters":{"id":1190,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1187,"mutability":"mutable","name":"json","nameLocation":"35783:4:0","nodeType":"VariableDeclaration","scope":1194,"src":"35767:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1186,"name":"string","nodeType":"ElementaryTypeName","src":"35767:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1189,"mutability":"mutable","name":"key","nameLocation":"35805:3:0","nodeType":"VariableDeclaration","scope":1194,"src":"35789:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1188,"name":"string","nodeType":"ElementaryTypeName","src":"35789:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"35766:43:0"},"returnParameters":{"id":1193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1192,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1194,"src":"35833:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1191,"name":"address","nodeType":"ElementaryTypeName","src":"35833:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"35832:9:0"},"scope":3388,"src":"35741:101:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":1195,"nodeType":"StructuredDocumentation","src":"35848:72:0","text":"Parses a string of JSON data at `key` and coerces it to `address[]`."},"functionSelector":"2fce7883","id":1205,"implemented":false,"kind":"function","modifiers":[],"name":"parseJsonAddressArray","nameLocation":"35934:21:0","nodeType":"FunctionDefinition","parameters":{"id":1200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1197,"mutability":"mutable","name":"json","nameLocation":"35972:4:0","nodeType":"VariableDeclaration","scope":1205,"src":"35956:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1196,"name":"string","nodeType":"ElementaryTypeName","src":"35956:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1199,"mutability":"mutable","name":"key","nameLocation":"35994:3:0","nodeType":"VariableDeclaration","scope":1205,"src":"35978:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1198,"name":"string","nodeType":"ElementaryTypeName","src":"35978:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"35955:43:0"},"returnParameters":{"id":1204,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1203,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1205,"src":"36046:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1201,"name":"address","nodeType":"ElementaryTypeName","src":"36046:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1202,"nodeType":"ArrayTypeName","src":"36046:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"36045:18:0"},"scope":3388,"src":"35925:139:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":1206,"nodeType":"StructuredDocumentation","src":"36070:67:0","text":"Parses a string of JSON data at `key` and coerces it to `bool`."},"functionSelector":"9f86dc91","id":1215,"implemented":false,"kind":"function","modifiers":[],"name":"parseJsonBool","nameLocation":"36151:13:0","nodeType":"FunctionDefinition","parameters":{"id":1211,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1208,"mutability":"mutable","name":"json","nameLocation":"36181:4:0","nodeType":"VariableDeclaration","scope":1215,"src":"36165:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1207,"name":"string","nodeType":"ElementaryTypeName","src":"36165:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1210,"mutability":"mutable","name":"key","nameLocation":"36203:3:0","nodeType":"VariableDeclaration","scope":1215,"src":"36187:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1209,"name":"string","nodeType":"ElementaryTypeName","src":"36187:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"36164:43:0"},"returnParameters":{"id":1214,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1213,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1215,"src":"36231:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1212,"name":"bool","nodeType":"ElementaryTypeName","src":"36231:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"36230:6:0"},"scope":3388,"src":"36142:95:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":1216,"nodeType":"StructuredDocumentation","src":"36243:69:0","text":"Parses a string of JSON data at `key` and coerces it to `bool[]`."},"functionSelector":"91f3b94f","id":1226,"implemented":false,"kind":"function","modifiers":[],"name":"parseJsonBoolArray","nameLocation":"36326:18:0","nodeType":"FunctionDefinition","parameters":{"id":1221,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1218,"mutability":"mutable","name":"json","nameLocation":"36361:4:0","nodeType":"VariableDeclaration","scope":1226,"src":"36345:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1217,"name":"string","nodeType":"ElementaryTypeName","src":"36345:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1220,"mutability":"mutable","name":"key","nameLocation":"36383:3:0","nodeType":"VariableDeclaration","scope":1226,"src":"36367:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1219,"name":"string","nodeType":"ElementaryTypeName","src":"36367:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"36344:43:0"},"returnParameters":{"id":1225,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1224,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1226,"src":"36411:13:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":1222,"name":"bool","nodeType":"ElementaryTypeName","src":"36411:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1223,"nodeType":"ArrayTypeName","src":"36411:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"36410:15:0"},"scope":3388,"src":"36317:109:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":1227,"nodeType":"StructuredDocumentation","src":"36432:68:0","text":"Parses a string of JSON data at `key` and coerces it to `bytes`."},"functionSelector":"fd921be8","id":1236,"implemented":false,"kind":"function","modifiers":[],"name":"parseJsonBytes","nameLocation":"36514:14:0","nodeType":"FunctionDefinition","parameters":{"id":1232,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1229,"mutability":"mutable","name":"json","nameLocation":"36545:4:0","nodeType":"VariableDeclaration","scope":1236,"src":"36529:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1228,"name":"string","nodeType":"ElementaryTypeName","src":"36529:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1231,"mutability":"mutable","name":"key","nameLocation":"36567:3:0","nodeType":"VariableDeclaration","scope":1236,"src":"36551:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1230,"name":"string","nodeType":"ElementaryTypeName","src":"36551:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"36528:43:0"},"returnParameters":{"id":1235,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1234,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1236,"src":"36595:12:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1233,"name":"bytes","nodeType":"ElementaryTypeName","src":"36595:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"36594:14:0"},"scope":3388,"src":"36505:104:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":1237,"nodeType":"StructuredDocumentation","src":"36615:70:0","text":"Parses a string of JSON data at `key` and coerces it to `bytes32`."},"functionSelector":"1777e59d","id":1246,"implemented":false,"kind":"function","modifiers":[],"name":"parseJsonBytes32","nameLocation":"36699:16:0","nodeType":"FunctionDefinition","parameters":{"id":1242,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1239,"mutability":"mutable","name":"json","nameLocation":"36732:4:0","nodeType":"VariableDeclaration","scope":1246,"src":"36716:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1238,"name":"string","nodeType":"ElementaryTypeName","src":"36716:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1241,"mutability":"mutable","name":"key","nameLocation":"36754:3:0","nodeType":"VariableDeclaration","scope":1246,"src":"36738:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1240,"name":"string","nodeType":"ElementaryTypeName","src":"36738:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"36715:43:0"},"returnParameters":{"id":1245,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1244,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1246,"src":"36782:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1243,"name":"bytes32","nodeType":"ElementaryTypeName","src":"36782:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"36781:9:0"},"scope":3388,"src":"36690:101:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":1247,"nodeType":"StructuredDocumentation","src":"36797:72:0","text":"Parses a string of JSON data at `key` and coerces it to `bytes32[]`."},"functionSelector":"91c75bc3","id":1257,"implemented":false,"kind":"function","modifiers":[],"name":"parseJsonBytes32Array","nameLocation":"36883:21:0","nodeType":"FunctionDefinition","parameters":{"id":1252,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1249,"mutability":"mutable","name":"json","nameLocation":"36921:4:0","nodeType":"VariableDeclaration","scope":1257,"src":"36905:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1248,"name":"string","nodeType":"ElementaryTypeName","src":"36905:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1251,"mutability":"mutable","name":"key","nameLocation":"36943:3:0","nodeType":"VariableDeclaration","scope":1257,"src":"36927:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1250,"name":"string","nodeType":"ElementaryTypeName","src":"36927:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"36904:43:0"},"returnParameters":{"id":1256,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1255,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1257,"src":"36995:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":1253,"name":"bytes32","nodeType":"ElementaryTypeName","src":"36995:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1254,"nodeType":"ArrayTypeName","src":"36995:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"36994:18:0"},"scope":3388,"src":"36874:139:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":1258,"nodeType":"StructuredDocumentation","src":"37019:70:0","text":"Parses a string of JSON data at `key` and coerces it to `bytes[]`."},"functionSelector":"6631aa99","id":1268,"implemented":false,"kind":"function","modifiers":[],"name":"parseJsonBytesArray","nameLocation":"37103:19:0","nodeType":"FunctionDefinition","parameters":{"id":1263,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1260,"mutability":"mutable","name":"json","nameLocation":"37139:4:0","nodeType":"VariableDeclaration","scope":1268,"src":"37123:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1259,"name":"string","nodeType":"ElementaryTypeName","src":"37123:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1262,"mutability":"mutable","name":"key","nameLocation":"37161:3:0","nodeType":"VariableDeclaration","scope":1268,"src":"37145:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1261,"name":"string","nodeType":"ElementaryTypeName","src":"37145:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"37122:43:0"},"returnParameters":{"id":1267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1266,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1268,"src":"37189:14:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":1264,"name":"bytes","nodeType":"ElementaryTypeName","src":"37189:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":1265,"nodeType":"ArrayTypeName","src":"37189:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"37188:16:0"},"scope":3388,"src":"37094:111:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":1269,"nodeType":"StructuredDocumentation","src":"37211:69:0","text":"Parses a string of JSON data at `key` and coerces it to `int256`."},"functionSelector":"7b048ccd","id":1278,"implemented":false,"kind":"function","modifiers":[],"name":"parseJsonInt","nameLocation":"37294:12:0","nodeType":"FunctionDefinition","parameters":{"id":1274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1271,"mutability":"mutable","name":"json","nameLocation":"37323:4:0","nodeType":"VariableDeclaration","scope":1278,"src":"37307:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1270,"name":"string","nodeType":"ElementaryTypeName","src":"37307:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1273,"mutability":"mutable","name":"key","nameLocation":"37345:3:0","nodeType":"VariableDeclaration","scope":1278,"src":"37329:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1272,"name":"string","nodeType":"ElementaryTypeName","src":"37329:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"37306:43:0"},"returnParameters":{"id":1277,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1276,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1278,"src":"37373:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1275,"name":"int256","nodeType":"ElementaryTypeName","src":"37373:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"37372:8:0"},"scope":3388,"src":"37285:96:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":1279,"nodeType":"StructuredDocumentation","src":"37387:71:0","text":"Parses a string of JSON data at `key` and coerces it to `int256[]`."},"functionSelector":"9983c28a","id":1289,"implemented":false,"kind":"function","modifiers":[],"name":"parseJsonIntArray","nameLocation":"37472:17:0","nodeType":"FunctionDefinition","parameters":{"id":1284,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1281,"mutability":"mutable","name":"json","nameLocation":"37506:4:0","nodeType":"VariableDeclaration","scope":1289,"src":"37490:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1280,"name":"string","nodeType":"ElementaryTypeName","src":"37490:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1283,"mutability":"mutable","name":"key","nameLocation":"37528:3:0","nodeType":"VariableDeclaration","scope":1289,"src":"37512:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1282,"name":"string","nodeType":"ElementaryTypeName","src":"37512:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"37489:43:0"},"returnParameters":{"id":1288,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1287,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1289,"src":"37556:15:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":1285,"name":"int256","nodeType":"ElementaryTypeName","src":"37556:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":1286,"nodeType":"ArrayTypeName","src":"37556:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"}],"src":"37555:17:0"},"scope":3388,"src":"37463:110:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":1290,"nodeType":"StructuredDocumentation","src":"37579:54:0","text":"Returns an array of all the keys in a JSON object."},"functionSelector":"213e4198","id":1300,"implemented":false,"kind":"function","modifiers":[],"name":"parseJsonKeys","nameLocation":"37647:13:0","nodeType":"FunctionDefinition","parameters":{"id":1295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1292,"mutability":"mutable","name":"json","nameLocation":"37677:4:0","nodeType":"VariableDeclaration","scope":1300,"src":"37661:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1291,"name":"string","nodeType":"ElementaryTypeName","src":"37661:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1294,"mutability":"mutable","name":"key","nameLocation":"37699:3:0","nodeType":"VariableDeclaration","scope":1300,"src":"37683:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1293,"name":"string","nodeType":"ElementaryTypeName","src":"37683:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"37660:43:0"},"returnParameters":{"id":1299,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1298,"mutability":"mutable","name":"keys","nameLocation":"37743:4:0","nodeType":"VariableDeclaration","scope":1300,"src":"37727:20:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":1296,"name":"string","nodeType":"ElementaryTypeName","src":"37727:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":1297,"nodeType":"ArrayTypeName","src":"37727:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"37726:22:0"},"scope":3388,"src":"37638:111:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":1301,"nodeType":"StructuredDocumentation","src":"37755:69:0","text":"Parses a string of JSON data at `key` and coerces it to `string`."},"functionSelector":"49c4fac8","id":1310,"implemented":false,"kind":"function","modifiers":[],"name":"parseJsonString","nameLocation":"37838:15:0","nodeType":"FunctionDefinition","parameters":{"id":1306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1303,"mutability":"mutable","name":"json","nameLocation":"37870:4:0","nodeType":"VariableDeclaration","scope":1310,"src":"37854:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1302,"name":"string","nodeType":"ElementaryTypeName","src":"37854:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1305,"mutability":"mutable","name":"key","nameLocation":"37892:3:0","nodeType":"VariableDeclaration","scope":1310,"src":"37876:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1304,"name":"string","nodeType":"ElementaryTypeName","src":"37876:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"37853:43:0"},"returnParameters":{"id":1309,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1308,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1310,"src":"37920:13:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1307,"name":"string","nodeType":"ElementaryTypeName","src":"37920:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"37919:15:0"},"scope":3388,"src":"37829:106:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":1311,"nodeType":"StructuredDocumentation","src":"37941:71:0","text":"Parses a string of JSON data at `key` and coerces it to `string[]`."},"functionSelector":"498fdcf4","id":1321,"implemented":false,"kind":"function","modifiers":[],"name":"parseJsonStringArray","nameLocation":"38026:20:0","nodeType":"FunctionDefinition","parameters":{"id":1316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1313,"mutability":"mutable","name":"json","nameLocation":"38063:4:0","nodeType":"VariableDeclaration","scope":1321,"src":"38047:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1312,"name":"string","nodeType":"ElementaryTypeName","src":"38047:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1315,"mutability":"mutable","name":"key","nameLocation":"38085:3:0","nodeType":"VariableDeclaration","scope":1321,"src":"38069:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1314,"name":"string","nodeType":"ElementaryTypeName","src":"38069:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"38046:43:0"},"returnParameters":{"id":1320,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1319,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1321,"src":"38113:15:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":1317,"name":"string","nodeType":"ElementaryTypeName","src":"38113:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":1318,"nodeType":"ArrayTypeName","src":"38113:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"38112:17:0"},"scope":3388,"src":"38017:113:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":1322,"nodeType":"StructuredDocumentation","src":"38136:106:0","text":"Parses a string of JSON data at `key` and coerces it to type array corresponding to `typeDescription`."},"functionSelector":"0175d535","id":1333,"implemented":false,"kind":"function","modifiers":[],"name":"parseJsonTypeArray","nameLocation":"38256:18:0","nodeType":"FunctionDefinition","parameters":{"id":1329,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1324,"mutability":"mutable","name":"json","nameLocation":"38291:4:0","nodeType":"VariableDeclaration","scope":1333,"src":"38275:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1323,"name":"string","nodeType":"ElementaryTypeName","src":"38275:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1326,"mutability":"mutable","name":"key","nameLocation":"38313:3:0","nodeType":"VariableDeclaration","scope":1333,"src":"38297:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1325,"name":"string","nodeType":"ElementaryTypeName","src":"38297:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1328,"mutability":"mutable","name":"typeDescription","nameLocation":"38334:15:0","nodeType":"VariableDeclaration","scope":1333,"src":"38318:31:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1327,"name":"string","nodeType":"ElementaryTypeName","src":"38318:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"38274:76:0"},"returnParameters":{"id":1332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1331,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1333,"src":"38398:12:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1330,"name":"bytes","nodeType":"ElementaryTypeName","src":"38398:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"38397:14:0"},"scope":3388,"src":"38247:165:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":1334,"nodeType":"StructuredDocumentation","src":"38418:91:0","text":"Parses a string of JSON data and coerces it to type corresponding to `typeDescription`."},"functionSelector":"a9da313b","id":1343,"implemented":false,"kind":"function","modifiers":[],"name":"parseJsonType","nameLocation":"38523:13:0","nodeType":"FunctionDefinition","parameters":{"id":1339,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1336,"mutability":"mutable","name":"json","nameLocation":"38553:4:0","nodeType":"VariableDeclaration","scope":1343,"src":"38537:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1335,"name":"string","nodeType":"ElementaryTypeName","src":"38537:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1338,"mutability":"mutable","name":"typeDescription","nameLocation":"38575:15:0","nodeType":"VariableDeclaration","scope":1343,"src":"38559:31:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1337,"name":"string","nodeType":"ElementaryTypeName","src":"38559:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"38536:55:0"},"returnParameters":{"id":1342,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1341,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1343,"src":"38639:12:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1340,"name":"bytes","nodeType":"ElementaryTypeName","src":"38639:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"38638:14:0"},"scope":3388,"src":"38514:139:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":1344,"nodeType":"StructuredDocumentation","src":"38659:100:0","text":"Parses a string of JSON data at `key` and coerces it to type corresponding to `typeDescription`."},"functionSelector":"e3f5ae33","id":1355,"implemented":false,"kind":"function","modifiers":[],"name":"parseJsonType","nameLocation":"38773:13:0","nodeType":"FunctionDefinition","parameters":{"id":1351,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1346,"mutability":"mutable","name":"json","nameLocation":"38803:4:0","nodeType":"VariableDeclaration","scope":1355,"src":"38787:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1345,"name":"string","nodeType":"ElementaryTypeName","src":"38787:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1348,"mutability":"mutable","name":"key","nameLocation":"38825:3:0","nodeType":"VariableDeclaration","scope":1355,"src":"38809:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1347,"name":"string","nodeType":"ElementaryTypeName","src":"38809:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1350,"mutability":"mutable","name":"typeDescription","nameLocation":"38846:15:0","nodeType":"VariableDeclaration","scope":1355,"src":"38830:31:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1349,"name":"string","nodeType":"ElementaryTypeName","src":"38830:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"38786:76:0"},"returnParameters":{"id":1354,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1353,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1355,"src":"38910:12:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1352,"name":"bytes","nodeType":"ElementaryTypeName","src":"38910:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"38909:14:0"},"scope":3388,"src":"38764:160:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":1356,"nodeType":"StructuredDocumentation","src":"38930:70:0","text":"Parses a string of JSON data at `key` and coerces it to `uint256`."},"functionSelector":"addde2b6","id":1365,"implemented":false,"kind":"function","modifiers":[],"name":"parseJsonUint","nameLocation":"39014:13:0","nodeType":"FunctionDefinition","parameters":{"id":1361,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1358,"mutability":"mutable","name":"json","nameLocation":"39044:4:0","nodeType":"VariableDeclaration","scope":1365,"src":"39028:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1357,"name":"string","nodeType":"ElementaryTypeName","src":"39028:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1360,"mutability":"mutable","name":"key","nameLocation":"39066:3:0","nodeType":"VariableDeclaration","scope":1365,"src":"39050:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1359,"name":"string","nodeType":"ElementaryTypeName","src":"39050:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"39027:43:0"},"returnParameters":{"id":1364,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1363,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1365,"src":"39094:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1362,"name":"uint256","nodeType":"ElementaryTypeName","src":"39094:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39093:9:0"},"scope":3388,"src":"39005:98:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":1366,"nodeType":"StructuredDocumentation","src":"39109:72:0","text":"Parses a string of JSON data at `key` and coerces it to `uint256[]`."},"functionSelector":"522074ab","id":1376,"implemented":false,"kind":"function","modifiers":[],"name":"parseJsonUintArray","nameLocation":"39195:18:0","nodeType":"FunctionDefinition","parameters":{"id":1371,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1368,"mutability":"mutable","name":"json","nameLocation":"39230:4:0","nodeType":"VariableDeclaration","scope":1376,"src":"39214:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1367,"name":"string","nodeType":"ElementaryTypeName","src":"39214:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1370,"mutability":"mutable","name":"key","nameLocation":"39252:3:0","nodeType":"VariableDeclaration","scope":1376,"src":"39236:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1369,"name":"string","nodeType":"ElementaryTypeName","src":"39236:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"39213:43:0"},"returnParameters":{"id":1375,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1374,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1376,"src":"39280:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1372,"name":"uint256","nodeType":"ElementaryTypeName","src":"39280:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1373,"nodeType":"ArrayTypeName","src":"39280:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"39279:18:0"},"scope":3388,"src":"39186:112:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":1377,"nodeType":"StructuredDocumentation","src":"39304:30:0","text":"ABI-encodes a JSON object."},"functionSelector":"6a82600a","id":1384,"implemented":false,"kind":"function","modifiers":[],"name":"parseJson","nameLocation":"39348:9:0","nodeType":"FunctionDefinition","parameters":{"id":1380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1379,"mutability":"mutable","name":"json","nameLocation":"39374:4:0","nodeType":"VariableDeclaration","scope":1384,"src":"39358:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1378,"name":"string","nodeType":"ElementaryTypeName","src":"39358:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"39357:22:0"},"returnParameters":{"id":1383,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1382,"mutability":"mutable","name":"abiEncodedData","nameLocation":"39416:14:0","nodeType":"VariableDeclaration","scope":1384,"src":"39403:27:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1381,"name":"bytes","nodeType":"ElementaryTypeName","src":"39403:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"39402:29:0"},"scope":3388,"src":"39339:93:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":1385,"nodeType":"StructuredDocumentation","src":"39438:39:0","text":"ABI-encodes a JSON object at `key`."},"functionSelector":"85940ef1","id":1394,"implemented":false,"kind":"function","modifiers":[],"name":"parseJson","nameLocation":"39491:9:0","nodeType":"FunctionDefinition","parameters":{"id":1390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1387,"mutability":"mutable","name":"json","nameLocation":"39517:4:0","nodeType":"VariableDeclaration","scope":1394,"src":"39501:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1386,"name":"string","nodeType":"ElementaryTypeName","src":"39501:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1389,"mutability":"mutable","name":"key","nameLocation":"39539:3:0","nodeType":"VariableDeclaration","scope":1394,"src":"39523:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1388,"name":"string","nodeType":"ElementaryTypeName","src":"39523:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"39500:43:0"},"returnParameters":{"id":1393,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1392,"mutability":"mutable","name":"abiEncodedData","nameLocation":"39580:14:0","nodeType":"VariableDeclaration","scope":1394,"src":"39567:27:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1391,"name":"bytes","nodeType":"ElementaryTypeName","src":"39567:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"39566:29:0"},"scope":3388,"src":"39482:114:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":1395,"nodeType":"StructuredDocumentation","src":"39602:24:0","text":"See `serializeJson`."},"functionSelector":"972c6062","id":1406,"implemented":false,"kind":"function","modifiers":[],"name":"serializeAddress","nameLocation":"39640:16:0","nodeType":"FunctionDefinition","parameters":{"id":1402,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1397,"mutability":"mutable","name":"objectKey","nameLocation":"39673:9:0","nodeType":"VariableDeclaration","scope":1406,"src":"39657:25:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1396,"name":"string","nodeType":"ElementaryTypeName","src":"39657:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1399,"mutability":"mutable","name":"valueKey","nameLocation":"39700:8:0","nodeType":"VariableDeclaration","scope":1406,"src":"39684:24:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1398,"name":"string","nodeType":"ElementaryTypeName","src":"39684:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1401,"mutability":"mutable","name":"value","nameLocation":"39718:5:0","nodeType":"VariableDeclaration","scope":1406,"src":"39710:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1400,"name":"address","nodeType":"ElementaryTypeName","src":"39710:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"39656:68:0"},"returnParameters":{"id":1405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1404,"mutability":"mutable","name":"json","nameLocation":"39773:4:0","nodeType":"VariableDeclaration","scope":1406,"src":"39759:18:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1403,"name":"string","nodeType":"ElementaryTypeName","src":"39759:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"39758:20:0"},"scope":3388,"src":"39631:148:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1407,"nodeType":"StructuredDocumentation","src":"39785:24:0","text":"See `serializeJson`."},"functionSelector":"1e356e1a","id":1419,"implemented":false,"kind":"function","modifiers":[],"name":"serializeAddress","nameLocation":"39823:16:0","nodeType":"FunctionDefinition","parameters":{"id":1415,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1409,"mutability":"mutable","name":"objectKey","nameLocation":"39856:9:0","nodeType":"VariableDeclaration","scope":1419,"src":"39840:25:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1408,"name":"string","nodeType":"ElementaryTypeName","src":"39840:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1411,"mutability":"mutable","name":"valueKey","nameLocation":"39883:8:0","nodeType":"VariableDeclaration","scope":1419,"src":"39867:24:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1410,"name":"string","nodeType":"ElementaryTypeName","src":"39867:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1414,"mutability":"mutable","name":"values","nameLocation":"39912:6:0","nodeType":"VariableDeclaration","scope":1419,"src":"39893:25:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1412,"name":"address","nodeType":"ElementaryTypeName","src":"39893:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1413,"nodeType":"ArrayTypeName","src":"39893:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"39839:80:0"},"returnParameters":{"id":1418,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1417,"mutability":"mutable","name":"json","nameLocation":"39968:4:0","nodeType":"VariableDeclaration","scope":1419,"src":"39954:18:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1416,"name":"string","nodeType":"ElementaryTypeName","src":"39954:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"39953:20:0"},"scope":3388,"src":"39814:160:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1420,"nodeType":"StructuredDocumentation","src":"39980:24:0","text":"See `serializeJson`."},"functionSelector":"ac22e971","id":1431,"implemented":false,"kind":"function","modifiers":[],"name":"serializeBool","nameLocation":"40018:13:0","nodeType":"FunctionDefinition","parameters":{"id":1427,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1422,"mutability":"mutable","name":"objectKey","nameLocation":"40048:9:0","nodeType":"VariableDeclaration","scope":1431,"src":"40032:25:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1421,"name":"string","nodeType":"ElementaryTypeName","src":"40032:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1424,"mutability":"mutable","name":"valueKey","nameLocation":"40075:8:0","nodeType":"VariableDeclaration","scope":1431,"src":"40059:24:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1423,"name":"string","nodeType":"ElementaryTypeName","src":"40059:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1426,"mutability":"mutable","name":"value","nameLocation":"40090:5:0","nodeType":"VariableDeclaration","scope":1431,"src":"40085:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1425,"name":"bool","nodeType":"ElementaryTypeName","src":"40085:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"40031:65:0"},"returnParameters":{"id":1430,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1429,"mutability":"mutable","name":"json","nameLocation":"40145:4:0","nodeType":"VariableDeclaration","scope":1431,"src":"40131:18:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1428,"name":"string","nodeType":"ElementaryTypeName","src":"40131:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"40130:20:0"},"scope":3388,"src":"40009:142:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1432,"nodeType":"StructuredDocumentation","src":"40157:24:0","text":"See `serializeJson`."},"functionSelector":"92925aa1","id":1444,"implemented":false,"kind":"function","modifiers":[],"name":"serializeBool","nameLocation":"40195:13:0","nodeType":"FunctionDefinition","parameters":{"id":1440,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1434,"mutability":"mutable","name":"objectKey","nameLocation":"40225:9:0","nodeType":"VariableDeclaration","scope":1444,"src":"40209:25:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1433,"name":"string","nodeType":"ElementaryTypeName","src":"40209:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1436,"mutability":"mutable","name":"valueKey","nameLocation":"40252:8:0","nodeType":"VariableDeclaration","scope":1444,"src":"40236:24:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1435,"name":"string","nodeType":"ElementaryTypeName","src":"40236:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1439,"mutability":"mutable","name":"values","nameLocation":"40278:6:0","nodeType":"VariableDeclaration","scope":1444,"src":"40262:22:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":1437,"name":"bool","nodeType":"ElementaryTypeName","src":"40262:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1438,"nodeType":"ArrayTypeName","src":"40262:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"40208:77:0"},"returnParameters":{"id":1443,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1442,"mutability":"mutable","name":"json","nameLocation":"40334:4:0","nodeType":"VariableDeclaration","scope":1444,"src":"40320:18:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1441,"name":"string","nodeType":"ElementaryTypeName","src":"40320:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"40319:20:0"},"scope":3388,"src":"40186:154:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1445,"nodeType":"StructuredDocumentation","src":"40346:24:0","text":"See `serializeJson`."},"functionSelector":"2d812b44","id":1456,"implemented":false,"kind":"function","modifiers":[],"name":"serializeBytes32","nameLocation":"40384:16:0","nodeType":"FunctionDefinition","parameters":{"id":1452,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1447,"mutability":"mutable","name":"objectKey","nameLocation":"40417:9:0","nodeType":"VariableDeclaration","scope":1456,"src":"40401:25:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1446,"name":"string","nodeType":"ElementaryTypeName","src":"40401:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1449,"mutability":"mutable","name":"valueKey","nameLocation":"40444:8:0","nodeType":"VariableDeclaration","scope":1456,"src":"40428:24:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1448,"name":"string","nodeType":"ElementaryTypeName","src":"40428:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1451,"mutability":"mutable","name":"value","nameLocation":"40462:5:0","nodeType":"VariableDeclaration","scope":1456,"src":"40454:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1450,"name":"bytes32","nodeType":"ElementaryTypeName","src":"40454:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"40400:68:0"},"returnParameters":{"id":1455,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1454,"mutability":"mutable","name":"json","nameLocation":"40517:4:0","nodeType":"VariableDeclaration","scope":1456,"src":"40503:18:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1453,"name":"string","nodeType":"ElementaryTypeName","src":"40503:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"40502:20:0"},"scope":3388,"src":"40375:148:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1457,"nodeType":"StructuredDocumentation","src":"40529:24:0","text":"See `serializeJson`."},"functionSelector":"201e43e2","id":1469,"implemented":false,"kind":"function","modifiers":[],"name":"serializeBytes32","nameLocation":"40567:16:0","nodeType":"FunctionDefinition","parameters":{"id":1465,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1459,"mutability":"mutable","name":"objectKey","nameLocation":"40600:9:0","nodeType":"VariableDeclaration","scope":1469,"src":"40584:25:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1458,"name":"string","nodeType":"ElementaryTypeName","src":"40584:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1461,"mutability":"mutable","name":"valueKey","nameLocation":"40627:8:0","nodeType":"VariableDeclaration","scope":1469,"src":"40611:24:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1460,"name":"string","nodeType":"ElementaryTypeName","src":"40611:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1464,"mutability":"mutable","name":"values","nameLocation":"40656:6:0","nodeType":"VariableDeclaration","scope":1469,"src":"40637:25:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":1462,"name":"bytes32","nodeType":"ElementaryTypeName","src":"40637:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1463,"nodeType":"ArrayTypeName","src":"40637:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"40583:80:0"},"returnParameters":{"id":1468,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1467,"mutability":"mutable","name":"json","nameLocation":"40712:4:0","nodeType":"VariableDeclaration","scope":1469,"src":"40698:18:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1466,"name":"string","nodeType":"ElementaryTypeName","src":"40698:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"40697:20:0"},"scope":3388,"src":"40558:160:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1470,"nodeType":"StructuredDocumentation","src":"40724:24:0","text":"See `serializeJson`."},"functionSelector":"f21d52c7","id":1481,"implemented":false,"kind":"function","modifiers":[],"name":"serializeBytes","nameLocation":"40762:14:0","nodeType":"FunctionDefinition","parameters":{"id":1477,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1472,"mutability":"mutable","name":"objectKey","nameLocation":"40793:9:0","nodeType":"VariableDeclaration","scope":1481,"src":"40777:25:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1471,"name":"string","nodeType":"ElementaryTypeName","src":"40777:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1474,"mutability":"mutable","name":"valueKey","nameLocation":"40820:8:0","nodeType":"VariableDeclaration","scope":1481,"src":"40804:24:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1473,"name":"string","nodeType":"ElementaryTypeName","src":"40804:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1476,"mutability":"mutable","name":"value","nameLocation":"40845:5:0","nodeType":"VariableDeclaration","scope":1481,"src":"40830:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1475,"name":"bytes","nodeType":"ElementaryTypeName","src":"40830:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"40776:75:0"},"returnParameters":{"id":1480,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1479,"mutability":"mutable","name":"json","nameLocation":"40900:4:0","nodeType":"VariableDeclaration","scope":1481,"src":"40886:18:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1478,"name":"string","nodeType":"ElementaryTypeName","src":"40886:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"40885:20:0"},"scope":3388,"src":"40753:153:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1482,"nodeType":"StructuredDocumentation","src":"40912:24:0","text":"See `serializeJson`."},"functionSelector":"9884b232","id":1494,"implemented":false,"kind":"function","modifiers":[],"name":"serializeBytes","nameLocation":"40950:14:0","nodeType":"FunctionDefinition","parameters":{"id":1490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1484,"mutability":"mutable","name":"objectKey","nameLocation":"40981:9:0","nodeType":"VariableDeclaration","scope":1494,"src":"40965:25:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1483,"name":"string","nodeType":"ElementaryTypeName","src":"40965:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1486,"mutability":"mutable","name":"valueKey","nameLocation":"41008:8:0","nodeType":"VariableDeclaration","scope":1494,"src":"40992:24:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1485,"name":"string","nodeType":"ElementaryTypeName","src":"40992:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1489,"mutability":"mutable","name":"values","nameLocation":"41035:6:0","nodeType":"VariableDeclaration","scope":1494,"src":"41018:23:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":1487,"name":"bytes","nodeType":"ElementaryTypeName","src":"41018:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":1488,"nodeType":"ArrayTypeName","src":"41018:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"40964:78:0"},"returnParameters":{"id":1493,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1492,"mutability":"mutable","name":"json","nameLocation":"41091:4:0","nodeType":"VariableDeclaration","scope":1494,"src":"41077:18:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1491,"name":"string","nodeType":"ElementaryTypeName","src":"41077:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"41076:20:0"},"scope":3388,"src":"40941:156:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1495,"nodeType":"StructuredDocumentation","src":"41103:24:0","text":"See `serializeJson`."},"functionSelector":"3f33db60","id":1506,"implemented":false,"kind":"function","modifiers":[],"name":"serializeInt","nameLocation":"41141:12:0","nodeType":"FunctionDefinition","parameters":{"id":1502,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1497,"mutability":"mutable","name":"objectKey","nameLocation":"41170:9:0","nodeType":"VariableDeclaration","scope":1506,"src":"41154:25:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1496,"name":"string","nodeType":"ElementaryTypeName","src":"41154:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1499,"mutability":"mutable","name":"valueKey","nameLocation":"41197:8:0","nodeType":"VariableDeclaration","scope":1506,"src":"41181:24:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1498,"name":"string","nodeType":"ElementaryTypeName","src":"41181:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1501,"mutability":"mutable","name":"value","nameLocation":"41214:5:0","nodeType":"VariableDeclaration","scope":1506,"src":"41207:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1500,"name":"int256","nodeType":"ElementaryTypeName","src":"41207:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"41153:67:0"},"returnParameters":{"id":1505,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1504,"mutability":"mutable","name":"json","nameLocation":"41269:4:0","nodeType":"VariableDeclaration","scope":1506,"src":"41255:18:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1503,"name":"string","nodeType":"ElementaryTypeName","src":"41255:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"41254:20:0"},"scope":3388,"src":"41132:143:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1507,"nodeType":"StructuredDocumentation","src":"41281:24:0","text":"See `serializeJson`."},"functionSelector":"7676e127","id":1519,"implemented":false,"kind":"function","modifiers":[],"name":"serializeInt","nameLocation":"41319:12:0","nodeType":"FunctionDefinition","parameters":{"id":1515,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1509,"mutability":"mutable","name":"objectKey","nameLocation":"41348:9:0","nodeType":"VariableDeclaration","scope":1519,"src":"41332:25:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1508,"name":"string","nodeType":"ElementaryTypeName","src":"41332:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1511,"mutability":"mutable","name":"valueKey","nameLocation":"41375:8:0","nodeType":"VariableDeclaration","scope":1519,"src":"41359:24:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1510,"name":"string","nodeType":"ElementaryTypeName","src":"41359:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1514,"mutability":"mutable","name":"values","nameLocation":"41403:6:0","nodeType":"VariableDeclaration","scope":1519,"src":"41385:24:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_calldata_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":1512,"name":"int256","nodeType":"ElementaryTypeName","src":"41385:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":1513,"nodeType":"ArrayTypeName","src":"41385:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"}],"src":"41331:79:0"},"returnParameters":{"id":1518,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1517,"mutability":"mutable","name":"json","nameLocation":"41459:4:0","nodeType":"VariableDeclaration","scope":1519,"src":"41445:18:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1516,"name":"string","nodeType":"ElementaryTypeName","src":"41445:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"41444:20:0"},"scope":3388,"src":"41310:155:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1520,"nodeType":"StructuredDocumentation","src":"41471:186:0","text":"Serializes a key and value to a JSON object stored in-memory that can be later written to a file.\n Returns the stringified version of the specific JSON file up to that moment."},"functionSelector":"9b3358b0","id":1529,"implemented":false,"kind":"function","modifiers":[],"name":"serializeJson","nameLocation":"41671:13:0","nodeType":"FunctionDefinition","parameters":{"id":1525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1522,"mutability":"mutable","name":"objectKey","nameLocation":"41701:9:0","nodeType":"VariableDeclaration","scope":1529,"src":"41685:25:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1521,"name":"string","nodeType":"ElementaryTypeName","src":"41685:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1524,"mutability":"mutable","name":"value","nameLocation":"41728:5:0","nodeType":"VariableDeclaration","scope":1529,"src":"41712:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1523,"name":"string","nodeType":"ElementaryTypeName","src":"41712:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"41684:50:0"},"returnParameters":{"id":1528,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1527,"mutability":"mutable","name":"json","nameLocation":"41767:4:0","nodeType":"VariableDeclaration","scope":1529,"src":"41753:18:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1526,"name":"string","nodeType":"ElementaryTypeName","src":"41753:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"41752:20:0"},"scope":3388,"src":"41662:111:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1530,"nodeType":"StructuredDocumentation","src":"41779:24:0","text":"See `serializeJson`."},"functionSelector":"6d4f96a6","id":1539,"implemented":false,"kind":"function","modifiers":[],"name":"serializeJsonType","nameLocation":"41817:17:0","nodeType":"FunctionDefinition","parameters":{"id":1535,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1532,"mutability":"mutable","name":"typeDescription","nameLocation":"41851:15:0","nodeType":"VariableDeclaration","scope":1539,"src":"41835:31:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1531,"name":"string","nodeType":"ElementaryTypeName","src":"41835:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1534,"mutability":"mutable","name":"value","nameLocation":"41883:5:0","nodeType":"VariableDeclaration","scope":1539,"src":"41868:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1533,"name":"bytes","nodeType":"ElementaryTypeName","src":"41868:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"41834:55:0"},"returnParameters":{"id":1538,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1537,"mutability":"mutable","name":"json","nameLocation":"41951:4:0","nodeType":"VariableDeclaration","scope":1539,"src":"41937:18:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1536,"name":"string","nodeType":"ElementaryTypeName","src":"41937:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"41936:20:0"},"scope":3388,"src":"41808:149:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":1540,"nodeType":"StructuredDocumentation","src":"41963:24:0","text":"See `serializeJson`."},"functionSelector":"6f93bccb","id":1553,"implemented":false,"kind":"function","modifiers":[],"name":"serializeJsonType","nameLocation":"42001:17:0","nodeType":"FunctionDefinition","parameters":{"id":1549,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1542,"mutability":"mutable","name":"objectKey","nameLocation":"42044:9:0","nodeType":"VariableDeclaration","scope":1553,"src":"42028:25:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1541,"name":"string","nodeType":"ElementaryTypeName","src":"42028:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1544,"mutability":"mutable","name":"valueKey","nameLocation":"42079:8:0","nodeType":"VariableDeclaration","scope":1553,"src":"42063:24:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1543,"name":"string","nodeType":"ElementaryTypeName","src":"42063:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1546,"mutability":"mutable","name":"typeDescription","nameLocation":"42113:15:0","nodeType":"VariableDeclaration","scope":1553,"src":"42097:31:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1545,"name":"string","nodeType":"ElementaryTypeName","src":"42097:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1548,"mutability":"mutable","name":"value","nameLocation":"42153:5:0","nodeType":"VariableDeclaration","scope":1553,"src":"42138:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1547,"name":"bytes","nodeType":"ElementaryTypeName","src":"42138:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"42018:146:0"},"returnParameters":{"id":1552,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1551,"mutability":"mutable","name":"json","nameLocation":"42197:4:0","nodeType":"VariableDeclaration","scope":1553,"src":"42183:18:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1550,"name":"string","nodeType":"ElementaryTypeName","src":"42183:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"42182:20:0"},"scope":3388,"src":"41992:211:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1554,"nodeType":"StructuredDocumentation","src":"42209:24:0","text":"See `serializeJson`."},"functionSelector":"88da6d35","id":1565,"implemented":false,"kind":"function","modifiers":[],"name":"serializeString","nameLocation":"42247:15:0","nodeType":"FunctionDefinition","parameters":{"id":1561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1556,"mutability":"mutable","name":"objectKey","nameLocation":"42279:9:0","nodeType":"VariableDeclaration","scope":1565,"src":"42263:25:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1555,"name":"string","nodeType":"ElementaryTypeName","src":"42263:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1558,"mutability":"mutable","name":"valueKey","nameLocation":"42306:8:0","nodeType":"VariableDeclaration","scope":1565,"src":"42290:24:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1557,"name":"string","nodeType":"ElementaryTypeName","src":"42290:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1560,"mutability":"mutable","name":"value","nameLocation":"42332:5:0","nodeType":"VariableDeclaration","scope":1565,"src":"42316:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1559,"name":"string","nodeType":"ElementaryTypeName","src":"42316:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"42262:76:0"},"returnParameters":{"id":1564,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1563,"mutability":"mutable","name":"json","nameLocation":"42387:4:0","nodeType":"VariableDeclaration","scope":1565,"src":"42373:18:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1562,"name":"string","nodeType":"ElementaryTypeName","src":"42373:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"42372:20:0"},"scope":3388,"src":"42238:155:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1566,"nodeType":"StructuredDocumentation","src":"42399:24:0","text":"See `serializeJson`."},"functionSelector":"561cd6f3","id":1578,"implemented":false,"kind":"function","modifiers":[],"name":"serializeString","nameLocation":"42437:15:0","nodeType":"FunctionDefinition","parameters":{"id":1574,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1568,"mutability":"mutable","name":"objectKey","nameLocation":"42469:9:0","nodeType":"VariableDeclaration","scope":1578,"src":"42453:25:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1567,"name":"string","nodeType":"ElementaryTypeName","src":"42453:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1570,"mutability":"mutable","name":"valueKey","nameLocation":"42496:8:0","nodeType":"VariableDeclaration","scope":1578,"src":"42480:24:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1569,"name":"string","nodeType":"ElementaryTypeName","src":"42480:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1573,"mutability":"mutable","name":"values","nameLocation":"42524:6:0","nodeType":"VariableDeclaration","scope":1578,"src":"42506:24:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_string_calldata_ptr_$dyn_calldata_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":1571,"name":"string","nodeType":"ElementaryTypeName","src":"42506:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":1572,"nodeType":"ArrayTypeName","src":"42506:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"42452:79:0"},"returnParameters":{"id":1577,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1576,"mutability":"mutable","name":"json","nameLocation":"42580:4:0","nodeType":"VariableDeclaration","scope":1578,"src":"42566:18:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1575,"name":"string","nodeType":"ElementaryTypeName","src":"42566:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"42565:20:0"},"scope":3388,"src":"42428:158:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1579,"nodeType":"StructuredDocumentation","src":"42592:24:0","text":"See `serializeJson`."},"functionSelector":"ae5a2ae8","id":1590,"implemented":false,"kind":"function","modifiers":[],"name":"serializeUintToHex","nameLocation":"42630:18:0","nodeType":"FunctionDefinition","parameters":{"id":1586,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1581,"mutability":"mutable","name":"objectKey","nameLocation":"42665:9:0","nodeType":"VariableDeclaration","scope":1590,"src":"42649:25:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1580,"name":"string","nodeType":"ElementaryTypeName","src":"42649:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1583,"mutability":"mutable","name":"valueKey","nameLocation":"42692:8:0","nodeType":"VariableDeclaration","scope":1590,"src":"42676:24:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1582,"name":"string","nodeType":"ElementaryTypeName","src":"42676:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1585,"mutability":"mutable","name":"value","nameLocation":"42710:5:0","nodeType":"VariableDeclaration","scope":1590,"src":"42702:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1584,"name":"uint256","nodeType":"ElementaryTypeName","src":"42702:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"42648:68:0"},"returnParameters":{"id":1589,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1588,"mutability":"mutable","name":"json","nameLocation":"42765:4:0","nodeType":"VariableDeclaration","scope":1590,"src":"42751:18:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1587,"name":"string","nodeType":"ElementaryTypeName","src":"42751:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"42750:20:0"},"scope":3388,"src":"42621:150:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1591,"nodeType":"StructuredDocumentation","src":"42777:24:0","text":"See `serializeJson`."},"functionSelector":"129e9002","id":1602,"implemented":false,"kind":"function","modifiers":[],"name":"serializeUint","nameLocation":"42815:13:0","nodeType":"FunctionDefinition","parameters":{"id":1598,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1593,"mutability":"mutable","name":"objectKey","nameLocation":"42845:9:0","nodeType":"VariableDeclaration","scope":1602,"src":"42829:25:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1592,"name":"string","nodeType":"ElementaryTypeName","src":"42829:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1595,"mutability":"mutable","name":"valueKey","nameLocation":"42872:8:0","nodeType":"VariableDeclaration","scope":1602,"src":"42856:24:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1594,"name":"string","nodeType":"ElementaryTypeName","src":"42856:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1597,"mutability":"mutable","name":"value","nameLocation":"42890:5:0","nodeType":"VariableDeclaration","scope":1602,"src":"42882:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1596,"name":"uint256","nodeType":"ElementaryTypeName","src":"42882:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"42828:68:0"},"returnParameters":{"id":1601,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1600,"mutability":"mutable","name":"json","nameLocation":"42945:4:0","nodeType":"VariableDeclaration","scope":1602,"src":"42931:18:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1599,"name":"string","nodeType":"ElementaryTypeName","src":"42931:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"42930:20:0"},"scope":3388,"src":"42806:145:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1603,"nodeType":"StructuredDocumentation","src":"42957:24:0","text":"See `serializeJson`."},"functionSelector":"fee9a469","id":1615,"implemented":false,"kind":"function","modifiers":[],"name":"serializeUint","nameLocation":"42995:13:0","nodeType":"FunctionDefinition","parameters":{"id":1611,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1605,"mutability":"mutable","name":"objectKey","nameLocation":"43025:9:0","nodeType":"VariableDeclaration","scope":1615,"src":"43009:25:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1604,"name":"string","nodeType":"ElementaryTypeName","src":"43009:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1607,"mutability":"mutable","name":"valueKey","nameLocation":"43052:8:0","nodeType":"VariableDeclaration","scope":1615,"src":"43036:24:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1606,"name":"string","nodeType":"ElementaryTypeName","src":"43036:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1610,"mutability":"mutable","name":"values","nameLocation":"43081:6:0","nodeType":"VariableDeclaration","scope":1615,"src":"43062:25:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1608,"name":"uint256","nodeType":"ElementaryTypeName","src":"43062:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1609,"nodeType":"ArrayTypeName","src":"43062:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"43008:80:0"},"returnParameters":{"id":1614,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1613,"mutability":"mutable","name":"json","nameLocation":"43137:4:0","nodeType":"VariableDeclaration","scope":1615,"src":"43123:18:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1612,"name":"string","nodeType":"ElementaryTypeName","src":"43123:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"43122:20:0"},"scope":3388,"src":"42986:157:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1616,"nodeType":"StructuredDocumentation","src":"43149:89:0","text":"Write a serialized JSON object to a file. If the file exists, it will be overwritten."},"functionSelector":"e23cd19f","id":1623,"implemented":false,"kind":"function","modifiers":[],"name":"writeJson","nameLocation":"43252:9:0","nodeType":"FunctionDefinition","parameters":{"id":1621,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1618,"mutability":"mutable","name":"json","nameLocation":"43278:4:0","nodeType":"VariableDeclaration","scope":1623,"src":"43262:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1617,"name":"string","nodeType":"ElementaryTypeName","src":"43262:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1620,"mutability":"mutable","name":"path","nameLocation":"43300:4:0","nodeType":"VariableDeclaration","scope":1623,"src":"43284:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1619,"name":"string","nodeType":"ElementaryTypeName","src":"43284:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"43261:44:0"},"returnParameters":{"id":1622,"nodeType":"ParameterList","parameters":[],"src":"43314:0:0"},"scope":3388,"src":"43243:72:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1624,"nodeType":"StructuredDocumentation","src":"43321:215:0","text":"Write a serialized JSON object to an **existing** JSON file, replacing a value with key = \n This is useful to replace a specific value of a JSON file, without having to parse the entire thing."},"functionSelector":"35d6ad46","id":1633,"implemented":false,"kind":"function","modifiers":[],"name":"writeJson","nameLocation":"43550:9:0","nodeType":"FunctionDefinition","parameters":{"id":1631,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1626,"mutability":"mutable","name":"json","nameLocation":"43576:4:0","nodeType":"VariableDeclaration","scope":1633,"src":"43560:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1625,"name":"string","nodeType":"ElementaryTypeName","src":"43560:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1628,"mutability":"mutable","name":"path","nameLocation":"43598:4:0","nodeType":"VariableDeclaration","scope":1633,"src":"43582:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1627,"name":"string","nodeType":"ElementaryTypeName","src":"43582:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1630,"mutability":"mutable","name":"valueKey","nameLocation":"43620:8:0","nodeType":"VariableDeclaration","scope":1633,"src":"43604:24:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1629,"name":"string","nodeType":"ElementaryTypeName","src":"43604:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"43559:70:0"},"returnParameters":{"id":1632,"nodeType":"ParameterList","parameters":[],"src":"43638:0:0"},"scope":3388,"src":"43541:98:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1634,"nodeType":"StructuredDocumentation","src":"43681:64:0","text":"Takes a signed transaction and broadcasts it to the network."},"functionSelector":"8c0c72e0","id":1639,"implemented":false,"kind":"function","modifiers":[],"name":"broadcastRawTransaction","nameLocation":"43759:23:0","nodeType":"FunctionDefinition","parameters":{"id":1637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1636,"mutability":"mutable","name":"data","nameLocation":"43798:4:0","nodeType":"VariableDeclaration","scope":1639,"src":"43783:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1635,"name":"bytes","nodeType":"ElementaryTypeName","src":"43783:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"43782:21:0"},"returnParameters":{"id":1638,"nodeType":"ParameterList","parameters":[],"src":"43812:0:0"},"scope":3388,"src":"43750:63:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1640,"nodeType":"StructuredDocumentation","src":"43819:492:0","text":"Has the next call (at this call depth only) create transactions that can later be signed and sent onchain.\n Broadcasting address is determined by checking the following in order:\n 1. If `--sender` argument was provided, that address is used.\n 2. If exactly one signer (e.g. private key, hw wallet, keystore) is set when `forge broadcast` is invoked, that signer is used.\n 3. Otherwise, default foundry sender (1804c8AB1F12E6bbf3894d4083f33e07309d1f38) is used."},"functionSelector":"afc98040","id":1643,"implemented":false,"kind":"function","modifiers":[],"name":"broadcast","nameLocation":"44325:9:0","nodeType":"FunctionDefinition","parameters":{"id":1641,"nodeType":"ParameterList","parameters":[],"src":"44334:2:0"},"returnParameters":{"id":1642,"nodeType":"ParameterList","parameters":[],"src":"44345:0:0"},"scope":3388,"src":"44316:30:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1644,"nodeType":"StructuredDocumentation","src":"44352:159:0","text":"Has the next call (at this call depth only) create a transaction with the address provided\n as the sender that can later be signed and sent onchain."},"functionSelector":"e6962cdb","id":1649,"implemented":false,"kind":"function","modifiers":[],"name":"broadcast","nameLocation":"44525:9:0","nodeType":"FunctionDefinition","parameters":{"id":1647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1646,"mutability":"mutable","name":"signer","nameLocation":"44543:6:0","nodeType":"VariableDeclaration","scope":1649,"src":"44535:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1645,"name":"address","nodeType":"ElementaryTypeName","src":"44535:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"44534:16:0"},"returnParameters":{"id":1648,"nodeType":"ParameterList","parameters":[],"src":"44559:0:0"},"scope":3388,"src":"44516:44:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1650,"nodeType":"StructuredDocumentation","src":"44566:163:0","text":"Has the next call (at this call depth only) create a transaction with the private key\n provided as the sender that can later be signed and sent onchain."},"functionSelector":"f67a965b","id":1655,"implemented":false,"kind":"function","modifiers":[],"name":"broadcast","nameLocation":"44743:9:0","nodeType":"FunctionDefinition","parameters":{"id":1653,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1652,"mutability":"mutable","name":"privateKey","nameLocation":"44761:10:0","nodeType":"VariableDeclaration","scope":1655,"src":"44753:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1651,"name":"uint256","nodeType":"ElementaryTypeName","src":"44753:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"44752:20:0"},"returnParameters":{"id":1654,"nodeType":"ParameterList","parameters":[],"src":"44781:0:0"},"scope":3388,"src":"44734:48:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1656,"nodeType":"StructuredDocumentation","src":"44788:499:0","text":"Has all subsequent calls (at this call depth only) create transactions that can later be signed and sent onchain.\n Broadcasting address is determined by checking the following in order:\n 1. If `--sender` argument was provided, that address is used.\n 2. If exactly one signer (e.g. private key, hw wallet, keystore) is set when `forge broadcast` is invoked, that signer is used.\n 3. Otherwise, default foundry sender (1804c8AB1F12E6bbf3894d4083f33e07309d1f38) is used."},"functionSelector":"7fb5297f","id":1659,"implemented":false,"kind":"function","modifiers":[],"name":"startBroadcast","nameLocation":"45301:14:0","nodeType":"FunctionDefinition","parameters":{"id":1657,"nodeType":"ParameterList","parameters":[],"src":"45315:2:0"},"returnParameters":{"id":1658,"nodeType":"ParameterList","parameters":[],"src":"45326:0:0"},"scope":3388,"src":"45292:35:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1660,"nodeType":"StructuredDocumentation","src":"45333:151:0","text":"Has all subsequent calls (at this call depth only) create transactions with the address\n provided that can later be signed and sent onchain."},"functionSelector":"7fec2a8d","id":1665,"implemented":false,"kind":"function","modifiers":[],"name":"startBroadcast","nameLocation":"45498:14:0","nodeType":"FunctionDefinition","parameters":{"id":1663,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1662,"mutability":"mutable","name":"signer","nameLocation":"45521:6:0","nodeType":"VariableDeclaration","scope":1665,"src":"45513:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1661,"name":"address","nodeType":"ElementaryTypeName","src":"45513:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"45512:16:0"},"returnParameters":{"id":1664,"nodeType":"ParameterList","parameters":[],"src":"45537:0:0"},"scope":3388,"src":"45489:49:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1666,"nodeType":"StructuredDocumentation","src":"45544:155:0","text":"Has all subsequent calls (at this call depth only) create transactions with the private key\n provided that can later be signed and sent onchain."},"functionSelector":"ce817d47","id":1671,"implemented":false,"kind":"function","modifiers":[],"name":"startBroadcast","nameLocation":"45713:14:0","nodeType":"FunctionDefinition","parameters":{"id":1669,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1668,"mutability":"mutable","name":"privateKey","nameLocation":"45736:10:0","nodeType":"VariableDeclaration","scope":1671,"src":"45728:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1667,"name":"uint256","nodeType":"ElementaryTypeName","src":"45728:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"45727:20:0"},"returnParameters":{"id":1670,"nodeType":"ParameterList","parameters":[],"src":"45756:0:0"},"scope":3388,"src":"45704:53:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1672,"nodeType":"StructuredDocumentation","src":"45763:42:0","text":"Stops collecting onchain transactions."},"functionSelector":"76eadd36","id":1675,"implemented":false,"kind":"function","modifiers":[],"name":"stopBroadcast","nameLocation":"45819:13:0","nodeType":"FunctionDefinition","parameters":{"id":1673,"nodeType":"ParameterList","parameters":[],"src":"45832:2:0"},"returnParameters":{"id":1674,"nodeType":"ParameterList","parameters":[],"src":"45843:0:0"},"scope":3388,"src":"45810:34:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1676,"nodeType":"StructuredDocumentation","src":"45883:205:0","text":"Returns the index of the first occurrence of a `key` in an `input` string.\n Returns `NOT_FOUND` (i.e. `type(uint256).max`) if the `key` is not found.\n Returns 0 in case of an empty `key`."},"functionSelector":"8a0807b7","id":1685,"implemented":false,"kind":"function","modifiers":[],"name":"indexOf","nameLocation":"46102:7:0","nodeType":"FunctionDefinition","parameters":{"id":1681,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1678,"mutability":"mutable","name":"input","nameLocation":"46126:5:0","nodeType":"VariableDeclaration","scope":1685,"src":"46110:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1677,"name":"string","nodeType":"ElementaryTypeName","src":"46110:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1680,"mutability":"mutable","name":"key","nameLocation":"46149:3:0","nodeType":"VariableDeclaration","scope":1685,"src":"46133:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1679,"name":"string","nodeType":"ElementaryTypeName","src":"46133:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"46109:44:0"},"returnParameters":{"id":1684,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1683,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1685,"src":"46177:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1682,"name":"uint256","nodeType":"ElementaryTypeName","src":"46177:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"46176:9:0"},"scope":3388,"src":"46093:93:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":1686,"nodeType":"StructuredDocumentation","src":"46192:48:0","text":"Parses the given `string` into an `address`."},"functionSelector":"c6ce059d","id":1693,"implemented":false,"kind":"function","modifiers":[],"name":"parseAddress","nameLocation":"46254:12:0","nodeType":"FunctionDefinition","parameters":{"id":1689,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1688,"mutability":"mutable","name":"stringifiedValue","nameLocation":"46283:16:0","nodeType":"VariableDeclaration","scope":1693,"src":"46267:32:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1687,"name":"string","nodeType":"ElementaryTypeName","src":"46267:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"46266:34:0"},"returnParameters":{"id":1692,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1691,"mutability":"mutable","name":"parsedValue","nameLocation":"46332:11:0","nodeType":"VariableDeclaration","scope":1693,"src":"46324:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1690,"name":"address","nodeType":"ElementaryTypeName","src":"46324:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"46323:21:0"},"scope":3388,"src":"46245:100:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":1694,"nodeType":"StructuredDocumentation","src":"46351:44:0","text":"Parses the given `string` into a `bool`."},"functionSelector":"974ef924","id":1701,"implemented":false,"kind":"function","modifiers":[],"name":"parseBool","nameLocation":"46409:9:0","nodeType":"FunctionDefinition","parameters":{"id":1697,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1696,"mutability":"mutable","name":"stringifiedValue","nameLocation":"46435:16:0","nodeType":"VariableDeclaration","scope":1701,"src":"46419:32:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1695,"name":"string","nodeType":"ElementaryTypeName","src":"46419:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"46418:34:0"},"returnParameters":{"id":1700,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1699,"mutability":"mutable","name":"parsedValue","nameLocation":"46481:11:0","nodeType":"VariableDeclaration","scope":1701,"src":"46476:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1698,"name":"bool","nodeType":"ElementaryTypeName","src":"46476:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"46475:18:0"},"scope":3388,"src":"46400:94:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":1702,"nodeType":"StructuredDocumentation","src":"46500:43:0","text":"Parses the given `string` into `bytes`."},"functionSelector":"8f5d232d","id":1709,"implemented":false,"kind":"function","modifiers":[],"name":"parseBytes","nameLocation":"46557:10:0","nodeType":"FunctionDefinition","parameters":{"id":1705,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1704,"mutability":"mutable","name":"stringifiedValue","nameLocation":"46584:16:0","nodeType":"VariableDeclaration","scope":1709,"src":"46568:32:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1703,"name":"string","nodeType":"ElementaryTypeName","src":"46568:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"46567:34:0"},"returnParameters":{"id":1708,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1707,"mutability":"mutable","name":"parsedValue","nameLocation":"46638:11:0","nodeType":"VariableDeclaration","scope":1709,"src":"46625:24:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1706,"name":"bytes","nodeType":"ElementaryTypeName","src":"46625:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"46624:26:0"},"scope":3388,"src":"46548:103:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":1710,"nodeType":"StructuredDocumentation","src":"46657:47:0","text":"Parses the given `string` into a `bytes32`."},"functionSelector":"087e6e81","id":1717,"implemented":false,"kind":"function","modifiers":[],"name":"parseBytes32","nameLocation":"46718:12:0","nodeType":"FunctionDefinition","parameters":{"id":1713,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1712,"mutability":"mutable","name":"stringifiedValue","nameLocation":"46747:16:0","nodeType":"VariableDeclaration","scope":1717,"src":"46731:32:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1711,"name":"string","nodeType":"ElementaryTypeName","src":"46731:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"46730:34:0"},"returnParameters":{"id":1716,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1715,"mutability":"mutable","name":"parsedValue","nameLocation":"46796:11:0","nodeType":"VariableDeclaration","scope":1717,"src":"46788:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1714,"name":"bytes32","nodeType":"ElementaryTypeName","src":"46788:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"46787:21:0"},"scope":3388,"src":"46709:100:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":1718,"nodeType":"StructuredDocumentation","src":"46815:46:0","text":"Parses the given `string` into a `int256`."},"functionSelector":"42346c5e","id":1725,"implemented":false,"kind":"function","modifiers":[],"name":"parseInt","nameLocation":"46875:8:0","nodeType":"FunctionDefinition","parameters":{"id":1721,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1720,"mutability":"mutable","name":"stringifiedValue","nameLocation":"46900:16:0","nodeType":"VariableDeclaration","scope":1725,"src":"46884:32:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1719,"name":"string","nodeType":"ElementaryTypeName","src":"46884:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"46883:34:0"},"returnParameters":{"id":1724,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1723,"mutability":"mutable","name":"parsedValue","nameLocation":"46948:11:0","nodeType":"VariableDeclaration","scope":1725,"src":"46941:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1722,"name":"int256","nodeType":"ElementaryTypeName","src":"46941:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"46940:20:0"},"scope":3388,"src":"46866:95:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":1726,"nodeType":"StructuredDocumentation","src":"46967:47:0","text":"Parses the given `string` into a `uint256`."},"functionSelector":"fa91454d","id":1733,"implemented":false,"kind":"function","modifiers":[],"name":"parseUint","nameLocation":"47028:9:0","nodeType":"FunctionDefinition","parameters":{"id":1729,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1728,"mutability":"mutable","name":"stringifiedValue","nameLocation":"47054:16:0","nodeType":"VariableDeclaration","scope":1733,"src":"47038:32:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1727,"name":"string","nodeType":"ElementaryTypeName","src":"47038:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"47037:34:0"},"returnParameters":{"id":1732,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1731,"mutability":"mutable","name":"parsedValue","nameLocation":"47103:11:0","nodeType":"VariableDeclaration","scope":1733,"src":"47095:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1730,"name":"uint256","nodeType":"ElementaryTypeName","src":"47095:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"47094:21:0"},"scope":3388,"src":"47019:97:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":1734,"nodeType":"StructuredDocumentation","src":"47122:67:0","text":"Replaces occurrences of `from` in the given `string` with `to`."},"functionSelector":"e00ad03e","id":1745,"implemented":false,"kind":"function","modifiers":[],"name":"replace","nameLocation":"47203:7:0","nodeType":"FunctionDefinition","parameters":{"id":1741,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1736,"mutability":"mutable","name":"input","nameLocation":"47227:5:0","nodeType":"VariableDeclaration","scope":1745,"src":"47211:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1735,"name":"string","nodeType":"ElementaryTypeName","src":"47211:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1738,"mutability":"mutable","name":"from","nameLocation":"47250:4:0","nodeType":"VariableDeclaration","scope":1745,"src":"47234:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1737,"name":"string","nodeType":"ElementaryTypeName","src":"47234:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1740,"mutability":"mutable","name":"to","nameLocation":"47272:2:0","nodeType":"VariableDeclaration","scope":1745,"src":"47256:18:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1739,"name":"string","nodeType":"ElementaryTypeName","src":"47256:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"47210:65:0"},"returnParameters":{"id":1744,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1743,"mutability":"mutable","name":"output","nameLocation":"47337:6:0","nodeType":"VariableDeclaration","scope":1745,"src":"47323:20:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1742,"name":"string","nodeType":"ElementaryTypeName","src":"47323:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"47322:22:0"},"scope":3388,"src":"47194:151:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":1746,"nodeType":"StructuredDocumentation","src":"47351:82:0","text":"Splits the given `string` into an array of strings divided by the `delimiter`."},"functionSelector":"8bb75533","id":1756,"implemented":false,"kind":"function","modifiers":[],"name":"split","nameLocation":"47447:5:0","nodeType":"FunctionDefinition","parameters":{"id":1751,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1748,"mutability":"mutable","name":"input","nameLocation":"47469:5:0","nodeType":"VariableDeclaration","scope":1756,"src":"47453:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1747,"name":"string","nodeType":"ElementaryTypeName","src":"47453:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1750,"mutability":"mutable","name":"delimiter","nameLocation":"47492:9:0","nodeType":"VariableDeclaration","scope":1756,"src":"47476:25:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1749,"name":"string","nodeType":"ElementaryTypeName","src":"47476:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"47452:50:0"},"returnParameters":{"id":1755,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1754,"mutability":"mutable","name":"outputs","nameLocation":"47542:7:0","nodeType":"VariableDeclaration","scope":1756,"src":"47526:23:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":1752,"name":"string","nodeType":"ElementaryTypeName","src":"47526:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":1753,"nodeType":"ArrayTypeName","src":"47526:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"47525:25:0"},"scope":3388,"src":"47438:113:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":1757,"nodeType":"StructuredDocumentation","src":"47557:51:0","text":"Converts the given `string` value to Lowercase."},"functionSelector":"50bb0884","id":1764,"implemented":false,"kind":"function","modifiers":[],"name":"toLowercase","nameLocation":"47622:11:0","nodeType":"FunctionDefinition","parameters":{"id":1760,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1759,"mutability":"mutable","name":"input","nameLocation":"47650:5:0","nodeType":"VariableDeclaration","scope":1764,"src":"47634:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1758,"name":"string","nodeType":"ElementaryTypeName","src":"47634:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"47633:23:0"},"returnParameters":{"id":1763,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1762,"mutability":"mutable","name":"output","nameLocation":"47694:6:0","nodeType":"VariableDeclaration","scope":1764,"src":"47680:20:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1761,"name":"string","nodeType":"ElementaryTypeName","src":"47680:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"47679:22:0"},"scope":3388,"src":"47613:89:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":1765,"nodeType":"StructuredDocumentation","src":"47708:43:0","text":"Converts the given value to a `string`."},"functionSelector":"56ca623e","id":1772,"implemented":false,"kind":"function","modifiers":[],"name":"toString","nameLocation":"47765:8:0","nodeType":"FunctionDefinition","parameters":{"id":1768,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1767,"mutability":"mutable","name":"value","nameLocation":"47782:5:0","nodeType":"VariableDeclaration","scope":1772,"src":"47774:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1766,"name":"address","nodeType":"ElementaryTypeName","src":"47774:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"47773:15:0"},"returnParameters":{"id":1771,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1770,"mutability":"mutable","name":"stringifiedValue","nameLocation":"47826:16:0","nodeType":"VariableDeclaration","scope":1772,"src":"47812:30:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1769,"name":"string","nodeType":"ElementaryTypeName","src":"47812:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"47811:32:0"},"scope":3388,"src":"47756:88:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":1773,"nodeType":"StructuredDocumentation","src":"47850:43:0","text":"Converts the given value to a `string`."},"functionSelector":"71aad10d","id":1780,"implemented":false,"kind":"function","modifiers":[],"name":"toString","nameLocation":"47907:8:0","nodeType":"FunctionDefinition","parameters":{"id":1776,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1775,"mutability":"mutable","name":"value","nameLocation":"47931:5:0","nodeType":"VariableDeclaration","scope":1780,"src":"47916:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1774,"name":"bytes","nodeType":"ElementaryTypeName","src":"47916:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"47915:22:0"},"returnParameters":{"id":1779,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1778,"mutability":"mutable","name":"stringifiedValue","nameLocation":"47975:16:0","nodeType":"VariableDeclaration","scope":1780,"src":"47961:30:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1777,"name":"string","nodeType":"ElementaryTypeName","src":"47961:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"47960:32:0"},"scope":3388,"src":"47898:95:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":1781,"nodeType":"StructuredDocumentation","src":"47999:43:0","text":"Converts the given value to a `string`."},"functionSelector":"b11a19e8","id":1788,"implemented":false,"kind":"function","modifiers":[],"name":"toString","nameLocation":"48056:8:0","nodeType":"FunctionDefinition","parameters":{"id":1784,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1783,"mutability":"mutable","name":"value","nameLocation":"48073:5:0","nodeType":"VariableDeclaration","scope":1788,"src":"48065:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1782,"name":"bytes32","nodeType":"ElementaryTypeName","src":"48065:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"48064:15:0"},"returnParameters":{"id":1787,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1786,"mutability":"mutable","name":"stringifiedValue","nameLocation":"48117:16:0","nodeType":"VariableDeclaration","scope":1788,"src":"48103:30:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1785,"name":"string","nodeType":"ElementaryTypeName","src":"48103:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"48102:32:0"},"scope":3388,"src":"48047:88:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":1789,"nodeType":"StructuredDocumentation","src":"48141:43:0","text":"Converts the given value to a `string`."},"functionSelector":"71dce7da","id":1796,"implemented":false,"kind":"function","modifiers":[],"name":"toString","nameLocation":"48198:8:0","nodeType":"FunctionDefinition","parameters":{"id":1792,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1791,"mutability":"mutable","name":"value","nameLocation":"48212:5:0","nodeType":"VariableDeclaration","scope":1796,"src":"48207:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1790,"name":"bool","nodeType":"ElementaryTypeName","src":"48207:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"48206:12:0"},"returnParameters":{"id":1795,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1794,"mutability":"mutable","name":"stringifiedValue","nameLocation":"48256:16:0","nodeType":"VariableDeclaration","scope":1796,"src":"48242:30:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1793,"name":"string","nodeType":"ElementaryTypeName","src":"48242:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"48241:32:0"},"scope":3388,"src":"48189:85:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":1797,"nodeType":"StructuredDocumentation","src":"48280:43:0","text":"Converts the given value to a `string`."},"functionSelector":"6900a3ae","id":1804,"implemented":false,"kind":"function","modifiers":[],"name":"toString","nameLocation":"48337:8:0","nodeType":"FunctionDefinition","parameters":{"id":1800,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1799,"mutability":"mutable","name":"value","nameLocation":"48354:5:0","nodeType":"VariableDeclaration","scope":1804,"src":"48346:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1798,"name":"uint256","nodeType":"ElementaryTypeName","src":"48346:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"48345:15:0"},"returnParameters":{"id":1803,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1802,"mutability":"mutable","name":"stringifiedValue","nameLocation":"48398:16:0","nodeType":"VariableDeclaration","scope":1804,"src":"48384:30:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1801,"name":"string","nodeType":"ElementaryTypeName","src":"48384:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"48383:32:0"},"scope":3388,"src":"48328:88:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":1805,"nodeType":"StructuredDocumentation","src":"48422:43:0","text":"Converts the given value to a `string`."},"functionSelector":"a322c40e","id":1812,"implemented":false,"kind":"function","modifiers":[],"name":"toString","nameLocation":"48479:8:0","nodeType":"FunctionDefinition","parameters":{"id":1808,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1807,"mutability":"mutable","name":"value","nameLocation":"48495:5:0","nodeType":"VariableDeclaration","scope":1812,"src":"48488:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1806,"name":"int256","nodeType":"ElementaryTypeName","src":"48488:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"48487:14:0"},"returnParameters":{"id":1811,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1810,"mutability":"mutable","name":"stringifiedValue","nameLocation":"48539:16:0","nodeType":"VariableDeclaration","scope":1812,"src":"48525:30:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1809,"name":"string","nodeType":"ElementaryTypeName","src":"48525:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"48524:32:0"},"scope":3388,"src":"48470:87:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":1813,"nodeType":"StructuredDocumentation","src":"48563:51:0","text":"Converts the given `string` value to Uppercase."},"functionSelector":"074ae3d7","id":1820,"implemented":false,"kind":"function","modifiers":[],"name":"toUppercase","nameLocation":"48628:11:0","nodeType":"FunctionDefinition","parameters":{"id":1816,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1815,"mutability":"mutable","name":"input","nameLocation":"48656:5:0","nodeType":"VariableDeclaration","scope":1820,"src":"48640:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1814,"name":"string","nodeType":"ElementaryTypeName","src":"48640:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"48639:23:0"},"returnParameters":{"id":1819,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1818,"mutability":"mutable","name":"output","nameLocation":"48700:6:0","nodeType":"VariableDeclaration","scope":1820,"src":"48686:20:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1817,"name":"string","nodeType":"ElementaryTypeName","src":"48686:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"48685:22:0"},"scope":3388,"src":"48619:89:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":1821,"nodeType":"StructuredDocumentation","src":"48714:72:0","text":"Trims leading and trailing whitespace from the given `string` value."},"functionSelector":"b2dad155","id":1828,"implemented":false,"kind":"function","modifiers":[],"name":"trim","nameLocation":"48800:4:0","nodeType":"FunctionDefinition","parameters":{"id":1824,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1823,"mutability":"mutable","name":"input","nameLocation":"48821:5:0","nodeType":"VariableDeclaration","scope":1828,"src":"48805:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1822,"name":"string","nodeType":"ElementaryTypeName","src":"48805:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"48804:23:0"},"returnParameters":{"id":1827,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1826,"mutability":"mutable","name":"output","nameLocation":"48865:6:0","nodeType":"VariableDeclaration","scope":1828,"src":"48851:20:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1825,"name":"string","nodeType":"ElementaryTypeName","src":"48851:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"48850:22:0"},"scope":3388,"src":"48791:82:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":1829,"nodeType":"StructuredDocumentation","src":"48913:150:0","text":"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`.\n Formats values with decimals in failure message."},"functionSelector":"045c55ce","id":1840,"implemented":false,"kind":"function","modifiers":[],"name":"assertApproxEqAbsDecimal","nameLocation":"49077:24:0","nodeType":"FunctionDefinition","parameters":{"id":1838,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1831,"mutability":"mutable","name":"left","nameLocation":"49110:4:0","nodeType":"VariableDeclaration","scope":1840,"src":"49102:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1830,"name":"uint256","nodeType":"ElementaryTypeName","src":"49102:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1833,"mutability":"mutable","name":"right","nameLocation":"49124:5:0","nodeType":"VariableDeclaration","scope":1840,"src":"49116:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1832,"name":"uint256","nodeType":"ElementaryTypeName","src":"49116:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1835,"mutability":"mutable","name":"maxDelta","nameLocation":"49139:8:0","nodeType":"VariableDeclaration","scope":1840,"src":"49131:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1834,"name":"uint256","nodeType":"ElementaryTypeName","src":"49131:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1837,"mutability":"mutable","name":"decimals","nameLocation":"49157:8:0","nodeType":"VariableDeclaration","scope":1840,"src":"49149:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1836,"name":"uint256","nodeType":"ElementaryTypeName","src":"49149:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"49101:65:0"},"returnParameters":{"id":1839,"nodeType":"ParameterList","parameters":[],"src":"49180:0:0"},"scope":3388,"src":"49068:113:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":1841,"nodeType":"StructuredDocumentation","src":"49187:204:0","text":"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`.\n Formats values with decimals in failure message. Includes error message into revert string on failure."},"functionSelector":"60429eb2","id":1854,"implemented":false,"kind":"function","modifiers":[],"name":"assertApproxEqAbsDecimal","nameLocation":"49405:24:0","nodeType":"FunctionDefinition","parameters":{"id":1852,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1843,"mutability":"mutable","name":"left","nameLocation":"49447:4:0","nodeType":"VariableDeclaration","scope":1854,"src":"49439:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1842,"name":"uint256","nodeType":"ElementaryTypeName","src":"49439:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1845,"mutability":"mutable","name":"right","nameLocation":"49469:5:0","nodeType":"VariableDeclaration","scope":1854,"src":"49461:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1844,"name":"uint256","nodeType":"ElementaryTypeName","src":"49461:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1847,"mutability":"mutable","name":"maxDelta","nameLocation":"49492:8:0","nodeType":"VariableDeclaration","scope":1854,"src":"49484:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1846,"name":"uint256","nodeType":"ElementaryTypeName","src":"49484:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1849,"mutability":"mutable","name":"decimals","nameLocation":"49518:8:0","nodeType":"VariableDeclaration","scope":1854,"src":"49510:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1848,"name":"uint256","nodeType":"ElementaryTypeName","src":"49510:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1851,"mutability":"mutable","name":"error","nameLocation":"49552:5:0","nodeType":"VariableDeclaration","scope":1854,"src":"49536:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1850,"name":"string","nodeType":"ElementaryTypeName","src":"49536:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"49429:134:0"},"returnParameters":{"id":1853,"nodeType":"ParameterList","parameters":[],"src":"49577:0:0"},"scope":3388,"src":"49396:182:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":1855,"nodeType":"StructuredDocumentation","src":"49584:149:0","text":"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`.\n Formats values with decimals in failure message."},"functionSelector":"3d5bc8bc","id":1866,"implemented":false,"kind":"function","modifiers":[],"name":"assertApproxEqAbsDecimal","nameLocation":"49747:24:0","nodeType":"FunctionDefinition","parameters":{"id":1864,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1857,"mutability":"mutable","name":"left","nameLocation":"49779:4:0","nodeType":"VariableDeclaration","scope":1866,"src":"49772:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1856,"name":"int256","nodeType":"ElementaryTypeName","src":"49772:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1859,"mutability":"mutable","name":"right","nameLocation":"49792:5:0","nodeType":"VariableDeclaration","scope":1866,"src":"49785:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1858,"name":"int256","nodeType":"ElementaryTypeName","src":"49785:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1861,"mutability":"mutable","name":"maxDelta","nameLocation":"49807:8:0","nodeType":"VariableDeclaration","scope":1866,"src":"49799:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1860,"name":"uint256","nodeType":"ElementaryTypeName","src":"49799:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1863,"mutability":"mutable","name":"decimals","nameLocation":"49825:8:0","nodeType":"VariableDeclaration","scope":1866,"src":"49817:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1862,"name":"uint256","nodeType":"ElementaryTypeName","src":"49817:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"49771:63:0"},"returnParameters":{"id":1865,"nodeType":"ParameterList","parameters":[],"src":"49848:0:0"},"scope":3388,"src":"49738:111:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":1867,"nodeType":"StructuredDocumentation","src":"49855:203:0","text":"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`.\n Formats values with decimals in failure message. Includes error message into revert string on failure."},"functionSelector":"6a5066d4","id":1880,"implemented":false,"kind":"function","modifiers":[],"name":"assertApproxEqAbsDecimal","nameLocation":"50072:24:0","nodeType":"FunctionDefinition","parameters":{"id":1878,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1869,"mutability":"mutable","name":"left","nameLocation":"50113:4:0","nodeType":"VariableDeclaration","scope":1880,"src":"50106:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1868,"name":"int256","nodeType":"ElementaryTypeName","src":"50106:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1871,"mutability":"mutable","name":"right","nameLocation":"50134:5:0","nodeType":"VariableDeclaration","scope":1880,"src":"50127:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1870,"name":"int256","nodeType":"ElementaryTypeName","src":"50127:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1873,"mutability":"mutable","name":"maxDelta","nameLocation":"50157:8:0","nodeType":"VariableDeclaration","scope":1880,"src":"50149:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1872,"name":"uint256","nodeType":"ElementaryTypeName","src":"50149:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1875,"mutability":"mutable","name":"decimals","nameLocation":"50183:8:0","nodeType":"VariableDeclaration","scope":1880,"src":"50175:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1874,"name":"uint256","nodeType":"ElementaryTypeName","src":"50175:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1877,"mutability":"mutable","name":"error","nameLocation":"50217:5:0","nodeType":"VariableDeclaration","scope":1880,"src":"50201:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1876,"name":"string","nodeType":"ElementaryTypeName","src":"50201:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"50096:132:0"},"returnParameters":{"id":1879,"nodeType":"ParameterList","parameters":[],"src":"50242:0:0"},"scope":3388,"src":"50063:180:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":1881,"nodeType":"StructuredDocumentation","src":"50249:93:0","text":"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`."},"functionSelector":"16d207c6","id":1890,"implemented":false,"kind":"function","modifiers":[],"name":"assertApproxEqAbs","nameLocation":"50356:17:0","nodeType":"FunctionDefinition","parameters":{"id":1888,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1883,"mutability":"mutable","name":"left","nameLocation":"50382:4:0","nodeType":"VariableDeclaration","scope":1890,"src":"50374:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1882,"name":"uint256","nodeType":"ElementaryTypeName","src":"50374:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1885,"mutability":"mutable","name":"right","nameLocation":"50396:5:0","nodeType":"VariableDeclaration","scope":1890,"src":"50388:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1884,"name":"uint256","nodeType":"ElementaryTypeName","src":"50388:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1887,"mutability":"mutable","name":"maxDelta","nameLocation":"50411:8:0","nodeType":"VariableDeclaration","scope":1890,"src":"50403:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1886,"name":"uint256","nodeType":"ElementaryTypeName","src":"50403:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"50373:47:0"},"returnParameters":{"id":1889,"nodeType":"ParameterList","parameters":[],"src":"50434:0:0"},"scope":3388,"src":"50347:88:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":1891,"nodeType":"StructuredDocumentation","src":"50441:155:0","text":"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`.\n Includes error message into revert string on failure."},"functionSelector":"f710b062","id":1902,"implemented":false,"kind":"function","modifiers":[],"name":"assertApproxEqAbs","nameLocation":"50610:17:0","nodeType":"FunctionDefinition","parameters":{"id":1900,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1893,"mutability":"mutable","name":"left","nameLocation":"50636:4:0","nodeType":"VariableDeclaration","scope":1902,"src":"50628:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1892,"name":"uint256","nodeType":"ElementaryTypeName","src":"50628:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1895,"mutability":"mutable","name":"right","nameLocation":"50650:5:0","nodeType":"VariableDeclaration","scope":1902,"src":"50642:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1894,"name":"uint256","nodeType":"ElementaryTypeName","src":"50642:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1897,"mutability":"mutable","name":"maxDelta","nameLocation":"50665:8:0","nodeType":"VariableDeclaration","scope":1902,"src":"50657:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1896,"name":"uint256","nodeType":"ElementaryTypeName","src":"50657:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1899,"mutability":"mutable","name":"error","nameLocation":"50691:5:0","nodeType":"VariableDeclaration","scope":1902,"src":"50675:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1898,"name":"string","nodeType":"ElementaryTypeName","src":"50675:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"50627:70:0"},"returnParameters":{"id":1901,"nodeType":"ParameterList","parameters":[],"src":"50711:0:0"},"scope":3388,"src":"50601:111:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":1903,"nodeType":"StructuredDocumentation","src":"50718:92:0","text":"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`."},"functionSelector":"240f839d","id":1912,"implemented":false,"kind":"function","modifiers":[],"name":"assertApproxEqAbs","nameLocation":"50824:17:0","nodeType":"FunctionDefinition","parameters":{"id":1910,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1905,"mutability":"mutable","name":"left","nameLocation":"50849:4:0","nodeType":"VariableDeclaration","scope":1912,"src":"50842:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1904,"name":"int256","nodeType":"ElementaryTypeName","src":"50842:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1907,"mutability":"mutable","name":"right","nameLocation":"50862:5:0","nodeType":"VariableDeclaration","scope":1912,"src":"50855:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1906,"name":"int256","nodeType":"ElementaryTypeName","src":"50855:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1909,"mutability":"mutable","name":"maxDelta","nameLocation":"50877:8:0","nodeType":"VariableDeclaration","scope":1912,"src":"50869:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1908,"name":"uint256","nodeType":"ElementaryTypeName","src":"50869:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"50841:45:0"},"returnParameters":{"id":1911,"nodeType":"ParameterList","parameters":[],"src":"50900:0:0"},"scope":3388,"src":"50815:86:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":1913,"nodeType":"StructuredDocumentation","src":"50907:154:0","text":"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`.\n Includes error message into revert string on failure."},"functionSelector":"8289e621","id":1924,"implemented":false,"kind":"function","modifiers":[],"name":"assertApproxEqAbs","nameLocation":"51075:17:0","nodeType":"FunctionDefinition","parameters":{"id":1922,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1915,"mutability":"mutable","name":"left","nameLocation":"51100:4:0","nodeType":"VariableDeclaration","scope":1924,"src":"51093:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1914,"name":"int256","nodeType":"ElementaryTypeName","src":"51093:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1917,"mutability":"mutable","name":"right","nameLocation":"51113:5:0","nodeType":"VariableDeclaration","scope":1924,"src":"51106:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1916,"name":"int256","nodeType":"ElementaryTypeName","src":"51106:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1919,"mutability":"mutable","name":"maxDelta","nameLocation":"51128:8:0","nodeType":"VariableDeclaration","scope":1924,"src":"51120:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1918,"name":"uint256","nodeType":"ElementaryTypeName","src":"51120:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1921,"mutability":"mutable","name":"error","nameLocation":"51154:5:0","nodeType":"VariableDeclaration","scope":1924,"src":"51138:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1920,"name":"string","nodeType":"ElementaryTypeName","src":"51138:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"51092:68:0"},"returnParameters":{"id":1923,"nodeType":"ParameterList","parameters":[],"src":"51174:0:0"},"scope":3388,"src":"51066:109:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":1925,"nodeType":"StructuredDocumentation","src":"51181:260:0","text":"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`.\n `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%\n Formats values with decimals in failure message."},"functionSelector":"21ed2977","id":1936,"implemented":false,"kind":"function","modifiers":[],"name":"assertApproxEqRelDecimal","nameLocation":"51455:24:0","nodeType":"FunctionDefinition","parameters":{"id":1934,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1927,"mutability":"mutable","name":"left","nameLocation":"51488:4:0","nodeType":"VariableDeclaration","scope":1936,"src":"51480:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1926,"name":"uint256","nodeType":"ElementaryTypeName","src":"51480:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1929,"mutability":"mutable","name":"right","nameLocation":"51502:5:0","nodeType":"VariableDeclaration","scope":1936,"src":"51494:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1928,"name":"uint256","nodeType":"ElementaryTypeName","src":"51494:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1931,"mutability":"mutable","name":"maxPercentDelta","nameLocation":"51517:15:0","nodeType":"VariableDeclaration","scope":1936,"src":"51509:23:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1930,"name":"uint256","nodeType":"ElementaryTypeName","src":"51509:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1933,"mutability":"mutable","name":"decimals","nameLocation":"51542:8:0","nodeType":"VariableDeclaration","scope":1936,"src":"51534:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1932,"name":"uint256","nodeType":"ElementaryTypeName","src":"51534:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"51479:72:0"},"returnParameters":{"id":1935,"nodeType":"ParameterList","parameters":[],"src":"51581:0:0"},"scope":3388,"src":"51446:136:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":1937,"nodeType":"StructuredDocumentation","src":"51588:314:0","text":"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`.\n `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%\n Formats values with decimals in failure message. Includes error message into revert string on failure."},"functionSelector":"82d6c8fd","id":1950,"implemented":false,"kind":"function","modifiers":[],"name":"assertApproxEqRelDecimal","nameLocation":"51916:24:0","nodeType":"FunctionDefinition","parameters":{"id":1948,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1939,"mutability":"mutable","name":"left","nameLocation":"51958:4:0","nodeType":"VariableDeclaration","scope":1950,"src":"51950:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1938,"name":"uint256","nodeType":"ElementaryTypeName","src":"51950:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1941,"mutability":"mutable","name":"right","nameLocation":"51980:5:0","nodeType":"VariableDeclaration","scope":1950,"src":"51972:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1940,"name":"uint256","nodeType":"ElementaryTypeName","src":"51972:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1943,"mutability":"mutable","name":"maxPercentDelta","nameLocation":"52003:15:0","nodeType":"VariableDeclaration","scope":1950,"src":"51995:23:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1942,"name":"uint256","nodeType":"ElementaryTypeName","src":"51995:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1945,"mutability":"mutable","name":"decimals","nameLocation":"52036:8:0","nodeType":"VariableDeclaration","scope":1950,"src":"52028:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1944,"name":"uint256","nodeType":"ElementaryTypeName","src":"52028:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1947,"mutability":"mutable","name":"error","nameLocation":"52070:5:0","nodeType":"VariableDeclaration","scope":1950,"src":"52054:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1946,"name":"string","nodeType":"ElementaryTypeName","src":"52054:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"51940:141:0"},"returnParameters":{"id":1949,"nodeType":"ParameterList","parameters":[],"src":"52095:0:0"},"scope":3388,"src":"51907:189:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":1951,"nodeType":"StructuredDocumentation","src":"52102:259:0","text":"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`.\n `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%\n Formats values with decimals in failure message."},"functionSelector":"abbf21cc","id":1962,"implemented":false,"kind":"function","modifiers":[],"name":"assertApproxEqRelDecimal","nameLocation":"52375:24:0","nodeType":"FunctionDefinition","parameters":{"id":1960,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1953,"mutability":"mutable","name":"left","nameLocation":"52407:4:0","nodeType":"VariableDeclaration","scope":1962,"src":"52400:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1952,"name":"int256","nodeType":"ElementaryTypeName","src":"52400:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1955,"mutability":"mutable","name":"right","nameLocation":"52420:5:0","nodeType":"VariableDeclaration","scope":1962,"src":"52413:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1954,"name":"int256","nodeType":"ElementaryTypeName","src":"52413:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1957,"mutability":"mutable","name":"maxPercentDelta","nameLocation":"52435:15:0","nodeType":"VariableDeclaration","scope":1962,"src":"52427:23:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1956,"name":"uint256","nodeType":"ElementaryTypeName","src":"52427:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1959,"mutability":"mutable","name":"decimals","nameLocation":"52460:8:0","nodeType":"VariableDeclaration","scope":1962,"src":"52452:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1958,"name":"uint256","nodeType":"ElementaryTypeName","src":"52452:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"52399:70:0"},"returnParameters":{"id":1961,"nodeType":"ParameterList","parameters":[],"src":"52499:0:0"},"scope":3388,"src":"52366:134:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":1963,"nodeType":"StructuredDocumentation","src":"52506:313:0","text":"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`.\n `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%\n Formats values with decimals in failure message. Includes error message into revert string on failure."},"functionSelector":"fccc11c4","id":1976,"implemented":false,"kind":"function","modifiers":[],"name":"assertApproxEqRelDecimal","nameLocation":"52833:24:0","nodeType":"FunctionDefinition","parameters":{"id":1974,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1965,"mutability":"mutable","name":"left","nameLocation":"52874:4:0","nodeType":"VariableDeclaration","scope":1976,"src":"52867:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1964,"name":"int256","nodeType":"ElementaryTypeName","src":"52867:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1967,"mutability":"mutable","name":"right","nameLocation":"52895:5:0","nodeType":"VariableDeclaration","scope":1976,"src":"52888:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1966,"name":"int256","nodeType":"ElementaryTypeName","src":"52888:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1969,"mutability":"mutable","name":"maxPercentDelta","nameLocation":"52918:15:0","nodeType":"VariableDeclaration","scope":1976,"src":"52910:23:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1968,"name":"uint256","nodeType":"ElementaryTypeName","src":"52910:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1971,"mutability":"mutable","name":"decimals","nameLocation":"52951:8:0","nodeType":"VariableDeclaration","scope":1976,"src":"52943:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1970,"name":"uint256","nodeType":"ElementaryTypeName","src":"52943:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1973,"mutability":"mutable","name":"error","nameLocation":"52985:5:0","nodeType":"VariableDeclaration","scope":1976,"src":"52969:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1972,"name":"string","nodeType":"ElementaryTypeName","src":"52969:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"52857:139:0"},"returnParameters":{"id":1975,"nodeType":"ParameterList","parameters":[],"src":"53010:0:0"},"scope":3388,"src":"52824:187:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":1977,"nodeType":"StructuredDocumentation","src":"53017:203:0","text":"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`.\n `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%"},"functionSelector":"8cf25ef4","id":1986,"implemented":false,"kind":"function","modifiers":[],"name":"assertApproxEqRel","nameLocation":"53234:17:0","nodeType":"FunctionDefinition","parameters":{"id":1984,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1979,"mutability":"mutable","name":"left","nameLocation":"53260:4:0","nodeType":"VariableDeclaration","scope":1986,"src":"53252:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1978,"name":"uint256","nodeType":"ElementaryTypeName","src":"53252:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1981,"mutability":"mutable","name":"right","nameLocation":"53274:5:0","nodeType":"VariableDeclaration","scope":1986,"src":"53266:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1980,"name":"uint256","nodeType":"ElementaryTypeName","src":"53266:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1983,"mutability":"mutable","name":"maxPercentDelta","nameLocation":"53289:15:0","nodeType":"VariableDeclaration","scope":1986,"src":"53281:23:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1982,"name":"uint256","nodeType":"ElementaryTypeName","src":"53281:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"53251:54:0"},"returnParameters":{"id":1985,"nodeType":"ParameterList","parameters":[],"src":"53319:0:0"},"scope":3388,"src":"53225:95:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":1987,"nodeType":"StructuredDocumentation","src":"53326:265:0","text":"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`.\n `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%\n Includes error message into revert string on failure."},"functionSelector":"1ecb7d33","id":1998,"implemented":false,"kind":"function","modifiers":[],"name":"assertApproxEqRel","nameLocation":"53605:17:0","nodeType":"FunctionDefinition","parameters":{"id":1996,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1989,"mutability":"mutable","name":"left","nameLocation":"53631:4:0","nodeType":"VariableDeclaration","scope":1998,"src":"53623:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1988,"name":"uint256","nodeType":"ElementaryTypeName","src":"53623:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1991,"mutability":"mutable","name":"right","nameLocation":"53645:5:0","nodeType":"VariableDeclaration","scope":1998,"src":"53637:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1990,"name":"uint256","nodeType":"ElementaryTypeName","src":"53637:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1993,"mutability":"mutable","name":"maxPercentDelta","nameLocation":"53660:15:0","nodeType":"VariableDeclaration","scope":1998,"src":"53652:23:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1992,"name":"uint256","nodeType":"ElementaryTypeName","src":"53652:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1995,"mutability":"mutable","name":"error","nameLocation":"53693:5:0","nodeType":"VariableDeclaration","scope":1998,"src":"53677:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1994,"name":"string","nodeType":"ElementaryTypeName","src":"53677:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"53622:77:0"},"returnParameters":{"id":1997,"nodeType":"ParameterList","parameters":[],"src":"53729:0:0"},"scope":3388,"src":"53596:134:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":1999,"nodeType":"StructuredDocumentation","src":"53736:202:0","text":"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`.\n `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%"},"functionSelector":"fea2d14f","id":2008,"implemented":false,"kind":"function","modifiers":[],"name":"assertApproxEqRel","nameLocation":"53952:17:0","nodeType":"FunctionDefinition","parameters":{"id":2006,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2001,"mutability":"mutable","name":"left","nameLocation":"53977:4:0","nodeType":"VariableDeclaration","scope":2008,"src":"53970:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2000,"name":"int256","nodeType":"ElementaryTypeName","src":"53970:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2003,"mutability":"mutable","name":"right","nameLocation":"53990:5:0","nodeType":"VariableDeclaration","scope":2008,"src":"53983:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2002,"name":"int256","nodeType":"ElementaryTypeName","src":"53983:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2005,"mutability":"mutable","name":"maxPercentDelta","nameLocation":"54005:15:0","nodeType":"VariableDeclaration","scope":2008,"src":"53997:23:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2004,"name":"uint256","nodeType":"ElementaryTypeName","src":"53997:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"53969:52:0"},"returnParameters":{"id":2007,"nodeType":"ParameterList","parameters":[],"src":"54035:0:0"},"scope":3388,"src":"53943:93:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2009,"nodeType":"StructuredDocumentation","src":"54042:264:0","text":"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`.\n `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%\n Includes error message into revert string on failure."},"functionSelector":"ef277d72","id":2020,"implemented":false,"kind":"function","modifiers":[],"name":"assertApproxEqRel","nameLocation":"54320:17:0","nodeType":"FunctionDefinition","parameters":{"id":2018,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2011,"mutability":"mutable","name":"left","nameLocation":"54345:4:0","nodeType":"VariableDeclaration","scope":2020,"src":"54338:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2010,"name":"int256","nodeType":"ElementaryTypeName","src":"54338:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2013,"mutability":"mutable","name":"right","nameLocation":"54358:5:0","nodeType":"VariableDeclaration","scope":2020,"src":"54351:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2012,"name":"int256","nodeType":"ElementaryTypeName","src":"54351:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2015,"mutability":"mutable","name":"maxPercentDelta","nameLocation":"54373:15:0","nodeType":"VariableDeclaration","scope":2020,"src":"54365:23:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2014,"name":"uint256","nodeType":"ElementaryTypeName","src":"54365:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2017,"mutability":"mutable","name":"error","nameLocation":"54406:5:0","nodeType":"VariableDeclaration","scope":2020,"src":"54390:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2016,"name":"string","nodeType":"ElementaryTypeName","src":"54390:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"54337:75:0"},"returnParameters":{"id":2019,"nodeType":"ParameterList","parameters":[],"src":"54442:0:0"},"scope":3388,"src":"54311:132:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2021,"nodeType":"StructuredDocumentation","src":"54449:98:0","text":"Asserts that two `uint256` values are equal, formatting them with decimals in failure message."},"functionSelector":"27af7d9c","id":2030,"implemented":false,"kind":"function","modifiers":[],"name":"assertEqDecimal","nameLocation":"54561:15:0","nodeType":"FunctionDefinition","parameters":{"id":2028,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2023,"mutability":"mutable","name":"left","nameLocation":"54585:4:0","nodeType":"VariableDeclaration","scope":2030,"src":"54577:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2022,"name":"uint256","nodeType":"ElementaryTypeName","src":"54577:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2025,"mutability":"mutable","name":"right","nameLocation":"54599:5:0","nodeType":"VariableDeclaration","scope":2030,"src":"54591:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2024,"name":"uint256","nodeType":"ElementaryTypeName","src":"54591:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2027,"mutability":"mutable","name":"decimals","nameLocation":"54614:8:0","nodeType":"VariableDeclaration","scope":2030,"src":"54606:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2026,"name":"uint256","nodeType":"ElementaryTypeName","src":"54606:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"54576:47:0"},"returnParameters":{"id":2029,"nodeType":"ParameterList","parameters":[],"src":"54637:0:0"},"scope":3388,"src":"54552:86:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2031,"nodeType":"StructuredDocumentation","src":"54644:160:0","text":"Asserts that two `uint256` values are equal, formatting them with decimals in failure message.\n Includes error message into revert string on failure."},"functionSelector":"d0cbbdef","id":2042,"implemented":false,"kind":"function","modifiers":[],"name":"assertEqDecimal","nameLocation":"54818:15:0","nodeType":"FunctionDefinition","parameters":{"id":2040,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2033,"mutability":"mutable","name":"left","nameLocation":"54842:4:0","nodeType":"VariableDeclaration","scope":2042,"src":"54834:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2032,"name":"uint256","nodeType":"ElementaryTypeName","src":"54834:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2035,"mutability":"mutable","name":"right","nameLocation":"54856:5:0","nodeType":"VariableDeclaration","scope":2042,"src":"54848:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2034,"name":"uint256","nodeType":"ElementaryTypeName","src":"54848:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2037,"mutability":"mutable","name":"decimals","nameLocation":"54871:8:0","nodeType":"VariableDeclaration","scope":2042,"src":"54863:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2036,"name":"uint256","nodeType":"ElementaryTypeName","src":"54863:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2039,"mutability":"mutable","name":"error","nameLocation":"54897:5:0","nodeType":"VariableDeclaration","scope":2042,"src":"54881:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2038,"name":"string","nodeType":"ElementaryTypeName","src":"54881:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"54833:70:0"},"returnParameters":{"id":2041,"nodeType":"ParameterList","parameters":[],"src":"54917:0:0"},"scope":3388,"src":"54809:109:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2043,"nodeType":"StructuredDocumentation","src":"54924:97:0","text":"Asserts that two `int256` values are equal, formatting them with decimals in failure message."},"functionSelector":"48016c04","id":2052,"implemented":false,"kind":"function","modifiers":[],"name":"assertEqDecimal","nameLocation":"55035:15:0","nodeType":"FunctionDefinition","parameters":{"id":2050,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2045,"mutability":"mutable","name":"left","nameLocation":"55058:4:0","nodeType":"VariableDeclaration","scope":2052,"src":"55051:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2044,"name":"int256","nodeType":"ElementaryTypeName","src":"55051:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2047,"mutability":"mutable","name":"right","nameLocation":"55071:5:0","nodeType":"VariableDeclaration","scope":2052,"src":"55064:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2046,"name":"int256","nodeType":"ElementaryTypeName","src":"55064:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2049,"mutability":"mutable","name":"decimals","nameLocation":"55086:8:0","nodeType":"VariableDeclaration","scope":2052,"src":"55078:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2048,"name":"uint256","nodeType":"ElementaryTypeName","src":"55078:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"55050:45:0"},"returnParameters":{"id":2051,"nodeType":"ParameterList","parameters":[],"src":"55109:0:0"},"scope":3388,"src":"55026:84:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2053,"nodeType":"StructuredDocumentation","src":"55116:159:0","text":"Asserts that two `int256` values are equal, formatting them with decimals in failure message.\n Includes error message into revert string on failure."},"functionSelector":"7e77b0c5","id":2064,"implemented":false,"kind":"function","modifiers":[],"name":"assertEqDecimal","nameLocation":"55289:15:0","nodeType":"FunctionDefinition","parameters":{"id":2062,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2055,"mutability":"mutable","name":"left","nameLocation":"55312:4:0","nodeType":"VariableDeclaration","scope":2064,"src":"55305:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2054,"name":"int256","nodeType":"ElementaryTypeName","src":"55305:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2057,"mutability":"mutable","name":"right","nameLocation":"55325:5:0","nodeType":"VariableDeclaration","scope":2064,"src":"55318:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2056,"name":"int256","nodeType":"ElementaryTypeName","src":"55318:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2059,"mutability":"mutable","name":"decimals","nameLocation":"55340:8:0","nodeType":"VariableDeclaration","scope":2064,"src":"55332:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2058,"name":"uint256","nodeType":"ElementaryTypeName","src":"55332:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2061,"mutability":"mutable","name":"error","nameLocation":"55366:5:0","nodeType":"VariableDeclaration","scope":2064,"src":"55350:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2060,"name":"string","nodeType":"ElementaryTypeName","src":"55350:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"55304:68:0"},"returnParameters":{"id":2063,"nodeType":"ParameterList","parameters":[],"src":"55386:0:0"},"scope":3388,"src":"55280:107:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2065,"nodeType":"StructuredDocumentation","src":"55393:45:0","text":"Asserts that two `bool` values are equal."},"functionSelector":"f7fe3477","id":2072,"implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"55452:8:0","nodeType":"FunctionDefinition","parameters":{"id":2070,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2067,"mutability":"mutable","name":"left","nameLocation":"55466:4:0","nodeType":"VariableDeclaration","scope":2072,"src":"55461:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2066,"name":"bool","nodeType":"ElementaryTypeName","src":"55461:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2069,"mutability":"mutable","name":"right","nameLocation":"55477:5:0","nodeType":"VariableDeclaration","scope":2072,"src":"55472:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2068,"name":"bool","nodeType":"ElementaryTypeName","src":"55472:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"55460:23:0"},"returnParameters":{"id":2071,"nodeType":"ParameterList","parameters":[],"src":"55497:0:0"},"scope":3388,"src":"55443:55:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2073,"nodeType":"StructuredDocumentation","src":"55504:102:0","text":"Asserts that two `bool` values are equal and includes error message into revert string on failure."},"functionSelector":"4db19e7e","id":2082,"implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"55620:8:0","nodeType":"FunctionDefinition","parameters":{"id":2080,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2075,"mutability":"mutable","name":"left","nameLocation":"55634:4:0","nodeType":"VariableDeclaration","scope":2082,"src":"55629:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2074,"name":"bool","nodeType":"ElementaryTypeName","src":"55629:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2077,"mutability":"mutable","name":"right","nameLocation":"55645:5:0","nodeType":"VariableDeclaration","scope":2082,"src":"55640:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2076,"name":"bool","nodeType":"ElementaryTypeName","src":"55640:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2079,"mutability":"mutable","name":"error","nameLocation":"55668:5:0","nodeType":"VariableDeclaration","scope":2082,"src":"55652:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2078,"name":"string","nodeType":"ElementaryTypeName","src":"55652:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"55628:46:0"},"returnParameters":{"id":2081,"nodeType":"ParameterList","parameters":[],"src":"55688:0:0"},"scope":3388,"src":"55611:78:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2083,"nodeType":"StructuredDocumentation","src":"55695:47:0","text":"Asserts that two `string` values are equal."},"functionSelector":"f320d963","id":2090,"implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"55756:8:0","nodeType":"FunctionDefinition","parameters":{"id":2088,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2085,"mutability":"mutable","name":"left","nameLocation":"55781:4:0","nodeType":"VariableDeclaration","scope":2090,"src":"55765:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2084,"name":"string","nodeType":"ElementaryTypeName","src":"55765:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":2087,"mutability":"mutable","name":"right","nameLocation":"55803:5:0","nodeType":"VariableDeclaration","scope":2090,"src":"55787:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2086,"name":"string","nodeType":"ElementaryTypeName","src":"55787:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"55764:45:0"},"returnParameters":{"id":2089,"nodeType":"ParameterList","parameters":[],"src":"55823:0:0"},"scope":3388,"src":"55747:77:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2091,"nodeType":"StructuredDocumentation","src":"55830:104:0","text":"Asserts that two `string` values are equal and includes error message into revert string on failure."},"functionSelector":"36f656d8","id":2100,"implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"55948:8:0","nodeType":"FunctionDefinition","parameters":{"id":2098,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2093,"mutability":"mutable","name":"left","nameLocation":"55973:4:0","nodeType":"VariableDeclaration","scope":2100,"src":"55957:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2092,"name":"string","nodeType":"ElementaryTypeName","src":"55957:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":2095,"mutability":"mutable","name":"right","nameLocation":"55995:5:0","nodeType":"VariableDeclaration","scope":2100,"src":"55979:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2094,"name":"string","nodeType":"ElementaryTypeName","src":"55979:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":2097,"mutability":"mutable","name":"error","nameLocation":"56018:5:0","nodeType":"VariableDeclaration","scope":2100,"src":"56002:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2096,"name":"string","nodeType":"ElementaryTypeName","src":"56002:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"55956:68:0"},"returnParameters":{"id":2099,"nodeType":"ParameterList","parameters":[],"src":"56038:0:0"},"scope":3388,"src":"55939:100:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2101,"nodeType":"StructuredDocumentation","src":"56045:46:0","text":"Asserts that two `bytes` values are equal."},"functionSelector":"97624631","id":2108,"implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"56105:8:0","nodeType":"FunctionDefinition","parameters":{"id":2106,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2103,"mutability":"mutable","name":"left","nameLocation":"56129:4:0","nodeType":"VariableDeclaration","scope":2108,"src":"56114:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2102,"name":"bytes","nodeType":"ElementaryTypeName","src":"56114:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2105,"mutability":"mutable","name":"right","nameLocation":"56150:5:0","nodeType":"VariableDeclaration","scope":2108,"src":"56135:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2104,"name":"bytes","nodeType":"ElementaryTypeName","src":"56135:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"56113:43:0"},"returnParameters":{"id":2107,"nodeType":"ParameterList","parameters":[],"src":"56170:0:0"},"scope":3388,"src":"56096:75:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2109,"nodeType":"StructuredDocumentation","src":"56177:103:0","text":"Asserts that two `bytes` values are equal and includes error message into revert string on failure."},"functionSelector":"e24fed00","id":2118,"implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"56294:8:0","nodeType":"FunctionDefinition","parameters":{"id":2116,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2111,"mutability":"mutable","name":"left","nameLocation":"56318:4:0","nodeType":"VariableDeclaration","scope":2118,"src":"56303:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2110,"name":"bytes","nodeType":"ElementaryTypeName","src":"56303:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2113,"mutability":"mutable","name":"right","nameLocation":"56339:5:0","nodeType":"VariableDeclaration","scope":2118,"src":"56324:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2112,"name":"bytes","nodeType":"ElementaryTypeName","src":"56324:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2115,"mutability":"mutable","name":"error","nameLocation":"56362:5:0","nodeType":"VariableDeclaration","scope":2118,"src":"56346:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2114,"name":"string","nodeType":"ElementaryTypeName","src":"56346:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"56302:66:0"},"returnParameters":{"id":2117,"nodeType":"ParameterList","parameters":[],"src":"56382:0:0"},"scope":3388,"src":"56285:98:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2119,"nodeType":"StructuredDocumentation","src":"56389:55:0","text":"Asserts that two arrays of `bool` values are equal."},"functionSelector":"707df785","id":2128,"implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"56458:8:0","nodeType":"FunctionDefinition","parameters":{"id":2126,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2122,"mutability":"mutable","name":"left","nameLocation":"56483:4:0","nodeType":"VariableDeclaration","scope":2128,"src":"56467:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":2120,"name":"bool","nodeType":"ElementaryTypeName","src":"56467:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2121,"nodeType":"ArrayTypeName","src":"56467:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"},{"constant":false,"id":2125,"mutability":"mutable","name":"right","nameLocation":"56505:5:0","nodeType":"VariableDeclaration","scope":2128,"src":"56489:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":2123,"name":"bool","nodeType":"ElementaryTypeName","src":"56489:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2124,"nodeType":"ArrayTypeName","src":"56489:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"56466:45:0"},"returnParameters":{"id":2127,"nodeType":"ParameterList","parameters":[],"src":"56525:0:0"},"scope":3388,"src":"56449:77:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2129,"nodeType":"StructuredDocumentation","src":"56532:112:0","text":"Asserts that two arrays of `bool` values are equal and includes error message into revert string on failure."},"functionSelector":"e48a8f8d","id":2140,"implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"56658:8:0","nodeType":"FunctionDefinition","parameters":{"id":2138,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2132,"mutability":"mutable","name":"left","nameLocation":"56683:4:0","nodeType":"VariableDeclaration","scope":2140,"src":"56667:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":2130,"name":"bool","nodeType":"ElementaryTypeName","src":"56667:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2131,"nodeType":"ArrayTypeName","src":"56667:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"},{"constant":false,"id":2135,"mutability":"mutable","name":"right","nameLocation":"56705:5:0","nodeType":"VariableDeclaration","scope":2140,"src":"56689:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":2133,"name":"bool","nodeType":"ElementaryTypeName","src":"56689:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2134,"nodeType":"ArrayTypeName","src":"56689:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"},{"constant":false,"id":2137,"mutability":"mutable","name":"error","nameLocation":"56728:5:0","nodeType":"VariableDeclaration","scope":2140,"src":"56712:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2136,"name":"string","nodeType":"ElementaryTypeName","src":"56712:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"56666:68:0"},"returnParameters":{"id":2139,"nodeType":"ParameterList","parameters":[],"src":"56748:0:0"},"scope":3388,"src":"56649:100:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2141,"nodeType":"StructuredDocumentation","src":"56755:57:0","text":"Asserts that two arrays of `uint256 values are equal."},"functionSelector":"975d5a12","id":2150,"implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"56826:8:0","nodeType":"FunctionDefinition","parameters":{"id":2148,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2144,"mutability":"mutable","name":"left","nameLocation":"56854:4:0","nodeType":"VariableDeclaration","scope":2150,"src":"56835:23:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":2142,"name":"uint256","nodeType":"ElementaryTypeName","src":"56835:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2143,"nodeType":"ArrayTypeName","src":"56835:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":2147,"mutability":"mutable","name":"right","nameLocation":"56879:5:0","nodeType":"VariableDeclaration","scope":2150,"src":"56860:24:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":2145,"name":"uint256","nodeType":"ElementaryTypeName","src":"56860:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2146,"nodeType":"ArrayTypeName","src":"56860:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"56834:51:0"},"returnParameters":{"id":2149,"nodeType":"ParameterList","parameters":[],"src":"56899:0:0"},"scope":3388,"src":"56817:83:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2151,"nodeType":"StructuredDocumentation","src":"56906:115:0","text":"Asserts that two arrays of `uint256` values are equal and includes error message into revert string on failure."},"functionSelector":"5d18c73a","id":2162,"implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"57035:8:0","nodeType":"FunctionDefinition","parameters":{"id":2160,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2154,"mutability":"mutable","name":"left","nameLocation":"57063:4:0","nodeType":"VariableDeclaration","scope":2162,"src":"57044:23:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":2152,"name":"uint256","nodeType":"ElementaryTypeName","src":"57044:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2153,"nodeType":"ArrayTypeName","src":"57044:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":2157,"mutability":"mutable","name":"right","nameLocation":"57088:5:0","nodeType":"VariableDeclaration","scope":2162,"src":"57069:24:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":2155,"name":"uint256","nodeType":"ElementaryTypeName","src":"57069:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2156,"nodeType":"ArrayTypeName","src":"57069:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":2159,"mutability":"mutable","name":"error","nameLocation":"57111:5:0","nodeType":"VariableDeclaration","scope":2162,"src":"57095:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2158,"name":"string","nodeType":"ElementaryTypeName","src":"57095:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"57043:74:0"},"returnParameters":{"id":2161,"nodeType":"ParameterList","parameters":[],"src":"57131:0:0"},"scope":3388,"src":"57026:106:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2163,"nodeType":"StructuredDocumentation","src":"57138:57:0","text":"Asserts that two arrays of `int256` values are equal."},"functionSelector":"711043ac","id":2172,"implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"57209:8:0","nodeType":"FunctionDefinition","parameters":{"id":2170,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2166,"mutability":"mutable","name":"left","nameLocation":"57236:4:0","nodeType":"VariableDeclaration","scope":2172,"src":"57218:22:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_calldata_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":2164,"name":"int256","nodeType":"ElementaryTypeName","src":"57218:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":2165,"nodeType":"ArrayTypeName","src":"57218:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"},{"constant":false,"id":2169,"mutability":"mutable","name":"right","nameLocation":"57260:5:0","nodeType":"VariableDeclaration","scope":2172,"src":"57242:23:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_calldata_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":2167,"name":"int256","nodeType":"ElementaryTypeName","src":"57242:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":2168,"nodeType":"ArrayTypeName","src":"57242:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"}],"src":"57217:49:0"},"returnParameters":{"id":2171,"nodeType":"ParameterList","parameters":[],"src":"57280:0:0"},"scope":3388,"src":"57200:81:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2173,"nodeType":"StructuredDocumentation","src":"57287:114:0","text":"Asserts that two arrays of `int256` values are equal and includes error message into revert string on failure."},"functionSelector":"191f1b30","id":2184,"implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"57415:8:0","nodeType":"FunctionDefinition","parameters":{"id":2182,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2176,"mutability":"mutable","name":"left","nameLocation":"57442:4:0","nodeType":"VariableDeclaration","scope":2184,"src":"57424:22:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_calldata_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":2174,"name":"int256","nodeType":"ElementaryTypeName","src":"57424:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":2175,"nodeType":"ArrayTypeName","src":"57424:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"},{"constant":false,"id":2179,"mutability":"mutable","name":"right","nameLocation":"57466:5:0","nodeType":"VariableDeclaration","scope":2184,"src":"57448:23:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_calldata_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":2177,"name":"int256","nodeType":"ElementaryTypeName","src":"57448:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":2178,"nodeType":"ArrayTypeName","src":"57448:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"},{"constant":false,"id":2181,"mutability":"mutable","name":"error","nameLocation":"57489:5:0","nodeType":"VariableDeclaration","scope":2184,"src":"57473:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2180,"name":"string","nodeType":"ElementaryTypeName","src":"57473:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"57423:72:0"},"returnParameters":{"id":2183,"nodeType":"ParameterList","parameters":[],"src":"57509:0:0"},"scope":3388,"src":"57406:104:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2185,"nodeType":"StructuredDocumentation","src":"57516:48:0","text":"Asserts that two `uint256` values are equal."},"functionSelector":"98296c54","id":2192,"implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"57578:8:0","nodeType":"FunctionDefinition","parameters":{"id":2190,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2187,"mutability":"mutable","name":"left","nameLocation":"57595:4:0","nodeType":"VariableDeclaration","scope":2192,"src":"57587:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2186,"name":"uint256","nodeType":"ElementaryTypeName","src":"57587:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2189,"mutability":"mutable","name":"right","nameLocation":"57609:5:0","nodeType":"VariableDeclaration","scope":2192,"src":"57601:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2188,"name":"uint256","nodeType":"ElementaryTypeName","src":"57601:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"57586:29:0"},"returnParameters":{"id":2191,"nodeType":"ParameterList","parameters":[],"src":"57629:0:0"},"scope":3388,"src":"57569:61:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2193,"nodeType":"StructuredDocumentation","src":"57636:58:0","text":"Asserts that two arrays of `address` values are equal."},"functionSelector":"3868ac34","id":2202,"implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"57708:8:0","nodeType":"FunctionDefinition","parameters":{"id":2200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2196,"mutability":"mutable","name":"left","nameLocation":"57736:4:0","nodeType":"VariableDeclaration","scope":2202,"src":"57717:23:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":2194,"name":"address","nodeType":"ElementaryTypeName","src":"57717:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2195,"nodeType":"ArrayTypeName","src":"57717:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":2199,"mutability":"mutable","name":"right","nameLocation":"57761:5:0","nodeType":"VariableDeclaration","scope":2202,"src":"57742:24:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":2197,"name":"address","nodeType":"ElementaryTypeName","src":"57742:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2198,"nodeType":"ArrayTypeName","src":"57742:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"57716:51:0"},"returnParameters":{"id":2201,"nodeType":"ParameterList","parameters":[],"src":"57781:0:0"},"scope":3388,"src":"57699:83:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2203,"nodeType":"StructuredDocumentation","src":"57788:115:0","text":"Asserts that two arrays of `address` values are equal and includes error message into revert string on failure."},"functionSelector":"3e9173c5","id":2214,"implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"57917:8:0","nodeType":"FunctionDefinition","parameters":{"id":2212,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2206,"mutability":"mutable","name":"left","nameLocation":"57945:4:0","nodeType":"VariableDeclaration","scope":2214,"src":"57926:23:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":2204,"name":"address","nodeType":"ElementaryTypeName","src":"57926:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2205,"nodeType":"ArrayTypeName","src":"57926:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":2209,"mutability":"mutable","name":"right","nameLocation":"57970:5:0","nodeType":"VariableDeclaration","scope":2214,"src":"57951:24:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":2207,"name":"address","nodeType":"ElementaryTypeName","src":"57951:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2208,"nodeType":"ArrayTypeName","src":"57951:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":2211,"mutability":"mutable","name":"error","nameLocation":"57993:5:0","nodeType":"VariableDeclaration","scope":2214,"src":"57977:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2210,"name":"string","nodeType":"ElementaryTypeName","src":"57977:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"57925:74:0"},"returnParameters":{"id":2213,"nodeType":"ParameterList","parameters":[],"src":"58013:0:0"},"scope":3388,"src":"57908:106:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2215,"nodeType":"StructuredDocumentation","src":"58020:58:0","text":"Asserts that two arrays of `bytes32` values are equal."},"functionSelector":"0cc9ee84","id":2224,"implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"58092:8:0","nodeType":"FunctionDefinition","parameters":{"id":2222,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2218,"mutability":"mutable","name":"left","nameLocation":"58120:4:0","nodeType":"VariableDeclaration","scope":2224,"src":"58101:23:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":2216,"name":"bytes32","nodeType":"ElementaryTypeName","src":"58101:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2217,"nodeType":"ArrayTypeName","src":"58101:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":2221,"mutability":"mutable","name":"right","nameLocation":"58145:5:0","nodeType":"VariableDeclaration","scope":2224,"src":"58126:24:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":2219,"name":"bytes32","nodeType":"ElementaryTypeName","src":"58126:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2220,"nodeType":"ArrayTypeName","src":"58126:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"58100:51:0"},"returnParameters":{"id":2223,"nodeType":"ParameterList","parameters":[],"src":"58165:0:0"},"scope":3388,"src":"58083:83:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2225,"nodeType":"StructuredDocumentation","src":"58172:115:0","text":"Asserts that two arrays of `bytes32` values are equal and includes error message into revert string on failure."},"functionSelector":"e03e9177","id":2236,"implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"58301:8:0","nodeType":"FunctionDefinition","parameters":{"id":2234,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2228,"mutability":"mutable","name":"left","nameLocation":"58329:4:0","nodeType":"VariableDeclaration","scope":2236,"src":"58310:23:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":2226,"name":"bytes32","nodeType":"ElementaryTypeName","src":"58310:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2227,"nodeType":"ArrayTypeName","src":"58310:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":2231,"mutability":"mutable","name":"right","nameLocation":"58354:5:0","nodeType":"VariableDeclaration","scope":2236,"src":"58335:24:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":2229,"name":"bytes32","nodeType":"ElementaryTypeName","src":"58335:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2230,"nodeType":"ArrayTypeName","src":"58335:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":2233,"mutability":"mutable","name":"error","nameLocation":"58377:5:0","nodeType":"VariableDeclaration","scope":2236,"src":"58361:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2232,"name":"string","nodeType":"ElementaryTypeName","src":"58361:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"58309:74:0"},"returnParameters":{"id":2235,"nodeType":"ParameterList","parameters":[],"src":"58397:0:0"},"scope":3388,"src":"58292:106:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2237,"nodeType":"StructuredDocumentation","src":"58404:57:0","text":"Asserts that two arrays of `string` values are equal."},"functionSelector":"cf1c049c","id":2246,"implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"58475:8:0","nodeType":"FunctionDefinition","parameters":{"id":2244,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2240,"mutability":"mutable","name":"left","nameLocation":"58502:4:0","nodeType":"VariableDeclaration","scope":2246,"src":"58484:22:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_string_calldata_ptr_$dyn_calldata_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":2238,"name":"string","nodeType":"ElementaryTypeName","src":"58484:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":2239,"nodeType":"ArrayTypeName","src":"58484:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":2243,"mutability":"mutable","name":"right","nameLocation":"58526:5:0","nodeType":"VariableDeclaration","scope":2246,"src":"58508:23:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_string_calldata_ptr_$dyn_calldata_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":2241,"name":"string","nodeType":"ElementaryTypeName","src":"58508:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":2242,"nodeType":"ArrayTypeName","src":"58508:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"58483:49:0"},"returnParameters":{"id":2245,"nodeType":"ParameterList","parameters":[],"src":"58546:0:0"},"scope":3388,"src":"58466:81:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2247,"nodeType":"StructuredDocumentation","src":"58553:114:0","text":"Asserts that two arrays of `string` values are equal and includes error message into revert string on failure."},"functionSelector":"eff6b27d","id":2258,"implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"58681:8:0","nodeType":"FunctionDefinition","parameters":{"id":2256,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2250,"mutability":"mutable","name":"left","nameLocation":"58708:4:0","nodeType":"VariableDeclaration","scope":2258,"src":"58690:22:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_string_calldata_ptr_$dyn_calldata_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":2248,"name":"string","nodeType":"ElementaryTypeName","src":"58690:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":2249,"nodeType":"ArrayTypeName","src":"58690:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":2253,"mutability":"mutable","name":"right","nameLocation":"58732:5:0","nodeType":"VariableDeclaration","scope":2258,"src":"58714:23:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_string_calldata_ptr_$dyn_calldata_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":2251,"name":"string","nodeType":"ElementaryTypeName","src":"58714:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":2252,"nodeType":"ArrayTypeName","src":"58714:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":2255,"mutability":"mutable","name":"error","nameLocation":"58755:5:0","nodeType":"VariableDeclaration","scope":2258,"src":"58739:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2254,"name":"string","nodeType":"ElementaryTypeName","src":"58739:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"58689:72:0"},"returnParameters":{"id":2257,"nodeType":"ParameterList","parameters":[],"src":"58775:0:0"},"scope":3388,"src":"58672:104:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2259,"nodeType":"StructuredDocumentation","src":"58782:56:0","text":"Asserts that two arrays of `bytes` values are equal."},"functionSelector":"e5fb9b4a","id":2268,"implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"58852:8:0","nodeType":"FunctionDefinition","parameters":{"id":2266,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2262,"mutability":"mutable","name":"left","nameLocation":"58878:4:0","nodeType":"VariableDeclaration","scope":2268,"src":"58861:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":2260,"name":"bytes","nodeType":"ElementaryTypeName","src":"58861:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":2261,"nodeType":"ArrayTypeName","src":"58861:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":2265,"mutability":"mutable","name":"right","nameLocation":"58901:5:0","nodeType":"VariableDeclaration","scope":2268,"src":"58884:22:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":2263,"name":"bytes","nodeType":"ElementaryTypeName","src":"58884:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":2264,"nodeType":"ArrayTypeName","src":"58884:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"58860:47:0"},"returnParameters":{"id":2267,"nodeType":"ParameterList","parameters":[],"src":"58921:0:0"},"scope":3388,"src":"58843:79:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2269,"nodeType":"StructuredDocumentation","src":"58928:113:0","text":"Asserts that two arrays of `bytes` values are equal and includes error message into revert string on failure."},"functionSelector":"f413f0b6","id":2280,"implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"59055:8:0","nodeType":"FunctionDefinition","parameters":{"id":2278,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2272,"mutability":"mutable","name":"left","nameLocation":"59081:4:0","nodeType":"VariableDeclaration","scope":2280,"src":"59064:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":2270,"name":"bytes","nodeType":"ElementaryTypeName","src":"59064:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":2271,"nodeType":"ArrayTypeName","src":"59064:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":2275,"mutability":"mutable","name":"right","nameLocation":"59104:5:0","nodeType":"VariableDeclaration","scope":2280,"src":"59087:22:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":2273,"name":"bytes","nodeType":"ElementaryTypeName","src":"59087:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":2274,"nodeType":"ArrayTypeName","src":"59087:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":2277,"mutability":"mutable","name":"error","nameLocation":"59127:5:0","nodeType":"VariableDeclaration","scope":2280,"src":"59111:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2276,"name":"string","nodeType":"ElementaryTypeName","src":"59111:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"59063:70:0"},"returnParameters":{"id":2279,"nodeType":"ParameterList","parameters":[],"src":"59147:0:0"},"scope":3388,"src":"59046:102:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2281,"nodeType":"StructuredDocumentation","src":"59154:105:0","text":"Asserts that two `uint256` values are equal and includes error message into revert string on failure."},"functionSelector":"88b44c85","id":2290,"implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"59273:8:0","nodeType":"FunctionDefinition","parameters":{"id":2288,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2283,"mutability":"mutable","name":"left","nameLocation":"59290:4:0","nodeType":"VariableDeclaration","scope":2290,"src":"59282:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2282,"name":"uint256","nodeType":"ElementaryTypeName","src":"59282:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2285,"mutability":"mutable","name":"right","nameLocation":"59304:5:0","nodeType":"VariableDeclaration","scope":2290,"src":"59296:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2284,"name":"uint256","nodeType":"ElementaryTypeName","src":"59296:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2287,"mutability":"mutable","name":"error","nameLocation":"59327:5:0","nodeType":"VariableDeclaration","scope":2290,"src":"59311:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2286,"name":"string","nodeType":"ElementaryTypeName","src":"59311:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"59281:52:0"},"returnParameters":{"id":2289,"nodeType":"ParameterList","parameters":[],"src":"59347:0:0"},"scope":3388,"src":"59264:84:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2291,"nodeType":"StructuredDocumentation","src":"59354:47:0","text":"Asserts that two `int256` values are equal."},"functionSelector":"fe74f05b","id":2298,"implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"59415:8:0","nodeType":"FunctionDefinition","parameters":{"id":2296,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2293,"mutability":"mutable","name":"left","nameLocation":"59431:4:0","nodeType":"VariableDeclaration","scope":2298,"src":"59424:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2292,"name":"int256","nodeType":"ElementaryTypeName","src":"59424:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2295,"mutability":"mutable","name":"right","nameLocation":"59444:5:0","nodeType":"VariableDeclaration","scope":2298,"src":"59437:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2294,"name":"int256","nodeType":"ElementaryTypeName","src":"59437:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"59423:27:0"},"returnParameters":{"id":2297,"nodeType":"ParameterList","parameters":[],"src":"59464:0:0"},"scope":3388,"src":"59406:59:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2299,"nodeType":"StructuredDocumentation","src":"59471:104:0","text":"Asserts that two `int256` values are equal and includes error message into revert string on failure."},"functionSelector":"714a2f13","id":2308,"implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"59589:8:0","nodeType":"FunctionDefinition","parameters":{"id":2306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2301,"mutability":"mutable","name":"left","nameLocation":"59605:4:0","nodeType":"VariableDeclaration","scope":2308,"src":"59598:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2300,"name":"int256","nodeType":"ElementaryTypeName","src":"59598:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2303,"mutability":"mutable","name":"right","nameLocation":"59618:5:0","nodeType":"VariableDeclaration","scope":2308,"src":"59611:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2302,"name":"int256","nodeType":"ElementaryTypeName","src":"59611:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2305,"mutability":"mutable","name":"error","nameLocation":"59641:5:0","nodeType":"VariableDeclaration","scope":2308,"src":"59625:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2304,"name":"string","nodeType":"ElementaryTypeName","src":"59625:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"59597:50:0"},"returnParameters":{"id":2307,"nodeType":"ParameterList","parameters":[],"src":"59661:0:0"},"scope":3388,"src":"59580:82:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2309,"nodeType":"StructuredDocumentation","src":"59668:48:0","text":"Asserts that two `address` values are equal."},"functionSelector":"515361f6","id":2316,"implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"59730:8:0","nodeType":"FunctionDefinition","parameters":{"id":2314,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2311,"mutability":"mutable","name":"left","nameLocation":"59747:4:0","nodeType":"VariableDeclaration","scope":2316,"src":"59739:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2310,"name":"address","nodeType":"ElementaryTypeName","src":"59739:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2313,"mutability":"mutable","name":"right","nameLocation":"59761:5:0","nodeType":"VariableDeclaration","scope":2316,"src":"59753:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2312,"name":"address","nodeType":"ElementaryTypeName","src":"59753:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"59738:29:0"},"returnParameters":{"id":2315,"nodeType":"ParameterList","parameters":[],"src":"59781:0:0"},"scope":3388,"src":"59721:61:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2317,"nodeType":"StructuredDocumentation","src":"59788:105:0","text":"Asserts that two `address` values are equal and includes error message into revert string on failure."},"functionSelector":"2f2769d1","id":2326,"implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"59907:8:0","nodeType":"FunctionDefinition","parameters":{"id":2324,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2319,"mutability":"mutable","name":"left","nameLocation":"59924:4:0","nodeType":"VariableDeclaration","scope":2326,"src":"59916:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2318,"name":"address","nodeType":"ElementaryTypeName","src":"59916:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2321,"mutability":"mutable","name":"right","nameLocation":"59938:5:0","nodeType":"VariableDeclaration","scope":2326,"src":"59930:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2320,"name":"address","nodeType":"ElementaryTypeName","src":"59930:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2323,"mutability":"mutable","name":"error","nameLocation":"59961:5:0","nodeType":"VariableDeclaration","scope":2326,"src":"59945:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2322,"name":"string","nodeType":"ElementaryTypeName","src":"59945:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"59915:52:0"},"returnParameters":{"id":2325,"nodeType":"ParameterList","parameters":[],"src":"59981:0:0"},"scope":3388,"src":"59898:84:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2327,"nodeType":"StructuredDocumentation","src":"59988:48:0","text":"Asserts that two `bytes32` values are equal."},"functionSelector":"7c84c69b","id":2334,"implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"60050:8:0","nodeType":"FunctionDefinition","parameters":{"id":2332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2329,"mutability":"mutable","name":"left","nameLocation":"60067:4:0","nodeType":"VariableDeclaration","scope":2334,"src":"60059:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2328,"name":"bytes32","nodeType":"ElementaryTypeName","src":"60059:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2331,"mutability":"mutable","name":"right","nameLocation":"60081:5:0","nodeType":"VariableDeclaration","scope":2334,"src":"60073:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2330,"name":"bytes32","nodeType":"ElementaryTypeName","src":"60073:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"60058:29:0"},"returnParameters":{"id":2333,"nodeType":"ParameterList","parameters":[],"src":"60101:0:0"},"scope":3388,"src":"60041:61:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2335,"nodeType":"StructuredDocumentation","src":"60108:105:0","text":"Asserts that two `bytes32` values are equal and includes error message into revert string on failure."},"functionSelector":"c1fa1ed0","id":2344,"implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"60227:8:0","nodeType":"FunctionDefinition","parameters":{"id":2342,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2337,"mutability":"mutable","name":"left","nameLocation":"60244:4:0","nodeType":"VariableDeclaration","scope":2344,"src":"60236:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2336,"name":"bytes32","nodeType":"ElementaryTypeName","src":"60236:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2339,"mutability":"mutable","name":"right","nameLocation":"60258:5:0","nodeType":"VariableDeclaration","scope":2344,"src":"60250:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2338,"name":"bytes32","nodeType":"ElementaryTypeName","src":"60250:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2341,"mutability":"mutable","name":"error","nameLocation":"60281:5:0","nodeType":"VariableDeclaration","scope":2344,"src":"60265:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2340,"name":"string","nodeType":"ElementaryTypeName","src":"60265:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"60235:52:0"},"returnParameters":{"id":2343,"nodeType":"ParameterList","parameters":[],"src":"60301:0:0"},"scope":3388,"src":"60218:84:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2345,"nodeType":"StructuredDocumentation","src":"60308:46:0","text":"Asserts that the given condition is false."},"functionSelector":"a5982885","id":2350,"implemented":false,"kind":"function","modifiers":[],"name":"assertFalse","nameLocation":"60368:11:0","nodeType":"FunctionDefinition","parameters":{"id":2348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2347,"mutability":"mutable","name":"condition","nameLocation":"60385:9:0","nodeType":"VariableDeclaration","scope":2350,"src":"60380:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2346,"name":"bool","nodeType":"ElementaryTypeName","src":"60380:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"60379:16:0"},"returnParameters":{"id":2349,"nodeType":"ParameterList","parameters":[],"src":"60409:0:0"},"scope":3388,"src":"60359:51:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2351,"nodeType":"StructuredDocumentation","src":"60416:103:0","text":"Asserts that the given condition is false and includes error message into revert string on failure."},"functionSelector":"7ba04809","id":2358,"implemented":false,"kind":"function","modifiers":[],"name":"assertFalse","nameLocation":"60533:11:0","nodeType":"FunctionDefinition","parameters":{"id":2356,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2353,"mutability":"mutable","name":"condition","nameLocation":"60550:9:0","nodeType":"VariableDeclaration","scope":2358,"src":"60545:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2352,"name":"bool","nodeType":"ElementaryTypeName","src":"60545:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2355,"mutability":"mutable","name":"error","nameLocation":"60577:5:0","nodeType":"VariableDeclaration","scope":2358,"src":"60561:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2354,"name":"string","nodeType":"ElementaryTypeName","src":"60561:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"60544:39:0"},"returnParameters":{"id":2357,"nodeType":"ParameterList","parameters":[],"src":"60597:0:0"},"scope":3388,"src":"60524:74:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2359,"nodeType":"StructuredDocumentation","src":"60604:150:0","text":"Compares two `uint256` values. Expects first value to be greater than or equal to second.\n Formats values with decimals in failure message."},"functionSelector":"3d1fe08a","id":2368,"implemented":false,"kind":"function","modifiers":[],"name":"assertGeDecimal","nameLocation":"60768:15:0","nodeType":"FunctionDefinition","parameters":{"id":2366,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2361,"mutability":"mutable","name":"left","nameLocation":"60792:4:0","nodeType":"VariableDeclaration","scope":2368,"src":"60784:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2360,"name":"uint256","nodeType":"ElementaryTypeName","src":"60784:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2363,"mutability":"mutable","name":"right","nameLocation":"60806:5:0","nodeType":"VariableDeclaration","scope":2368,"src":"60798:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2362,"name":"uint256","nodeType":"ElementaryTypeName","src":"60798:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2365,"mutability":"mutable","name":"decimals","nameLocation":"60821:8:0","nodeType":"VariableDeclaration","scope":2368,"src":"60813:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2364,"name":"uint256","nodeType":"ElementaryTypeName","src":"60813:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"60783:47:0"},"returnParameters":{"id":2367,"nodeType":"ParameterList","parameters":[],"src":"60844:0:0"},"scope":3388,"src":"60759:86:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2369,"nodeType":"StructuredDocumentation","src":"60851:204:0","text":"Compares two `uint256` values. Expects first value to be greater than or equal to second.\n Formats values with decimals in failure message. Includes error message into revert string on failure."},"functionSelector":"8bff9133","id":2380,"implemented":false,"kind":"function","modifiers":[],"name":"assertGeDecimal","nameLocation":"61069:15:0","nodeType":"FunctionDefinition","parameters":{"id":2378,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2371,"mutability":"mutable","name":"left","nameLocation":"61093:4:0","nodeType":"VariableDeclaration","scope":2380,"src":"61085:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2370,"name":"uint256","nodeType":"ElementaryTypeName","src":"61085:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2373,"mutability":"mutable","name":"right","nameLocation":"61107:5:0","nodeType":"VariableDeclaration","scope":2380,"src":"61099:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2372,"name":"uint256","nodeType":"ElementaryTypeName","src":"61099:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2375,"mutability":"mutable","name":"decimals","nameLocation":"61122:8:0","nodeType":"VariableDeclaration","scope":2380,"src":"61114:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2374,"name":"uint256","nodeType":"ElementaryTypeName","src":"61114:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2377,"mutability":"mutable","name":"error","nameLocation":"61148:5:0","nodeType":"VariableDeclaration","scope":2380,"src":"61132:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2376,"name":"string","nodeType":"ElementaryTypeName","src":"61132:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"61084:70:0"},"returnParameters":{"id":2379,"nodeType":"ParameterList","parameters":[],"src":"61168:0:0"},"scope":3388,"src":"61060:109:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2381,"nodeType":"StructuredDocumentation","src":"61175:149:0","text":"Compares two `int256` values. Expects first value to be greater than or equal to second.\n Formats values with decimals in failure message."},"functionSelector":"dc28c0f1","id":2390,"implemented":false,"kind":"function","modifiers":[],"name":"assertGeDecimal","nameLocation":"61338:15:0","nodeType":"FunctionDefinition","parameters":{"id":2388,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2383,"mutability":"mutable","name":"left","nameLocation":"61361:4:0","nodeType":"VariableDeclaration","scope":2390,"src":"61354:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2382,"name":"int256","nodeType":"ElementaryTypeName","src":"61354:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2385,"mutability":"mutable","name":"right","nameLocation":"61374:5:0","nodeType":"VariableDeclaration","scope":2390,"src":"61367:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2384,"name":"int256","nodeType":"ElementaryTypeName","src":"61367:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2387,"mutability":"mutable","name":"decimals","nameLocation":"61389:8:0","nodeType":"VariableDeclaration","scope":2390,"src":"61381:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2386,"name":"uint256","nodeType":"ElementaryTypeName","src":"61381:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"61353:45:0"},"returnParameters":{"id":2389,"nodeType":"ParameterList","parameters":[],"src":"61412:0:0"},"scope":3388,"src":"61329:84:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2391,"nodeType":"StructuredDocumentation","src":"61419:203:0","text":"Compares two `int256` values. Expects first value to be greater than or equal to second.\n Formats values with decimals in failure message. Includes error message into revert string on failure."},"functionSelector":"5df93c9b","id":2402,"implemented":false,"kind":"function","modifiers":[],"name":"assertGeDecimal","nameLocation":"61636:15:0","nodeType":"FunctionDefinition","parameters":{"id":2400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2393,"mutability":"mutable","name":"left","nameLocation":"61659:4:0","nodeType":"VariableDeclaration","scope":2402,"src":"61652:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2392,"name":"int256","nodeType":"ElementaryTypeName","src":"61652:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2395,"mutability":"mutable","name":"right","nameLocation":"61672:5:0","nodeType":"VariableDeclaration","scope":2402,"src":"61665:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2394,"name":"int256","nodeType":"ElementaryTypeName","src":"61665:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2397,"mutability":"mutable","name":"decimals","nameLocation":"61687:8:0","nodeType":"VariableDeclaration","scope":2402,"src":"61679:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2396,"name":"uint256","nodeType":"ElementaryTypeName","src":"61679:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2399,"mutability":"mutable","name":"error","nameLocation":"61713:5:0","nodeType":"VariableDeclaration","scope":2402,"src":"61697:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2398,"name":"string","nodeType":"ElementaryTypeName","src":"61697:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"61651:68:0"},"returnParameters":{"id":2401,"nodeType":"ParameterList","parameters":[],"src":"61733:0:0"},"scope":3388,"src":"61627:107:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2403,"nodeType":"StructuredDocumentation","src":"61740:93:0","text":"Compares two `uint256` values. Expects first value to be greater than or equal to second."},"functionSelector":"a8d4d1d9","id":2410,"implemented":false,"kind":"function","modifiers":[],"name":"assertGe","nameLocation":"61847:8:0","nodeType":"FunctionDefinition","parameters":{"id":2408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2405,"mutability":"mutable","name":"left","nameLocation":"61864:4:0","nodeType":"VariableDeclaration","scope":2410,"src":"61856:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2404,"name":"uint256","nodeType":"ElementaryTypeName","src":"61856:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2407,"mutability":"mutable","name":"right","nameLocation":"61878:5:0","nodeType":"VariableDeclaration","scope":2410,"src":"61870:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2406,"name":"uint256","nodeType":"ElementaryTypeName","src":"61870:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"61855:29:0"},"returnParameters":{"id":2409,"nodeType":"ParameterList","parameters":[],"src":"61898:0:0"},"scope":3388,"src":"61838:61:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2411,"nodeType":"StructuredDocumentation","src":"61905:155:0","text":"Compares two `uint256` values. Expects first value to be greater than or equal to second.\n Includes error message into revert string on failure."},"functionSelector":"e25242c0","id":2420,"implemented":false,"kind":"function","modifiers":[],"name":"assertGe","nameLocation":"62074:8:0","nodeType":"FunctionDefinition","parameters":{"id":2418,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2413,"mutability":"mutable","name":"left","nameLocation":"62091:4:0","nodeType":"VariableDeclaration","scope":2420,"src":"62083:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2412,"name":"uint256","nodeType":"ElementaryTypeName","src":"62083:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2415,"mutability":"mutable","name":"right","nameLocation":"62105:5:0","nodeType":"VariableDeclaration","scope":2420,"src":"62097:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2414,"name":"uint256","nodeType":"ElementaryTypeName","src":"62097:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2417,"mutability":"mutable","name":"error","nameLocation":"62128:5:0","nodeType":"VariableDeclaration","scope":2420,"src":"62112:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2416,"name":"string","nodeType":"ElementaryTypeName","src":"62112:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"62082:52:0"},"returnParameters":{"id":2419,"nodeType":"ParameterList","parameters":[],"src":"62148:0:0"},"scope":3388,"src":"62065:84:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2421,"nodeType":"StructuredDocumentation","src":"62155:92:0","text":"Compares two `int256` values. Expects first value to be greater than or equal to second."},"functionSelector":"0a30b771","id":2428,"implemented":false,"kind":"function","modifiers":[],"name":"assertGe","nameLocation":"62261:8:0","nodeType":"FunctionDefinition","parameters":{"id":2426,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2423,"mutability":"mutable","name":"left","nameLocation":"62277:4:0","nodeType":"VariableDeclaration","scope":2428,"src":"62270:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2422,"name":"int256","nodeType":"ElementaryTypeName","src":"62270:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2425,"mutability":"mutable","name":"right","nameLocation":"62290:5:0","nodeType":"VariableDeclaration","scope":2428,"src":"62283:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2424,"name":"int256","nodeType":"ElementaryTypeName","src":"62283:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"62269:27:0"},"returnParameters":{"id":2427,"nodeType":"ParameterList","parameters":[],"src":"62310:0:0"},"scope":3388,"src":"62252:59:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2429,"nodeType":"StructuredDocumentation","src":"62317:154:0","text":"Compares two `int256` values. Expects first value to be greater than or equal to second.\n Includes error message into revert string on failure."},"functionSelector":"a84328dd","id":2438,"implemented":false,"kind":"function","modifiers":[],"name":"assertGe","nameLocation":"62485:8:0","nodeType":"FunctionDefinition","parameters":{"id":2436,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2431,"mutability":"mutable","name":"left","nameLocation":"62501:4:0","nodeType":"VariableDeclaration","scope":2438,"src":"62494:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2430,"name":"int256","nodeType":"ElementaryTypeName","src":"62494:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2433,"mutability":"mutable","name":"right","nameLocation":"62514:5:0","nodeType":"VariableDeclaration","scope":2438,"src":"62507:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2432,"name":"int256","nodeType":"ElementaryTypeName","src":"62507:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2435,"mutability":"mutable","name":"error","nameLocation":"62537:5:0","nodeType":"VariableDeclaration","scope":2438,"src":"62521:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2434,"name":"string","nodeType":"ElementaryTypeName","src":"62521:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"62493:50:0"},"returnParameters":{"id":2437,"nodeType":"ParameterList","parameters":[],"src":"62557:0:0"},"scope":3388,"src":"62476:82:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2439,"nodeType":"StructuredDocumentation","src":"62564:138:0","text":"Compares two `uint256` values. Expects first value to be greater than second.\n Formats values with decimals in failure message."},"functionSelector":"eccd2437","id":2448,"implemented":false,"kind":"function","modifiers":[],"name":"assertGtDecimal","nameLocation":"62716:15:0","nodeType":"FunctionDefinition","parameters":{"id":2446,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2441,"mutability":"mutable","name":"left","nameLocation":"62740:4:0","nodeType":"VariableDeclaration","scope":2448,"src":"62732:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2440,"name":"uint256","nodeType":"ElementaryTypeName","src":"62732:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2443,"mutability":"mutable","name":"right","nameLocation":"62754:5:0","nodeType":"VariableDeclaration","scope":2448,"src":"62746:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2442,"name":"uint256","nodeType":"ElementaryTypeName","src":"62746:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2445,"mutability":"mutable","name":"decimals","nameLocation":"62769:8:0","nodeType":"VariableDeclaration","scope":2448,"src":"62761:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2444,"name":"uint256","nodeType":"ElementaryTypeName","src":"62761:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"62731:47:0"},"returnParameters":{"id":2447,"nodeType":"ParameterList","parameters":[],"src":"62792:0:0"},"scope":3388,"src":"62707:86:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2449,"nodeType":"StructuredDocumentation","src":"62799:192:0","text":"Compares two `uint256` values. Expects first value to be greater than second.\n Formats values with decimals in failure message. Includes error message into revert string on failure."},"functionSelector":"64949a8d","id":2460,"implemented":false,"kind":"function","modifiers":[],"name":"assertGtDecimal","nameLocation":"63005:15:0","nodeType":"FunctionDefinition","parameters":{"id":2458,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2451,"mutability":"mutable","name":"left","nameLocation":"63029:4:0","nodeType":"VariableDeclaration","scope":2460,"src":"63021:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2450,"name":"uint256","nodeType":"ElementaryTypeName","src":"63021:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2453,"mutability":"mutable","name":"right","nameLocation":"63043:5:0","nodeType":"VariableDeclaration","scope":2460,"src":"63035:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2452,"name":"uint256","nodeType":"ElementaryTypeName","src":"63035:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2455,"mutability":"mutable","name":"decimals","nameLocation":"63058:8:0","nodeType":"VariableDeclaration","scope":2460,"src":"63050:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2454,"name":"uint256","nodeType":"ElementaryTypeName","src":"63050:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2457,"mutability":"mutable","name":"error","nameLocation":"63084:5:0","nodeType":"VariableDeclaration","scope":2460,"src":"63068:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2456,"name":"string","nodeType":"ElementaryTypeName","src":"63068:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"63020:70:0"},"returnParameters":{"id":2459,"nodeType":"ParameterList","parameters":[],"src":"63104:0:0"},"scope":3388,"src":"62996:109:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2461,"nodeType":"StructuredDocumentation","src":"63111:137:0","text":"Compares two `int256` values. Expects first value to be greater than second.\n Formats values with decimals in failure message."},"functionSelector":"78611f0e","id":2470,"implemented":false,"kind":"function","modifiers":[],"name":"assertGtDecimal","nameLocation":"63262:15:0","nodeType":"FunctionDefinition","parameters":{"id":2468,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2463,"mutability":"mutable","name":"left","nameLocation":"63285:4:0","nodeType":"VariableDeclaration","scope":2470,"src":"63278:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2462,"name":"int256","nodeType":"ElementaryTypeName","src":"63278:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2465,"mutability":"mutable","name":"right","nameLocation":"63298:5:0","nodeType":"VariableDeclaration","scope":2470,"src":"63291:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2464,"name":"int256","nodeType":"ElementaryTypeName","src":"63291:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2467,"mutability":"mutable","name":"decimals","nameLocation":"63313:8:0","nodeType":"VariableDeclaration","scope":2470,"src":"63305:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2466,"name":"uint256","nodeType":"ElementaryTypeName","src":"63305:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"63277:45:0"},"returnParameters":{"id":2469,"nodeType":"ParameterList","parameters":[],"src":"63336:0:0"},"scope":3388,"src":"63253:84:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2471,"nodeType":"StructuredDocumentation","src":"63343:191:0","text":"Compares two `int256` values. Expects first value to be greater than second.\n Formats values with decimals in failure message. Includes error message into revert string on failure."},"functionSelector":"04a5c7ab","id":2482,"implemented":false,"kind":"function","modifiers":[],"name":"assertGtDecimal","nameLocation":"63548:15:0","nodeType":"FunctionDefinition","parameters":{"id":2480,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2473,"mutability":"mutable","name":"left","nameLocation":"63571:4:0","nodeType":"VariableDeclaration","scope":2482,"src":"63564:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2472,"name":"int256","nodeType":"ElementaryTypeName","src":"63564:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2475,"mutability":"mutable","name":"right","nameLocation":"63584:5:0","nodeType":"VariableDeclaration","scope":2482,"src":"63577:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2474,"name":"int256","nodeType":"ElementaryTypeName","src":"63577:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2477,"mutability":"mutable","name":"decimals","nameLocation":"63599:8:0","nodeType":"VariableDeclaration","scope":2482,"src":"63591:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2476,"name":"uint256","nodeType":"ElementaryTypeName","src":"63591:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2479,"mutability":"mutable","name":"error","nameLocation":"63625:5:0","nodeType":"VariableDeclaration","scope":2482,"src":"63609:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2478,"name":"string","nodeType":"ElementaryTypeName","src":"63609:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"63563:68:0"},"returnParameters":{"id":2481,"nodeType":"ParameterList","parameters":[],"src":"63645:0:0"},"scope":3388,"src":"63539:107:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2483,"nodeType":"StructuredDocumentation","src":"63652:81:0","text":"Compares two `uint256` values. Expects first value to be greater than second."},"functionSelector":"db07fcd2","id":2490,"implemented":false,"kind":"function","modifiers":[],"name":"assertGt","nameLocation":"63747:8:0","nodeType":"FunctionDefinition","parameters":{"id":2488,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2485,"mutability":"mutable","name":"left","nameLocation":"63764:4:0","nodeType":"VariableDeclaration","scope":2490,"src":"63756:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2484,"name":"uint256","nodeType":"ElementaryTypeName","src":"63756:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2487,"mutability":"mutable","name":"right","nameLocation":"63778:5:0","nodeType":"VariableDeclaration","scope":2490,"src":"63770:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2486,"name":"uint256","nodeType":"ElementaryTypeName","src":"63770:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"63755:29:0"},"returnParameters":{"id":2489,"nodeType":"ParameterList","parameters":[],"src":"63798:0:0"},"scope":3388,"src":"63738:61:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2491,"nodeType":"StructuredDocumentation","src":"63805:143:0","text":"Compares two `uint256` values. Expects first value to be greater than second.\n Includes error message into revert string on failure."},"functionSelector":"d9a3c4d2","id":2500,"implemented":false,"kind":"function","modifiers":[],"name":"assertGt","nameLocation":"63962:8:0","nodeType":"FunctionDefinition","parameters":{"id":2498,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2493,"mutability":"mutable","name":"left","nameLocation":"63979:4:0","nodeType":"VariableDeclaration","scope":2500,"src":"63971:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2492,"name":"uint256","nodeType":"ElementaryTypeName","src":"63971:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2495,"mutability":"mutable","name":"right","nameLocation":"63993:5:0","nodeType":"VariableDeclaration","scope":2500,"src":"63985:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2494,"name":"uint256","nodeType":"ElementaryTypeName","src":"63985:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2497,"mutability":"mutable","name":"error","nameLocation":"64016:5:0","nodeType":"VariableDeclaration","scope":2500,"src":"64000:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2496,"name":"string","nodeType":"ElementaryTypeName","src":"64000:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"63970:52:0"},"returnParameters":{"id":2499,"nodeType":"ParameterList","parameters":[],"src":"64036:0:0"},"scope":3388,"src":"63953:84:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2501,"nodeType":"StructuredDocumentation","src":"64043:80:0","text":"Compares two `int256` values. Expects first value to be greater than second."},"functionSelector":"5a362d45","id":2508,"implemented":false,"kind":"function","modifiers":[],"name":"assertGt","nameLocation":"64137:8:0","nodeType":"FunctionDefinition","parameters":{"id":2506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2503,"mutability":"mutable","name":"left","nameLocation":"64153:4:0","nodeType":"VariableDeclaration","scope":2508,"src":"64146:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2502,"name":"int256","nodeType":"ElementaryTypeName","src":"64146:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2505,"mutability":"mutable","name":"right","nameLocation":"64166:5:0","nodeType":"VariableDeclaration","scope":2508,"src":"64159:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2504,"name":"int256","nodeType":"ElementaryTypeName","src":"64159:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"64145:27:0"},"returnParameters":{"id":2507,"nodeType":"ParameterList","parameters":[],"src":"64186:0:0"},"scope":3388,"src":"64128:59:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2509,"nodeType":"StructuredDocumentation","src":"64193:142:0","text":"Compares two `int256` values. Expects first value to be greater than second.\n Includes error message into revert string on failure."},"functionSelector":"f8d33b9b","id":2518,"implemented":false,"kind":"function","modifiers":[],"name":"assertGt","nameLocation":"64349:8:0","nodeType":"FunctionDefinition","parameters":{"id":2516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2511,"mutability":"mutable","name":"left","nameLocation":"64365:4:0","nodeType":"VariableDeclaration","scope":2518,"src":"64358:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2510,"name":"int256","nodeType":"ElementaryTypeName","src":"64358:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2513,"mutability":"mutable","name":"right","nameLocation":"64378:5:0","nodeType":"VariableDeclaration","scope":2518,"src":"64371:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2512,"name":"int256","nodeType":"ElementaryTypeName","src":"64371:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2515,"mutability":"mutable","name":"error","nameLocation":"64401:5:0","nodeType":"VariableDeclaration","scope":2518,"src":"64385:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2514,"name":"string","nodeType":"ElementaryTypeName","src":"64385:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"64357:50:0"},"returnParameters":{"id":2517,"nodeType":"ParameterList","parameters":[],"src":"64421:0:0"},"scope":3388,"src":"64340:82:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2519,"nodeType":"StructuredDocumentation","src":"64428:147:0","text":"Compares two `uint256` values. Expects first value to be less than or equal to second.\n Formats values with decimals in failure message."},"functionSelector":"c304aab7","id":2528,"implemented":false,"kind":"function","modifiers":[],"name":"assertLeDecimal","nameLocation":"64589:15:0","nodeType":"FunctionDefinition","parameters":{"id":2526,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2521,"mutability":"mutable","name":"left","nameLocation":"64613:4:0","nodeType":"VariableDeclaration","scope":2528,"src":"64605:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2520,"name":"uint256","nodeType":"ElementaryTypeName","src":"64605:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2523,"mutability":"mutable","name":"right","nameLocation":"64627:5:0","nodeType":"VariableDeclaration","scope":2528,"src":"64619:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2522,"name":"uint256","nodeType":"ElementaryTypeName","src":"64619:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2525,"mutability":"mutable","name":"decimals","nameLocation":"64642:8:0","nodeType":"VariableDeclaration","scope":2528,"src":"64634:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2524,"name":"uint256","nodeType":"ElementaryTypeName","src":"64634:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"64604:47:0"},"returnParameters":{"id":2527,"nodeType":"ParameterList","parameters":[],"src":"64665:0:0"},"scope":3388,"src":"64580:86:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2529,"nodeType":"StructuredDocumentation","src":"64672:201:0","text":"Compares two `uint256` values. Expects first value to be less than or equal to second.\n Formats values with decimals in failure message. Includes error message into revert string on failure."},"functionSelector":"7fefbbe0","id":2540,"implemented":false,"kind":"function","modifiers":[],"name":"assertLeDecimal","nameLocation":"64887:15:0","nodeType":"FunctionDefinition","parameters":{"id":2538,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2531,"mutability":"mutable","name":"left","nameLocation":"64911:4:0","nodeType":"VariableDeclaration","scope":2540,"src":"64903:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2530,"name":"uint256","nodeType":"ElementaryTypeName","src":"64903:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2533,"mutability":"mutable","name":"right","nameLocation":"64925:5:0","nodeType":"VariableDeclaration","scope":2540,"src":"64917:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2532,"name":"uint256","nodeType":"ElementaryTypeName","src":"64917:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2535,"mutability":"mutable","name":"decimals","nameLocation":"64940:8:0","nodeType":"VariableDeclaration","scope":2540,"src":"64932:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2534,"name":"uint256","nodeType":"ElementaryTypeName","src":"64932:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2537,"mutability":"mutable","name":"error","nameLocation":"64966:5:0","nodeType":"VariableDeclaration","scope":2540,"src":"64950:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2536,"name":"string","nodeType":"ElementaryTypeName","src":"64950:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"64902:70:0"},"returnParameters":{"id":2539,"nodeType":"ParameterList","parameters":[],"src":"64986:0:0"},"scope":3388,"src":"64878:109:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2541,"nodeType":"StructuredDocumentation","src":"64993:146:0","text":"Compares two `int256` values. Expects first value to be less than or equal to second.\n Formats values with decimals in failure message."},"functionSelector":"11d1364a","id":2550,"implemented":false,"kind":"function","modifiers":[],"name":"assertLeDecimal","nameLocation":"65153:15:0","nodeType":"FunctionDefinition","parameters":{"id":2548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2543,"mutability":"mutable","name":"left","nameLocation":"65176:4:0","nodeType":"VariableDeclaration","scope":2550,"src":"65169:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2542,"name":"int256","nodeType":"ElementaryTypeName","src":"65169:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2545,"mutability":"mutable","name":"right","nameLocation":"65189:5:0","nodeType":"VariableDeclaration","scope":2550,"src":"65182:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2544,"name":"int256","nodeType":"ElementaryTypeName","src":"65182:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2547,"mutability":"mutable","name":"decimals","nameLocation":"65204:8:0","nodeType":"VariableDeclaration","scope":2550,"src":"65196:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2546,"name":"uint256","nodeType":"ElementaryTypeName","src":"65196:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"65168:45:0"},"returnParameters":{"id":2549,"nodeType":"ParameterList","parameters":[],"src":"65227:0:0"},"scope":3388,"src":"65144:84:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2551,"nodeType":"StructuredDocumentation","src":"65234:200:0","text":"Compares two `int256` values. Expects first value to be less than or equal to second.\n Formats values with decimals in failure message. Includes error message into revert string on failure."},"functionSelector":"aa5cf788","id":2562,"implemented":false,"kind":"function","modifiers":[],"name":"assertLeDecimal","nameLocation":"65448:15:0","nodeType":"FunctionDefinition","parameters":{"id":2560,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2553,"mutability":"mutable","name":"left","nameLocation":"65471:4:0","nodeType":"VariableDeclaration","scope":2562,"src":"65464:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2552,"name":"int256","nodeType":"ElementaryTypeName","src":"65464:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2555,"mutability":"mutable","name":"right","nameLocation":"65484:5:0","nodeType":"VariableDeclaration","scope":2562,"src":"65477:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2554,"name":"int256","nodeType":"ElementaryTypeName","src":"65477:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2557,"mutability":"mutable","name":"decimals","nameLocation":"65499:8:0","nodeType":"VariableDeclaration","scope":2562,"src":"65491:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2556,"name":"uint256","nodeType":"ElementaryTypeName","src":"65491:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2559,"mutability":"mutable","name":"error","nameLocation":"65525:5:0","nodeType":"VariableDeclaration","scope":2562,"src":"65509:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2558,"name":"string","nodeType":"ElementaryTypeName","src":"65509:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"65463:68:0"},"returnParameters":{"id":2561,"nodeType":"ParameterList","parameters":[],"src":"65545:0:0"},"scope":3388,"src":"65439:107:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2563,"nodeType":"StructuredDocumentation","src":"65552:90:0","text":"Compares two `uint256` values. Expects first value to be less than or equal to second."},"functionSelector":"8466f415","id":2570,"implemented":false,"kind":"function","modifiers":[],"name":"assertLe","nameLocation":"65656:8:0","nodeType":"FunctionDefinition","parameters":{"id":2568,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2565,"mutability":"mutable","name":"left","nameLocation":"65673:4:0","nodeType":"VariableDeclaration","scope":2570,"src":"65665:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2564,"name":"uint256","nodeType":"ElementaryTypeName","src":"65665:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2567,"mutability":"mutable","name":"right","nameLocation":"65687:5:0","nodeType":"VariableDeclaration","scope":2570,"src":"65679:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2566,"name":"uint256","nodeType":"ElementaryTypeName","src":"65679:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"65664:29:0"},"returnParameters":{"id":2569,"nodeType":"ParameterList","parameters":[],"src":"65707:0:0"},"scope":3388,"src":"65647:61:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2571,"nodeType":"StructuredDocumentation","src":"65714:152:0","text":"Compares two `uint256` values. Expects first value to be less than or equal to second.\n Includes error message into revert string on failure."},"functionSelector":"d17d4b0d","id":2580,"implemented":false,"kind":"function","modifiers":[],"name":"assertLe","nameLocation":"65880:8:0","nodeType":"FunctionDefinition","parameters":{"id":2578,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2573,"mutability":"mutable","name":"left","nameLocation":"65897:4:0","nodeType":"VariableDeclaration","scope":2580,"src":"65889:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2572,"name":"uint256","nodeType":"ElementaryTypeName","src":"65889:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2575,"mutability":"mutable","name":"right","nameLocation":"65911:5:0","nodeType":"VariableDeclaration","scope":2580,"src":"65903:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2574,"name":"uint256","nodeType":"ElementaryTypeName","src":"65903:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2577,"mutability":"mutable","name":"error","nameLocation":"65934:5:0","nodeType":"VariableDeclaration","scope":2580,"src":"65918:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2576,"name":"string","nodeType":"ElementaryTypeName","src":"65918:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"65888:52:0"},"returnParameters":{"id":2579,"nodeType":"ParameterList","parameters":[],"src":"65954:0:0"},"scope":3388,"src":"65871:84:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2581,"nodeType":"StructuredDocumentation","src":"65961:89:0","text":"Compares two `int256` values. Expects first value to be less than or equal to second."},"functionSelector":"95fd154e","id":2588,"implemented":false,"kind":"function","modifiers":[],"name":"assertLe","nameLocation":"66064:8:0","nodeType":"FunctionDefinition","parameters":{"id":2586,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2583,"mutability":"mutable","name":"left","nameLocation":"66080:4:0","nodeType":"VariableDeclaration","scope":2588,"src":"66073:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2582,"name":"int256","nodeType":"ElementaryTypeName","src":"66073:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2585,"mutability":"mutable","name":"right","nameLocation":"66093:5:0","nodeType":"VariableDeclaration","scope":2588,"src":"66086:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2584,"name":"int256","nodeType":"ElementaryTypeName","src":"66086:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"66072:27:0"},"returnParameters":{"id":2587,"nodeType":"ParameterList","parameters":[],"src":"66113:0:0"},"scope":3388,"src":"66055:59:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2589,"nodeType":"StructuredDocumentation","src":"66120:151:0","text":"Compares two `int256` values. Expects first value to be less than or equal to second.\n Includes error message into revert string on failure."},"functionSelector":"4dfe692c","id":2598,"implemented":false,"kind":"function","modifiers":[],"name":"assertLe","nameLocation":"66285:8:0","nodeType":"FunctionDefinition","parameters":{"id":2596,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2591,"mutability":"mutable","name":"left","nameLocation":"66301:4:0","nodeType":"VariableDeclaration","scope":2598,"src":"66294:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2590,"name":"int256","nodeType":"ElementaryTypeName","src":"66294:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2593,"mutability":"mutable","name":"right","nameLocation":"66314:5:0","nodeType":"VariableDeclaration","scope":2598,"src":"66307:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2592,"name":"int256","nodeType":"ElementaryTypeName","src":"66307:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2595,"mutability":"mutable","name":"error","nameLocation":"66337:5:0","nodeType":"VariableDeclaration","scope":2598,"src":"66321:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2594,"name":"string","nodeType":"ElementaryTypeName","src":"66321:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"66293:50:0"},"returnParameters":{"id":2597,"nodeType":"ParameterList","parameters":[],"src":"66357:0:0"},"scope":3388,"src":"66276:82:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2599,"nodeType":"StructuredDocumentation","src":"66364:135:0","text":"Compares two `uint256` values. Expects first value to be less than second.\n Formats values with decimals in failure message."},"functionSelector":"2077337e","id":2608,"implemented":false,"kind":"function","modifiers":[],"name":"assertLtDecimal","nameLocation":"66513:15:0","nodeType":"FunctionDefinition","parameters":{"id":2606,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2601,"mutability":"mutable","name":"left","nameLocation":"66537:4:0","nodeType":"VariableDeclaration","scope":2608,"src":"66529:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2600,"name":"uint256","nodeType":"ElementaryTypeName","src":"66529:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2603,"mutability":"mutable","name":"right","nameLocation":"66551:5:0","nodeType":"VariableDeclaration","scope":2608,"src":"66543:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2602,"name":"uint256","nodeType":"ElementaryTypeName","src":"66543:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2605,"mutability":"mutable","name":"decimals","nameLocation":"66566:8:0","nodeType":"VariableDeclaration","scope":2608,"src":"66558:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2604,"name":"uint256","nodeType":"ElementaryTypeName","src":"66558:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"66528:47:0"},"returnParameters":{"id":2607,"nodeType":"ParameterList","parameters":[],"src":"66589:0:0"},"scope":3388,"src":"66504:86:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2609,"nodeType":"StructuredDocumentation","src":"66596:189:0","text":"Compares two `uint256` values. Expects first value to be less than second.\n Formats values with decimals in failure message. Includes error message into revert string on failure."},"functionSelector":"a972d037","id":2620,"implemented":false,"kind":"function","modifiers":[],"name":"assertLtDecimal","nameLocation":"66799:15:0","nodeType":"FunctionDefinition","parameters":{"id":2618,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2611,"mutability":"mutable","name":"left","nameLocation":"66823:4:0","nodeType":"VariableDeclaration","scope":2620,"src":"66815:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2610,"name":"uint256","nodeType":"ElementaryTypeName","src":"66815:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2613,"mutability":"mutable","name":"right","nameLocation":"66837:5:0","nodeType":"VariableDeclaration","scope":2620,"src":"66829:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2612,"name":"uint256","nodeType":"ElementaryTypeName","src":"66829:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2615,"mutability":"mutable","name":"decimals","nameLocation":"66852:8:0","nodeType":"VariableDeclaration","scope":2620,"src":"66844:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2614,"name":"uint256","nodeType":"ElementaryTypeName","src":"66844:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2617,"mutability":"mutable","name":"error","nameLocation":"66878:5:0","nodeType":"VariableDeclaration","scope":2620,"src":"66862:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2616,"name":"string","nodeType":"ElementaryTypeName","src":"66862:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"66814:70:0"},"returnParameters":{"id":2619,"nodeType":"ParameterList","parameters":[],"src":"66898:0:0"},"scope":3388,"src":"66790:109:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2621,"nodeType":"StructuredDocumentation","src":"66905:134:0","text":"Compares two `int256` values. Expects first value to be less than second.\n Formats values with decimals in failure message."},"functionSelector":"dbe8d88b","id":2630,"implemented":false,"kind":"function","modifiers":[],"name":"assertLtDecimal","nameLocation":"67053:15:0","nodeType":"FunctionDefinition","parameters":{"id":2628,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2623,"mutability":"mutable","name":"left","nameLocation":"67076:4:0","nodeType":"VariableDeclaration","scope":2630,"src":"67069:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2622,"name":"int256","nodeType":"ElementaryTypeName","src":"67069:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2625,"mutability":"mutable","name":"right","nameLocation":"67089:5:0","nodeType":"VariableDeclaration","scope":2630,"src":"67082:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2624,"name":"int256","nodeType":"ElementaryTypeName","src":"67082:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2627,"mutability":"mutable","name":"decimals","nameLocation":"67104:8:0","nodeType":"VariableDeclaration","scope":2630,"src":"67096:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2626,"name":"uint256","nodeType":"ElementaryTypeName","src":"67096:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"67068:45:0"},"returnParameters":{"id":2629,"nodeType":"ParameterList","parameters":[],"src":"67127:0:0"},"scope":3388,"src":"67044:84:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2631,"nodeType":"StructuredDocumentation","src":"67134:188:0","text":"Compares two `int256` values. Expects first value to be less than second.\n Formats values with decimals in failure message. Includes error message into revert string on failure."},"functionSelector":"40f0b4e0","id":2642,"implemented":false,"kind":"function","modifiers":[],"name":"assertLtDecimal","nameLocation":"67336:15:0","nodeType":"FunctionDefinition","parameters":{"id":2640,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2633,"mutability":"mutable","name":"left","nameLocation":"67359:4:0","nodeType":"VariableDeclaration","scope":2642,"src":"67352:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2632,"name":"int256","nodeType":"ElementaryTypeName","src":"67352:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2635,"mutability":"mutable","name":"right","nameLocation":"67372:5:0","nodeType":"VariableDeclaration","scope":2642,"src":"67365:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2634,"name":"int256","nodeType":"ElementaryTypeName","src":"67365:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2637,"mutability":"mutable","name":"decimals","nameLocation":"67387:8:0","nodeType":"VariableDeclaration","scope":2642,"src":"67379:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2636,"name":"uint256","nodeType":"ElementaryTypeName","src":"67379:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2639,"mutability":"mutable","name":"error","nameLocation":"67413:5:0","nodeType":"VariableDeclaration","scope":2642,"src":"67397:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2638,"name":"string","nodeType":"ElementaryTypeName","src":"67397:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"67351:68:0"},"returnParameters":{"id":2641,"nodeType":"ParameterList","parameters":[],"src":"67433:0:0"},"scope":3388,"src":"67327:107:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2643,"nodeType":"StructuredDocumentation","src":"67440:78:0","text":"Compares two `uint256` values. Expects first value to be less than second."},"functionSelector":"b12fc005","id":2650,"implemented":false,"kind":"function","modifiers":[],"name":"assertLt","nameLocation":"67532:8:0","nodeType":"FunctionDefinition","parameters":{"id":2648,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2645,"mutability":"mutable","name":"left","nameLocation":"67549:4:0","nodeType":"VariableDeclaration","scope":2650,"src":"67541:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2644,"name":"uint256","nodeType":"ElementaryTypeName","src":"67541:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2647,"mutability":"mutable","name":"right","nameLocation":"67563:5:0","nodeType":"VariableDeclaration","scope":2650,"src":"67555:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2646,"name":"uint256","nodeType":"ElementaryTypeName","src":"67555:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"67540:29:0"},"returnParameters":{"id":2649,"nodeType":"ParameterList","parameters":[],"src":"67583:0:0"},"scope":3388,"src":"67523:61:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2651,"nodeType":"StructuredDocumentation","src":"67590:140:0","text":"Compares two `uint256` values. Expects first value to be less than second.\n Includes error message into revert string on failure."},"functionSelector":"65d5c135","id":2660,"implemented":false,"kind":"function","modifiers":[],"name":"assertLt","nameLocation":"67744:8:0","nodeType":"FunctionDefinition","parameters":{"id":2658,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2653,"mutability":"mutable","name":"left","nameLocation":"67761:4:0","nodeType":"VariableDeclaration","scope":2660,"src":"67753:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2652,"name":"uint256","nodeType":"ElementaryTypeName","src":"67753:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2655,"mutability":"mutable","name":"right","nameLocation":"67775:5:0","nodeType":"VariableDeclaration","scope":2660,"src":"67767:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2654,"name":"uint256","nodeType":"ElementaryTypeName","src":"67767:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2657,"mutability":"mutable","name":"error","nameLocation":"67798:5:0","nodeType":"VariableDeclaration","scope":2660,"src":"67782:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2656,"name":"string","nodeType":"ElementaryTypeName","src":"67782:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"67752:52:0"},"returnParameters":{"id":2659,"nodeType":"ParameterList","parameters":[],"src":"67818:0:0"},"scope":3388,"src":"67735:84:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2661,"nodeType":"StructuredDocumentation","src":"67825:77:0","text":"Compares two `int256` values. Expects first value to be less than second."},"functionSelector":"3e914080","id":2668,"implemented":false,"kind":"function","modifiers":[],"name":"assertLt","nameLocation":"67916:8:0","nodeType":"FunctionDefinition","parameters":{"id":2666,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2663,"mutability":"mutable","name":"left","nameLocation":"67932:4:0","nodeType":"VariableDeclaration","scope":2668,"src":"67925:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2662,"name":"int256","nodeType":"ElementaryTypeName","src":"67925:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2665,"mutability":"mutable","name":"right","nameLocation":"67945:5:0","nodeType":"VariableDeclaration","scope":2668,"src":"67938:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2664,"name":"int256","nodeType":"ElementaryTypeName","src":"67938:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"67924:27:0"},"returnParameters":{"id":2667,"nodeType":"ParameterList","parameters":[],"src":"67965:0:0"},"scope":3388,"src":"67907:59:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2669,"nodeType":"StructuredDocumentation","src":"67972:139:0","text":"Compares two `int256` values. Expects first value to be less than second.\n Includes error message into revert string on failure."},"functionSelector":"9ff531e3","id":2678,"implemented":false,"kind":"function","modifiers":[],"name":"assertLt","nameLocation":"68125:8:0","nodeType":"FunctionDefinition","parameters":{"id":2676,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2671,"mutability":"mutable","name":"left","nameLocation":"68141:4:0","nodeType":"VariableDeclaration","scope":2678,"src":"68134:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2670,"name":"int256","nodeType":"ElementaryTypeName","src":"68134:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2673,"mutability":"mutable","name":"right","nameLocation":"68154:5:0","nodeType":"VariableDeclaration","scope":2678,"src":"68147:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2672,"name":"int256","nodeType":"ElementaryTypeName","src":"68147:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2675,"mutability":"mutable","name":"error","nameLocation":"68177:5:0","nodeType":"VariableDeclaration","scope":2678,"src":"68161:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2674,"name":"string","nodeType":"ElementaryTypeName","src":"68161:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"68133:50:0"},"returnParameters":{"id":2677,"nodeType":"ParameterList","parameters":[],"src":"68197:0:0"},"scope":3388,"src":"68116:82:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2679,"nodeType":"StructuredDocumentation","src":"68204:102:0","text":"Asserts that two `uint256` values are not equal, formatting them with decimals in failure message."},"functionSelector":"669efca7","id":2688,"implemented":false,"kind":"function","modifiers":[],"name":"assertNotEqDecimal","nameLocation":"68320:18:0","nodeType":"FunctionDefinition","parameters":{"id":2686,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2681,"mutability":"mutable","name":"left","nameLocation":"68347:4:0","nodeType":"VariableDeclaration","scope":2688,"src":"68339:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2680,"name":"uint256","nodeType":"ElementaryTypeName","src":"68339:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2683,"mutability":"mutable","name":"right","nameLocation":"68361:5:0","nodeType":"VariableDeclaration","scope":2688,"src":"68353:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2682,"name":"uint256","nodeType":"ElementaryTypeName","src":"68353:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2685,"mutability":"mutable","name":"decimals","nameLocation":"68376:8:0","nodeType":"VariableDeclaration","scope":2688,"src":"68368:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2684,"name":"uint256","nodeType":"ElementaryTypeName","src":"68368:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"68338:47:0"},"returnParameters":{"id":2687,"nodeType":"ParameterList","parameters":[],"src":"68399:0:0"},"scope":3388,"src":"68311:89:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2689,"nodeType":"StructuredDocumentation","src":"68406:164:0","text":"Asserts that two `uint256` values are not equal, formatting them with decimals in failure message.\n Includes error message into revert string on failure."},"functionSelector":"f5a55558","id":2700,"implemented":false,"kind":"function","modifiers":[],"name":"assertNotEqDecimal","nameLocation":"68584:18:0","nodeType":"FunctionDefinition","parameters":{"id":2698,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2691,"mutability":"mutable","name":"left","nameLocation":"68611:4:0","nodeType":"VariableDeclaration","scope":2700,"src":"68603:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2690,"name":"uint256","nodeType":"ElementaryTypeName","src":"68603:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2693,"mutability":"mutable","name":"right","nameLocation":"68625:5:0","nodeType":"VariableDeclaration","scope":2700,"src":"68617:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2692,"name":"uint256","nodeType":"ElementaryTypeName","src":"68617:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2695,"mutability":"mutable","name":"decimals","nameLocation":"68640:8:0","nodeType":"VariableDeclaration","scope":2700,"src":"68632:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2694,"name":"uint256","nodeType":"ElementaryTypeName","src":"68632:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2697,"mutability":"mutable","name":"error","nameLocation":"68666:5:0","nodeType":"VariableDeclaration","scope":2700,"src":"68650:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2696,"name":"string","nodeType":"ElementaryTypeName","src":"68650:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"68602:70:0"},"returnParameters":{"id":2699,"nodeType":"ParameterList","parameters":[],"src":"68686:0:0"},"scope":3388,"src":"68575:112:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2701,"nodeType":"StructuredDocumentation","src":"68693:101:0","text":"Asserts that two `int256` values are not equal, formatting them with decimals in failure message."},"functionSelector":"14e75680","id":2710,"implemented":false,"kind":"function","modifiers":[],"name":"assertNotEqDecimal","nameLocation":"68808:18:0","nodeType":"FunctionDefinition","parameters":{"id":2708,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2703,"mutability":"mutable","name":"left","nameLocation":"68834:4:0","nodeType":"VariableDeclaration","scope":2710,"src":"68827:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2702,"name":"int256","nodeType":"ElementaryTypeName","src":"68827:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2705,"mutability":"mutable","name":"right","nameLocation":"68847:5:0","nodeType":"VariableDeclaration","scope":2710,"src":"68840:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2704,"name":"int256","nodeType":"ElementaryTypeName","src":"68840:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2707,"mutability":"mutable","name":"decimals","nameLocation":"68862:8:0","nodeType":"VariableDeclaration","scope":2710,"src":"68854:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2706,"name":"uint256","nodeType":"ElementaryTypeName","src":"68854:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"68826:45:0"},"returnParameters":{"id":2709,"nodeType":"ParameterList","parameters":[],"src":"68885:0:0"},"scope":3388,"src":"68799:87:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2711,"nodeType":"StructuredDocumentation","src":"68892:163:0","text":"Asserts that two `int256` values are not equal, formatting them with decimals in failure message.\n Includes error message into revert string on failure."},"functionSelector":"33949f0b","id":2722,"implemented":false,"kind":"function","modifiers":[],"name":"assertNotEqDecimal","nameLocation":"69069:18:0","nodeType":"FunctionDefinition","parameters":{"id":2720,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2713,"mutability":"mutable","name":"left","nameLocation":"69095:4:0","nodeType":"VariableDeclaration","scope":2722,"src":"69088:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2712,"name":"int256","nodeType":"ElementaryTypeName","src":"69088:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2715,"mutability":"mutable","name":"right","nameLocation":"69108:5:0","nodeType":"VariableDeclaration","scope":2722,"src":"69101:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2714,"name":"int256","nodeType":"ElementaryTypeName","src":"69101:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2717,"mutability":"mutable","name":"decimals","nameLocation":"69123:8:0","nodeType":"VariableDeclaration","scope":2722,"src":"69115:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2716,"name":"uint256","nodeType":"ElementaryTypeName","src":"69115:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2719,"mutability":"mutable","name":"error","nameLocation":"69149:5:0","nodeType":"VariableDeclaration","scope":2722,"src":"69133:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2718,"name":"string","nodeType":"ElementaryTypeName","src":"69133:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"69087:68:0"},"returnParameters":{"id":2721,"nodeType":"ParameterList","parameters":[],"src":"69169:0:0"},"scope":3388,"src":"69060:110:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2723,"nodeType":"StructuredDocumentation","src":"69176:49:0","text":"Asserts that two `bool` values are not equal."},"functionSelector":"236e4d66","id":2730,"implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"69239:11:0","nodeType":"FunctionDefinition","parameters":{"id":2728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2725,"mutability":"mutable","name":"left","nameLocation":"69256:4:0","nodeType":"VariableDeclaration","scope":2730,"src":"69251:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2724,"name":"bool","nodeType":"ElementaryTypeName","src":"69251:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2727,"mutability":"mutable","name":"right","nameLocation":"69267:5:0","nodeType":"VariableDeclaration","scope":2730,"src":"69262:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2726,"name":"bool","nodeType":"ElementaryTypeName","src":"69262:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"69250:23:0"},"returnParameters":{"id":2729,"nodeType":"ParameterList","parameters":[],"src":"69287:0:0"},"scope":3388,"src":"69230:58:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2731,"nodeType":"StructuredDocumentation","src":"69294:106:0","text":"Asserts that two `bool` values are not equal and includes error message into revert string on failure."},"functionSelector":"1091a261","id":2740,"implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"69414:11:0","nodeType":"FunctionDefinition","parameters":{"id":2738,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2733,"mutability":"mutable","name":"left","nameLocation":"69431:4:0","nodeType":"VariableDeclaration","scope":2740,"src":"69426:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2732,"name":"bool","nodeType":"ElementaryTypeName","src":"69426:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2735,"mutability":"mutable","name":"right","nameLocation":"69442:5:0","nodeType":"VariableDeclaration","scope":2740,"src":"69437:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2734,"name":"bool","nodeType":"ElementaryTypeName","src":"69437:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2737,"mutability":"mutable","name":"error","nameLocation":"69465:5:0","nodeType":"VariableDeclaration","scope":2740,"src":"69449:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2736,"name":"string","nodeType":"ElementaryTypeName","src":"69449:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"69425:46:0"},"returnParameters":{"id":2739,"nodeType":"ParameterList","parameters":[],"src":"69485:0:0"},"scope":3388,"src":"69405:81:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2741,"nodeType":"StructuredDocumentation","src":"69492:51:0","text":"Asserts that two `string` values are not equal."},"functionSelector":"6a8237b3","id":2748,"implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"69557:11:0","nodeType":"FunctionDefinition","parameters":{"id":2746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2743,"mutability":"mutable","name":"left","nameLocation":"69585:4:0","nodeType":"VariableDeclaration","scope":2748,"src":"69569:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2742,"name":"string","nodeType":"ElementaryTypeName","src":"69569:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":2745,"mutability":"mutable","name":"right","nameLocation":"69607:5:0","nodeType":"VariableDeclaration","scope":2748,"src":"69591:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2744,"name":"string","nodeType":"ElementaryTypeName","src":"69591:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"69568:45:0"},"returnParameters":{"id":2747,"nodeType":"ParameterList","parameters":[],"src":"69627:0:0"},"scope":3388,"src":"69548:80:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2749,"nodeType":"StructuredDocumentation","src":"69634:108:0","text":"Asserts that two `string` values are not equal and includes error message into revert string on failure."},"functionSelector":"78bdcea7","id":2758,"implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"69756:11:0","nodeType":"FunctionDefinition","parameters":{"id":2756,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2751,"mutability":"mutable","name":"left","nameLocation":"69784:4:0","nodeType":"VariableDeclaration","scope":2758,"src":"69768:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2750,"name":"string","nodeType":"ElementaryTypeName","src":"69768:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":2753,"mutability":"mutable","name":"right","nameLocation":"69806:5:0","nodeType":"VariableDeclaration","scope":2758,"src":"69790:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2752,"name":"string","nodeType":"ElementaryTypeName","src":"69790:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":2755,"mutability":"mutable","name":"error","nameLocation":"69829:5:0","nodeType":"VariableDeclaration","scope":2758,"src":"69813:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2754,"name":"string","nodeType":"ElementaryTypeName","src":"69813:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"69767:68:0"},"returnParameters":{"id":2757,"nodeType":"ParameterList","parameters":[],"src":"69849:0:0"},"scope":3388,"src":"69747:103:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2759,"nodeType":"StructuredDocumentation","src":"69856:50:0","text":"Asserts that two `bytes` values are not equal."},"functionSelector":"3cf78e28","id":2766,"implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"69920:11:0","nodeType":"FunctionDefinition","parameters":{"id":2764,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2761,"mutability":"mutable","name":"left","nameLocation":"69947:4:0","nodeType":"VariableDeclaration","scope":2766,"src":"69932:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2760,"name":"bytes","nodeType":"ElementaryTypeName","src":"69932:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2763,"mutability":"mutable","name":"right","nameLocation":"69968:5:0","nodeType":"VariableDeclaration","scope":2766,"src":"69953:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2762,"name":"bytes","nodeType":"ElementaryTypeName","src":"69953:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"69931:43:0"},"returnParameters":{"id":2765,"nodeType":"ParameterList","parameters":[],"src":"69988:0:0"},"scope":3388,"src":"69911:78:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2767,"nodeType":"StructuredDocumentation","src":"69995:107:0","text":"Asserts that two `bytes` values are not equal and includes error message into revert string on failure."},"functionSelector":"9507540e","id":2776,"implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"70116:11:0","nodeType":"FunctionDefinition","parameters":{"id":2774,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2769,"mutability":"mutable","name":"left","nameLocation":"70143:4:0","nodeType":"VariableDeclaration","scope":2776,"src":"70128:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2768,"name":"bytes","nodeType":"ElementaryTypeName","src":"70128:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2771,"mutability":"mutable","name":"right","nameLocation":"70164:5:0","nodeType":"VariableDeclaration","scope":2776,"src":"70149:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2770,"name":"bytes","nodeType":"ElementaryTypeName","src":"70149:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2773,"mutability":"mutable","name":"error","nameLocation":"70187:5:0","nodeType":"VariableDeclaration","scope":2776,"src":"70171:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2772,"name":"string","nodeType":"ElementaryTypeName","src":"70171:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"70127:66:0"},"returnParameters":{"id":2775,"nodeType":"ParameterList","parameters":[],"src":"70207:0:0"},"scope":3388,"src":"70107:101:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2777,"nodeType":"StructuredDocumentation","src":"70214:59:0","text":"Asserts that two arrays of `bool` values are not equal."},"functionSelector":"286fafea","id":2786,"implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"70287:11:0","nodeType":"FunctionDefinition","parameters":{"id":2784,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2780,"mutability":"mutable","name":"left","nameLocation":"70315:4:0","nodeType":"VariableDeclaration","scope":2786,"src":"70299:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":2778,"name":"bool","nodeType":"ElementaryTypeName","src":"70299:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2779,"nodeType":"ArrayTypeName","src":"70299:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"},{"constant":false,"id":2783,"mutability":"mutable","name":"right","nameLocation":"70337:5:0","nodeType":"VariableDeclaration","scope":2786,"src":"70321:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":2781,"name":"bool","nodeType":"ElementaryTypeName","src":"70321:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2782,"nodeType":"ArrayTypeName","src":"70321:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"70298:45:0"},"returnParameters":{"id":2785,"nodeType":"ParameterList","parameters":[],"src":"70357:0:0"},"scope":3388,"src":"70278:80:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2787,"nodeType":"StructuredDocumentation","src":"70364:116:0","text":"Asserts that two arrays of `bool` values are not equal and includes error message into revert string on failure."},"functionSelector":"62c6f9fb","id":2798,"implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"70494:11:0","nodeType":"FunctionDefinition","parameters":{"id":2796,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2790,"mutability":"mutable","name":"left","nameLocation":"70522:4:0","nodeType":"VariableDeclaration","scope":2798,"src":"70506:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":2788,"name":"bool","nodeType":"ElementaryTypeName","src":"70506:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2789,"nodeType":"ArrayTypeName","src":"70506:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"},{"constant":false,"id":2793,"mutability":"mutable","name":"right","nameLocation":"70544:5:0","nodeType":"VariableDeclaration","scope":2798,"src":"70528:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":2791,"name":"bool","nodeType":"ElementaryTypeName","src":"70528:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2792,"nodeType":"ArrayTypeName","src":"70528:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"},{"constant":false,"id":2795,"mutability":"mutable","name":"error","nameLocation":"70567:5:0","nodeType":"VariableDeclaration","scope":2798,"src":"70551:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2794,"name":"string","nodeType":"ElementaryTypeName","src":"70551:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"70505:68:0"},"returnParameters":{"id":2797,"nodeType":"ParameterList","parameters":[],"src":"70587:0:0"},"scope":3388,"src":"70485:103:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2799,"nodeType":"StructuredDocumentation","src":"70594:62:0","text":"Asserts that two arrays of `uint256` values are not equal."},"functionSelector":"56f29cba","id":2808,"implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"70670:11:0","nodeType":"FunctionDefinition","parameters":{"id":2806,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2802,"mutability":"mutable","name":"left","nameLocation":"70701:4:0","nodeType":"VariableDeclaration","scope":2808,"src":"70682:23:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":2800,"name":"uint256","nodeType":"ElementaryTypeName","src":"70682:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2801,"nodeType":"ArrayTypeName","src":"70682:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":2805,"mutability":"mutable","name":"right","nameLocation":"70726:5:0","nodeType":"VariableDeclaration","scope":2808,"src":"70707:24:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":2803,"name":"uint256","nodeType":"ElementaryTypeName","src":"70707:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2804,"nodeType":"ArrayTypeName","src":"70707:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"70681:51:0"},"returnParameters":{"id":2807,"nodeType":"ParameterList","parameters":[],"src":"70746:0:0"},"scope":3388,"src":"70661:86:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2809,"nodeType":"StructuredDocumentation","src":"70753:119:0","text":"Asserts that two arrays of `uint256` values are not equal and includes error message into revert string on failure."},"functionSelector":"9a7fbd8f","id":2820,"implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"70886:11:0","nodeType":"FunctionDefinition","parameters":{"id":2818,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2812,"mutability":"mutable","name":"left","nameLocation":"70917:4:0","nodeType":"VariableDeclaration","scope":2820,"src":"70898:23:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":2810,"name":"uint256","nodeType":"ElementaryTypeName","src":"70898:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2811,"nodeType":"ArrayTypeName","src":"70898:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":2815,"mutability":"mutable","name":"right","nameLocation":"70942:5:0","nodeType":"VariableDeclaration","scope":2820,"src":"70923:24:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":2813,"name":"uint256","nodeType":"ElementaryTypeName","src":"70923:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2814,"nodeType":"ArrayTypeName","src":"70923:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":2817,"mutability":"mutable","name":"error","nameLocation":"70965:5:0","nodeType":"VariableDeclaration","scope":2820,"src":"70949:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2816,"name":"string","nodeType":"ElementaryTypeName","src":"70949:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"70897:74:0"},"returnParameters":{"id":2819,"nodeType":"ParameterList","parameters":[],"src":"70985:0:0"},"scope":3388,"src":"70877:109:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2821,"nodeType":"StructuredDocumentation","src":"70992:61:0","text":"Asserts that two arrays of `int256` values are not equal."},"functionSelector":"0b72f4ef","id":2830,"implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"71067:11:0","nodeType":"FunctionDefinition","parameters":{"id":2828,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2824,"mutability":"mutable","name":"left","nameLocation":"71097:4:0","nodeType":"VariableDeclaration","scope":2830,"src":"71079:22:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_calldata_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":2822,"name":"int256","nodeType":"ElementaryTypeName","src":"71079:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":2823,"nodeType":"ArrayTypeName","src":"71079:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"},{"constant":false,"id":2827,"mutability":"mutable","name":"right","nameLocation":"71121:5:0","nodeType":"VariableDeclaration","scope":2830,"src":"71103:23:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_calldata_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":2825,"name":"int256","nodeType":"ElementaryTypeName","src":"71103:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":2826,"nodeType":"ArrayTypeName","src":"71103:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"}],"src":"71078:49:0"},"returnParameters":{"id":2829,"nodeType":"ParameterList","parameters":[],"src":"71141:0:0"},"scope":3388,"src":"71058:84:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2831,"nodeType":"StructuredDocumentation","src":"71148:118:0","text":"Asserts that two arrays of `int256` values are not equal and includes error message into revert string on failure."},"functionSelector":"d3977322","id":2842,"implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"71280:11:0","nodeType":"FunctionDefinition","parameters":{"id":2840,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2834,"mutability":"mutable","name":"left","nameLocation":"71310:4:0","nodeType":"VariableDeclaration","scope":2842,"src":"71292:22:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_calldata_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":2832,"name":"int256","nodeType":"ElementaryTypeName","src":"71292:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":2833,"nodeType":"ArrayTypeName","src":"71292:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"},{"constant":false,"id":2837,"mutability":"mutable","name":"right","nameLocation":"71334:5:0","nodeType":"VariableDeclaration","scope":2842,"src":"71316:23:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_calldata_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":2835,"name":"int256","nodeType":"ElementaryTypeName","src":"71316:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":2836,"nodeType":"ArrayTypeName","src":"71316:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"},{"constant":false,"id":2839,"mutability":"mutable","name":"error","nameLocation":"71357:5:0","nodeType":"VariableDeclaration","scope":2842,"src":"71341:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2838,"name":"string","nodeType":"ElementaryTypeName","src":"71341:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"71291:72:0"},"returnParameters":{"id":2841,"nodeType":"ParameterList","parameters":[],"src":"71377:0:0"},"scope":3388,"src":"71271:107:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2843,"nodeType":"StructuredDocumentation","src":"71384:52:0","text":"Asserts that two `uint256` values are not equal."},"functionSelector":"b7909320","id":2850,"implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"71450:11:0","nodeType":"FunctionDefinition","parameters":{"id":2848,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2845,"mutability":"mutable","name":"left","nameLocation":"71470:4:0","nodeType":"VariableDeclaration","scope":2850,"src":"71462:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2844,"name":"uint256","nodeType":"ElementaryTypeName","src":"71462:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2847,"mutability":"mutable","name":"right","nameLocation":"71484:5:0","nodeType":"VariableDeclaration","scope":2850,"src":"71476:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2846,"name":"uint256","nodeType":"ElementaryTypeName","src":"71476:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"71461:29:0"},"returnParameters":{"id":2849,"nodeType":"ParameterList","parameters":[],"src":"71504:0:0"},"scope":3388,"src":"71441:64:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2851,"nodeType":"StructuredDocumentation","src":"71511:62:0","text":"Asserts that two arrays of `address` values are not equal."},"functionSelector":"46d0b252","id":2860,"implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"71587:11:0","nodeType":"FunctionDefinition","parameters":{"id":2858,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2854,"mutability":"mutable","name":"left","nameLocation":"71618:4:0","nodeType":"VariableDeclaration","scope":2860,"src":"71599:23:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":2852,"name":"address","nodeType":"ElementaryTypeName","src":"71599:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2853,"nodeType":"ArrayTypeName","src":"71599:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":2857,"mutability":"mutable","name":"right","nameLocation":"71643:5:0","nodeType":"VariableDeclaration","scope":2860,"src":"71624:24:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":2855,"name":"address","nodeType":"ElementaryTypeName","src":"71624:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2856,"nodeType":"ArrayTypeName","src":"71624:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"71598:51:0"},"returnParameters":{"id":2859,"nodeType":"ParameterList","parameters":[],"src":"71663:0:0"},"scope":3388,"src":"71578:86:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2861,"nodeType":"StructuredDocumentation","src":"71670:119:0","text":"Asserts that two arrays of `address` values are not equal and includes error message into revert string on failure."},"functionSelector":"72c7e0b5","id":2872,"implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"71803:11:0","nodeType":"FunctionDefinition","parameters":{"id":2870,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2864,"mutability":"mutable","name":"left","nameLocation":"71834:4:0","nodeType":"VariableDeclaration","scope":2872,"src":"71815:23:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":2862,"name":"address","nodeType":"ElementaryTypeName","src":"71815:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2863,"nodeType":"ArrayTypeName","src":"71815:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":2867,"mutability":"mutable","name":"right","nameLocation":"71859:5:0","nodeType":"VariableDeclaration","scope":2872,"src":"71840:24:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":2865,"name":"address","nodeType":"ElementaryTypeName","src":"71840:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2866,"nodeType":"ArrayTypeName","src":"71840:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":2869,"mutability":"mutable","name":"error","nameLocation":"71882:5:0","nodeType":"VariableDeclaration","scope":2872,"src":"71866:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2868,"name":"string","nodeType":"ElementaryTypeName","src":"71866:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"71814:74:0"},"returnParameters":{"id":2871,"nodeType":"ParameterList","parameters":[],"src":"71902:0:0"},"scope":3388,"src":"71794:109:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2873,"nodeType":"StructuredDocumentation","src":"71909:62:0","text":"Asserts that two arrays of `bytes32` values are not equal."},"functionSelector":"0603ea68","id":2882,"implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"71985:11:0","nodeType":"FunctionDefinition","parameters":{"id":2880,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2876,"mutability":"mutable","name":"left","nameLocation":"72016:4:0","nodeType":"VariableDeclaration","scope":2882,"src":"71997:23:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":2874,"name":"bytes32","nodeType":"ElementaryTypeName","src":"71997:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2875,"nodeType":"ArrayTypeName","src":"71997:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":2879,"mutability":"mutable","name":"right","nameLocation":"72041:5:0","nodeType":"VariableDeclaration","scope":2882,"src":"72022:24:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":2877,"name":"bytes32","nodeType":"ElementaryTypeName","src":"72022:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2878,"nodeType":"ArrayTypeName","src":"72022:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"71996:51:0"},"returnParameters":{"id":2881,"nodeType":"ParameterList","parameters":[],"src":"72061:0:0"},"scope":3388,"src":"71976:86:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2883,"nodeType":"StructuredDocumentation","src":"72068:119:0","text":"Asserts that two arrays of `bytes32` values are not equal and includes error message into revert string on failure."},"functionSelector":"b873634c","id":2894,"implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"72201:11:0","nodeType":"FunctionDefinition","parameters":{"id":2892,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2886,"mutability":"mutable","name":"left","nameLocation":"72232:4:0","nodeType":"VariableDeclaration","scope":2894,"src":"72213:23:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":2884,"name":"bytes32","nodeType":"ElementaryTypeName","src":"72213:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2885,"nodeType":"ArrayTypeName","src":"72213:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":2889,"mutability":"mutable","name":"right","nameLocation":"72257:5:0","nodeType":"VariableDeclaration","scope":2894,"src":"72238:24:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":2887,"name":"bytes32","nodeType":"ElementaryTypeName","src":"72238:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2888,"nodeType":"ArrayTypeName","src":"72238:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":2891,"mutability":"mutable","name":"error","nameLocation":"72280:5:0","nodeType":"VariableDeclaration","scope":2894,"src":"72264:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2890,"name":"string","nodeType":"ElementaryTypeName","src":"72264:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"72212:74:0"},"returnParameters":{"id":2893,"nodeType":"ParameterList","parameters":[],"src":"72300:0:0"},"scope":3388,"src":"72192:109:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2895,"nodeType":"StructuredDocumentation","src":"72307:61:0","text":"Asserts that two arrays of `string` values are not equal."},"functionSelector":"bdfacbe8","id":2904,"implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"72382:11:0","nodeType":"FunctionDefinition","parameters":{"id":2902,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2898,"mutability":"mutable","name":"left","nameLocation":"72412:4:0","nodeType":"VariableDeclaration","scope":2904,"src":"72394:22:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_string_calldata_ptr_$dyn_calldata_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":2896,"name":"string","nodeType":"ElementaryTypeName","src":"72394:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":2897,"nodeType":"ArrayTypeName","src":"72394:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":2901,"mutability":"mutable","name":"right","nameLocation":"72436:5:0","nodeType":"VariableDeclaration","scope":2904,"src":"72418:23:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_string_calldata_ptr_$dyn_calldata_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":2899,"name":"string","nodeType":"ElementaryTypeName","src":"72418:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":2900,"nodeType":"ArrayTypeName","src":"72418:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"72393:49:0"},"returnParameters":{"id":2903,"nodeType":"ParameterList","parameters":[],"src":"72456:0:0"},"scope":3388,"src":"72373:84:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2905,"nodeType":"StructuredDocumentation","src":"72463:118:0","text":"Asserts that two arrays of `string` values are not equal and includes error message into revert string on failure."},"functionSelector":"b67187f3","id":2916,"implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"72595:11:0","nodeType":"FunctionDefinition","parameters":{"id":2914,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2908,"mutability":"mutable","name":"left","nameLocation":"72625:4:0","nodeType":"VariableDeclaration","scope":2916,"src":"72607:22:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_string_calldata_ptr_$dyn_calldata_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":2906,"name":"string","nodeType":"ElementaryTypeName","src":"72607:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":2907,"nodeType":"ArrayTypeName","src":"72607:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":2911,"mutability":"mutable","name":"right","nameLocation":"72649:5:0","nodeType":"VariableDeclaration","scope":2916,"src":"72631:23:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_string_calldata_ptr_$dyn_calldata_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":2909,"name":"string","nodeType":"ElementaryTypeName","src":"72631:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":2910,"nodeType":"ArrayTypeName","src":"72631:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":2913,"mutability":"mutable","name":"error","nameLocation":"72672:5:0","nodeType":"VariableDeclaration","scope":2916,"src":"72656:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2912,"name":"string","nodeType":"ElementaryTypeName","src":"72656:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"72606:72:0"},"returnParameters":{"id":2915,"nodeType":"ParameterList","parameters":[],"src":"72692:0:0"},"scope":3388,"src":"72586:107:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2917,"nodeType":"StructuredDocumentation","src":"72699:60:0","text":"Asserts that two arrays of `bytes` values are not equal."},"functionSelector":"edecd035","id":2926,"implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"72773:11:0","nodeType":"FunctionDefinition","parameters":{"id":2924,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2920,"mutability":"mutable","name":"left","nameLocation":"72802:4:0","nodeType":"VariableDeclaration","scope":2926,"src":"72785:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":2918,"name":"bytes","nodeType":"ElementaryTypeName","src":"72785:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":2919,"nodeType":"ArrayTypeName","src":"72785:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":2923,"mutability":"mutable","name":"right","nameLocation":"72825:5:0","nodeType":"VariableDeclaration","scope":2926,"src":"72808:22:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":2921,"name":"bytes","nodeType":"ElementaryTypeName","src":"72808:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":2922,"nodeType":"ArrayTypeName","src":"72808:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"72784:47:0"},"returnParameters":{"id":2925,"nodeType":"ParameterList","parameters":[],"src":"72845:0:0"},"scope":3388,"src":"72764:82:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2927,"nodeType":"StructuredDocumentation","src":"72852:117:0","text":"Asserts that two arrays of `bytes` values are not equal and includes error message into revert string on failure."},"functionSelector":"1dcd1f68","id":2938,"implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"72983:11:0","nodeType":"FunctionDefinition","parameters":{"id":2936,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2930,"mutability":"mutable","name":"left","nameLocation":"73012:4:0","nodeType":"VariableDeclaration","scope":2938,"src":"72995:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":2928,"name":"bytes","nodeType":"ElementaryTypeName","src":"72995:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":2929,"nodeType":"ArrayTypeName","src":"72995:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":2933,"mutability":"mutable","name":"right","nameLocation":"73035:5:0","nodeType":"VariableDeclaration","scope":2938,"src":"73018:22:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":2931,"name":"bytes","nodeType":"ElementaryTypeName","src":"73018:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":2932,"nodeType":"ArrayTypeName","src":"73018:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":2935,"mutability":"mutable","name":"error","nameLocation":"73058:5:0","nodeType":"VariableDeclaration","scope":2938,"src":"73042:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2934,"name":"string","nodeType":"ElementaryTypeName","src":"73042:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"72994:70:0"},"returnParameters":{"id":2937,"nodeType":"ParameterList","parameters":[],"src":"73078:0:0"},"scope":3388,"src":"72974:105:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2939,"nodeType":"StructuredDocumentation","src":"73085:109:0","text":"Asserts that two `uint256` values are not equal and includes error message into revert string on failure."},"functionSelector":"98f9bdbd","id":2948,"implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"73208:11:0","nodeType":"FunctionDefinition","parameters":{"id":2946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2941,"mutability":"mutable","name":"left","nameLocation":"73228:4:0","nodeType":"VariableDeclaration","scope":2948,"src":"73220:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2940,"name":"uint256","nodeType":"ElementaryTypeName","src":"73220:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2943,"mutability":"mutable","name":"right","nameLocation":"73242:5:0","nodeType":"VariableDeclaration","scope":2948,"src":"73234:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2942,"name":"uint256","nodeType":"ElementaryTypeName","src":"73234:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2945,"mutability":"mutable","name":"error","nameLocation":"73265:5:0","nodeType":"VariableDeclaration","scope":2948,"src":"73249:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2944,"name":"string","nodeType":"ElementaryTypeName","src":"73249:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"73219:52:0"},"returnParameters":{"id":2947,"nodeType":"ParameterList","parameters":[],"src":"73285:0:0"},"scope":3388,"src":"73199:87:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2949,"nodeType":"StructuredDocumentation","src":"73292:51:0","text":"Asserts that two `int256` values are not equal."},"functionSelector":"f4c004e3","id":2956,"implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"73357:11:0","nodeType":"FunctionDefinition","parameters":{"id":2954,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2951,"mutability":"mutable","name":"left","nameLocation":"73376:4:0","nodeType":"VariableDeclaration","scope":2956,"src":"73369:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2950,"name":"int256","nodeType":"ElementaryTypeName","src":"73369:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2953,"mutability":"mutable","name":"right","nameLocation":"73389:5:0","nodeType":"VariableDeclaration","scope":2956,"src":"73382:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2952,"name":"int256","nodeType":"ElementaryTypeName","src":"73382:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"73368:27:0"},"returnParameters":{"id":2955,"nodeType":"ParameterList","parameters":[],"src":"73409:0:0"},"scope":3388,"src":"73348:62:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2957,"nodeType":"StructuredDocumentation","src":"73416:108:0","text":"Asserts that two `int256` values are not equal and includes error message into revert string on failure."},"functionSelector":"4724c5b9","id":2966,"implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"73538:11:0","nodeType":"FunctionDefinition","parameters":{"id":2964,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2959,"mutability":"mutable","name":"left","nameLocation":"73557:4:0","nodeType":"VariableDeclaration","scope":2966,"src":"73550:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2958,"name":"int256","nodeType":"ElementaryTypeName","src":"73550:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2961,"mutability":"mutable","name":"right","nameLocation":"73570:5:0","nodeType":"VariableDeclaration","scope":2966,"src":"73563:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2960,"name":"int256","nodeType":"ElementaryTypeName","src":"73563:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2963,"mutability":"mutable","name":"error","nameLocation":"73593:5:0","nodeType":"VariableDeclaration","scope":2966,"src":"73577:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2962,"name":"string","nodeType":"ElementaryTypeName","src":"73577:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"73549:50:0"},"returnParameters":{"id":2965,"nodeType":"ParameterList","parameters":[],"src":"73613:0:0"},"scope":3388,"src":"73529:85:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2967,"nodeType":"StructuredDocumentation","src":"73620:52:0","text":"Asserts that two `address` values are not equal."},"functionSelector":"b12e1694","id":2974,"implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"73686:11:0","nodeType":"FunctionDefinition","parameters":{"id":2972,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2969,"mutability":"mutable","name":"left","nameLocation":"73706:4:0","nodeType":"VariableDeclaration","scope":2974,"src":"73698:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2968,"name":"address","nodeType":"ElementaryTypeName","src":"73698:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2971,"mutability":"mutable","name":"right","nameLocation":"73720:5:0","nodeType":"VariableDeclaration","scope":2974,"src":"73712:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2970,"name":"address","nodeType":"ElementaryTypeName","src":"73712:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"73697:29:0"},"returnParameters":{"id":2973,"nodeType":"ParameterList","parameters":[],"src":"73740:0:0"},"scope":3388,"src":"73677:64:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2975,"nodeType":"StructuredDocumentation","src":"73747:109:0","text":"Asserts that two `address` values are not equal and includes error message into revert string on failure."},"functionSelector":"8775a591","id":2984,"implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"73870:11:0","nodeType":"FunctionDefinition","parameters":{"id":2982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2977,"mutability":"mutable","name":"left","nameLocation":"73890:4:0","nodeType":"VariableDeclaration","scope":2984,"src":"73882:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2976,"name":"address","nodeType":"ElementaryTypeName","src":"73882:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2979,"mutability":"mutable","name":"right","nameLocation":"73904:5:0","nodeType":"VariableDeclaration","scope":2984,"src":"73896:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2978,"name":"address","nodeType":"ElementaryTypeName","src":"73896:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2981,"mutability":"mutable","name":"error","nameLocation":"73927:5:0","nodeType":"VariableDeclaration","scope":2984,"src":"73911:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2980,"name":"string","nodeType":"ElementaryTypeName","src":"73911:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"73881:52:0"},"returnParameters":{"id":2983,"nodeType":"ParameterList","parameters":[],"src":"73947:0:0"},"scope":3388,"src":"73861:87:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2985,"nodeType":"StructuredDocumentation","src":"73954:52:0","text":"Asserts that two `bytes32` values are not equal."},"functionSelector":"898e83fc","id":2992,"implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"74020:11:0","nodeType":"FunctionDefinition","parameters":{"id":2990,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2987,"mutability":"mutable","name":"left","nameLocation":"74040:4:0","nodeType":"VariableDeclaration","scope":2992,"src":"74032:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2986,"name":"bytes32","nodeType":"ElementaryTypeName","src":"74032:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2989,"mutability":"mutable","name":"right","nameLocation":"74054:5:0","nodeType":"VariableDeclaration","scope":2992,"src":"74046:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2988,"name":"bytes32","nodeType":"ElementaryTypeName","src":"74046:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"74031:29:0"},"returnParameters":{"id":2991,"nodeType":"ParameterList","parameters":[],"src":"74074:0:0"},"scope":3388,"src":"74011:64:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":2993,"nodeType":"StructuredDocumentation","src":"74081:109:0","text":"Asserts that two `bytes32` values are not equal and includes error message into revert string on failure."},"functionSelector":"b2332f51","id":3002,"implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"74204:11:0","nodeType":"FunctionDefinition","parameters":{"id":3000,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2995,"mutability":"mutable","name":"left","nameLocation":"74224:4:0","nodeType":"VariableDeclaration","scope":3002,"src":"74216:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2994,"name":"bytes32","nodeType":"ElementaryTypeName","src":"74216:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2997,"mutability":"mutable","name":"right","nameLocation":"74238:5:0","nodeType":"VariableDeclaration","scope":3002,"src":"74230:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2996,"name":"bytes32","nodeType":"ElementaryTypeName","src":"74230:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2999,"mutability":"mutable","name":"error","nameLocation":"74261:5:0","nodeType":"VariableDeclaration","scope":3002,"src":"74245:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2998,"name":"string","nodeType":"ElementaryTypeName","src":"74245:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"74215:52:0"},"returnParameters":{"id":3001,"nodeType":"ParameterList","parameters":[],"src":"74281:0:0"},"scope":3388,"src":"74195:87:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":3003,"nodeType":"StructuredDocumentation","src":"74288:45:0","text":"Asserts that the given condition is true."},"functionSelector":"0c9fd581","id":3008,"implemented":false,"kind":"function","modifiers":[],"name":"assertTrue","nameLocation":"74347:10:0","nodeType":"FunctionDefinition","parameters":{"id":3006,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3005,"mutability":"mutable","name":"condition","nameLocation":"74363:9:0","nodeType":"VariableDeclaration","scope":3008,"src":"74358:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3004,"name":"bool","nodeType":"ElementaryTypeName","src":"74358:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"74357:16:0"},"returnParameters":{"id":3007,"nodeType":"ParameterList","parameters":[],"src":"74387:0:0"},"scope":3388,"src":"74338:50:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":3009,"nodeType":"StructuredDocumentation","src":"74394:102:0","text":"Asserts that the given condition is true and includes error message into revert string on failure."},"functionSelector":"a34edc03","id":3016,"implemented":false,"kind":"function","modifiers":[],"name":"assertTrue","nameLocation":"74510:10:0","nodeType":"FunctionDefinition","parameters":{"id":3014,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3011,"mutability":"mutable","name":"condition","nameLocation":"74526:9:0","nodeType":"VariableDeclaration","scope":3016,"src":"74521:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3010,"name":"bool","nodeType":"ElementaryTypeName","src":"74521:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3013,"mutability":"mutable","name":"error","nameLocation":"74553:5:0","nodeType":"VariableDeclaration","scope":3016,"src":"74537:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3012,"name":"string","nodeType":"ElementaryTypeName","src":"74537:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"74520:39:0"},"returnParameters":{"id":3015,"nodeType":"ParameterList","parameters":[],"src":"74573:0:0"},"scope":3388,"src":"74501:73:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":3017,"nodeType":"StructuredDocumentation","src":"74580:84:0","text":"If the condition is false, discard this run's fuzz inputs and generate new ones."},"functionSelector":"4c63e562","id":3022,"implemented":false,"kind":"function","modifiers":[],"name":"assume","nameLocation":"74678:6:0","nodeType":"FunctionDefinition","parameters":{"id":3020,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3019,"mutability":"mutable","name":"condition","nameLocation":"74690:9:0","nodeType":"VariableDeclaration","scope":3022,"src":"74685:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3018,"name":"bool","nodeType":"ElementaryTypeName","src":"74685:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"74684:16:0"},"returnParameters":{"id":3021,"nodeType":"ParameterList","parameters":[],"src":"74714:0:0"},"scope":3388,"src":"74669:46:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":3023,"nodeType":"StructuredDocumentation","src":"74721:51:0","text":"Writes a breakpoint to jump to in the debugger."},"functionSelector":"f0259e92","id":3028,"implemented":false,"kind":"function","modifiers":[],"name":"breakpoint","nameLocation":"74786:10:0","nodeType":"FunctionDefinition","parameters":{"id":3026,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3025,"mutability":"mutable","name":"char","nameLocation":"74813:4:0","nodeType":"VariableDeclaration","scope":3028,"src":"74797:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3024,"name":"string","nodeType":"ElementaryTypeName","src":"74797:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"74796:22:0"},"returnParameters":{"id":3027,"nodeType":"ParameterList","parameters":[],"src":"74827:0:0"},"scope":3388,"src":"74777:51:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3029,"nodeType":"StructuredDocumentation","src":"74834:63:0","text":"Writes a conditional breakpoint to jump to in the debugger."},"functionSelector":"f7d39a8d","id":3036,"implemented":false,"kind":"function","modifiers":[],"name":"breakpoint","nameLocation":"74911:10:0","nodeType":"FunctionDefinition","parameters":{"id":3034,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3031,"mutability":"mutable","name":"char","nameLocation":"74938:4:0","nodeType":"VariableDeclaration","scope":3036,"src":"74922:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3030,"name":"string","nodeType":"ElementaryTypeName","src":"74922:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3033,"mutability":"mutable","name":"value","nameLocation":"74949:5:0","nodeType":"VariableDeclaration","scope":3036,"src":"74944:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3032,"name":"bool","nodeType":"ElementaryTypeName","src":"74944:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"74921:34:0"},"returnParameters":{"id":3035,"nodeType":"ParameterList","parameters":[],"src":"74964:0:0"},"scope":3388,"src":"74902:63:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3037,"nodeType":"StructuredDocumentation","src":"74971:394:0","text":"Returns the Foundry version.\n Format: ++\n Sample output: 0.2.0+faa94c384+202407110019\n Note: Build timestamps may vary slightly across platforms due to separate CI jobs.\n For reliable version comparisons, use YYYYMMDD0000 format (e.g., >= 202407110000)\n to compare timestamps while ignoring minor time differences."},"functionSelector":"ea991bb5","id":3042,"implemented":false,"kind":"function","modifiers":[],"name":"getFoundryVersion","nameLocation":"75379:17:0","nodeType":"FunctionDefinition","parameters":{"id":3038,"nodeType":"ParameterList","parameters":[],"src":"75396:2:0"},"returnParameters":{"id":3041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3040,"mutability":"mutable","name":"version","nameLocation":"75436:7:0","nodeType":"VariableDeclaration","scope":3042,"src":"75422:21:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3039,"name":"string","nodeType":"ElementaryTypeName","src":"75422:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"75421:23:0"},"scope":3388,"src":"75370:75:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":3043,"nodeType":"StructuredDocumentation","src":"75451:44:0","text":"Returns the RPC url for the given alias."},"functionSelector":"975a6ce9","id":3050,"implemented":false,"kind":"function","modifiers":[],"name":"rpcUrl","nameLocation":"75509:6:0","nodeType":"FunctionDefinition","parameters":{"id":3046,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3045,"mutability":"mutable","name":"rpcAlias","nameLocation":"75532:8:0","nodeType":"VariableDeclaration","scope":3050,"src":"75516:24:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3044,"name":"string","nodeType":"ElementaryTypeName","src":"75516:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"75515:26:0"},"returnParameters":{"id":3049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3048,"mutability":"mutable","name":"json","nameLocation":"75579:4:0","nodeType":"VariableDeclaration","scope":3050,"src":"75565:18:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3047,"name":"string","nodeType":"ElementaryTypeName","src":"75565:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"75564:20:0"},"scope":3388,"src":"75500:85:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":3051,"nodeType":"StructuredDocumentation","src":"75591:54:0","text":"Returns all rpc urls and their aliases as structs."},"functionSelector":"9d2ad72a","id":3058,"implemented":false,"kind":"function","modifiers":[],"name":"rpcUrlStructs","nameLocation":"75659:13:0","nodeType":"FunctionDefinition","parameters":{"id":3052,"nodeType":"ParameterList","parameters":[],"src":"75672:2:0"},"returnParameters":{"id":3057,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3056,"mutability":"mutable","name":"urls","nameLocation":"75711:4:0","nodeType":"VariableDeclaration","scope":3058,"src":"75698:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Rpc_$49_memory_ptr_$dyn_memory_ptr","typeString":"struct VmSafe.Rpc[]"},"typeName":{"baseType":{"id":3054,"nodeType":"UserDefinedTypeName","pathNode":{"id":3053,"name":"Rpc","nameLocations":["75698:3:0"],"nodeType":"IdentifierPath","referencedDeclaration":49,"src":"75698:3:0"},"referencedDeclaration":49,"src":"75698:3:0","typeDescriptions":{"typeIdentifier":"t_struct$_Rpc_$49_storage_ptr","typeString":"struct VmSafe.Rpc"}},"id":3055,"nodeType":"ArrayTypeName","src":"75698:5:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Rpc_$49_storage_$dyn_storage_ptr","typeString":"struct VmSafe.Rpc[]"}},"visibility":"internal"}],"src":"75697:19:0"},"scope":3388,"src":"75650:67:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":3059,"nodeType":"StructuredDocumentation","src":"75723:60:0","text":"Returns all rpc urls and their aliases `[alias, url][]`."},"functionSelector":"a85a8418","id":3067,"implemented":false,"kind":"function","modifiers":[],"name":"rpcUrls","nameLocation":"75797:7:0","nodeType":"FunctionDefinition","parameters":{"id":3060,"nodeType":"ParameterList","parameters":[],"src":"75804:2:0"},"returnParameters":{"id":3066,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3065,"mutability":"mutable","name":"urls","nameLocation":"75849:4:0","nodeType":"VariableDeclaration","scope":3067,"src":"75830:23:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr","typeString":"string[2][]"},"typeName":{"baseType":{"baseType":{"id":3061,"name":"string","nodeType":"ElementaryTypeName","src":"75830:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":3063,"length":{"hexValue":"32","id":3062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"75837:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"ArrayTypeName","src":"75830:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$2_storage_ptr","typeString":"string[2]"}},"id":3064,"nodeType":"ArrayTypeName","src":"75830:11:0","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_string_storage_$2_storage_$dyn_storage_ptr","typeString":"string[2][]"}},"visibility":"internal"}],"src":"75829:25:0"},"scope":3388,"src":"75788:67:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":3068,"nodeType":"StructuredDocumentation","src":"75861:70:0","text":"Suspends execution of the main thread for `duration` milliseconds."},"functionSelector":"fa9d8713","id":3073,"implemented":false,"kind":"function","modifiers":[],"name":"sleep","nameLocation":"75945:5:0","nodeType":"FunctionDefinition","parameters":{"id":3071,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3070,"mutability":"mutable","name":"duration","nameLocation":"75959:8:0","nodeType":"VariableDeclaration","scope":3073,"src":"75951:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3069,"name":"uint256","nodeType":"ElementaryTypeName","src":"75951:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"75950:18:0"},"returnParameters":{"id":3072,"nodeType":"ParameterList","parameters":[],"src":"75977:0:0"},"scope":3388,"src":"75936:42:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3074,"nodeType":"StructuredDocumentation","src":"76015:43:0","text":"Checks if `key` exists in a TOML table."},"functionSelector":"600903ad","id":3083,"implemented":false,"kind":"function","modifiers":[],"name":"keyExistsToml","nameLocation":"76072:13:0","nodeType":"FunctionDefinition","parameters":{"id":3079,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3076,"mutability":"mutable","name":"toml","nameLocation":"76102:4:0","nodeType":"VariableDeclaration","scope":3083,"src":"76086:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3075,"name":"string","nodeType":"ElementaryTypeName","src":"76086:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3078,"mutability":"mutable","name":"key","nameLocation":"76124:3:0","nodeType":"VariableDeclaration","scope":3083,"src":"76108:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3077,"name":"string","nodeType":"ElementaryTypeName","src":"76108:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"76085:43:0"},"returnParameters":{"id":3082,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3081,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3083,"src":"76152:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3080,"name":"bool","nodeType":"ElementaryTypeName","src":"76152:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"76151:6:0"},"scope":3388,"src":"76063:95:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":3084,"nodeType":"StructuredDocumentation","src":"76164:70:0","text":"Parses a string of TOML data at `key` and coerces it to `address`."},"functionSelector":"65e7c844","id":3093,"implemented":false,"kind":"function","modifiers":[],"name":"parseTomlAddress","nameLocation":"76248:16:0","nodeType":"FunctionDefinition","parameters":{"id":3089,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3086,"mutability":"mutable","name":"toml","nameLocation":"76281:4:0","nodeType":"VariableDeclaration","scope":3093,"src":"76265:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3085,"name":"string","nodeType":"ElementaryTypeName","src":"76265:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3088,"mutability":"mutable","name":"key","nameLocation":"76303:3:0","nodeType":"VariableDeclaration","scope":3093,"src":"76287:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3087,"name":"string","nodeType":"ElementaryTypeName","src":"76287:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"76264:43:0"},"returnParameters":{"id":3092,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3091,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3093,"src":"76331:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3090,"name":"address","nodeType":"ElementaryTypeName","src":"76331:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"76330:9:0"},"scope":3388,"src":"76239:101:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":3094,"nodeType":"StructuredDocumentation","src":"76346:72:0","text":"Parses a string of TOML data at `key` and coerces it to `address[]`."},"functionSelector":"65c428e7","id":3104,"implemented":false,"kind":"function","modifiers":[],"name":"parseTomlAddressArray","nameLocation":"76432:21:0","nodeType":"FunctionDefinition","parameters":{"id":3099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3096,"mutability":"mutable","name":"toml","nameLocation":"76470:4:0","nodeType":"VariableDeclaration","scope":3104,"src":"76454:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3095,"name":"string","nodeType":"ElementaryTypeName","src":"76454:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3098,"mutability":"mutable","name":"key","nameLocation":"76492:3:0","nodeType":"VariableDeclaration","scope":3104,"src":"76476:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3097,"name":"string","nodeType":"ElementaryTypeName","src":"76476:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"76453:43:0"},"returnParameters":{"id":3103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3102,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3104,"src":"76544:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":3100,"name":"address","nodeType":"ElementaryTypeName","src":"76544:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3101,"nodeType":"ArrayTypeName","src":"76544:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"76543:18:0"},"scope":3388,"src":"76423:139:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":3105,"nodeType":"StructuredDocumentation","src":"76568:67:0","text":"Parses a string of TOML data at `key` and coerces it to `bool`."},"functionSelector":"d30dced6","id":3114,"implemented":false,"kind":"function","modifiers":[],"name":"parseTomlBool","nameLocation":"76649:13:0","nodeType":"FunctionDefinition","parameters":{"id":3110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3107,"mutability":"mutable","name":"toml","nameLocation":"76679:4:0","nodeType":"VariableDeclaration","scope":3114,"src":"76663:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3106,"name":"string","nodeType":"ElementaryTypeName","src":"76663:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3109,"mutability":"mutable","name":"key","nameLocation":"76701:3:0","nodeType":"VariableDeclaration","scope":3114,"src":"76685:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3108,"name":"string","nodeType":"ElementaryTypeName","src":"76685:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"76662:43:0"},"returnParameters":{"id":3113,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3112,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3114,"src":"76729:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3111,"name":"bool","nodeType":"ElementaryTypeName","src":"76729:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"76728:6:0"},"scope":3388,"src":"76640:95:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":3115,"nodeType":"StructuredDocumentation","src":"76741:69:0","text":"Parses a string of TOML data at `key` and coerces it to `bool[]`."},"functionSelector":"127cfe9a","id":3125,"implemented":false,"kind":"function","modifiers":[],"name":"parseTomlBoolArray","nameLocation":"76824:18:0","nodeType":"FunctionDefinition","parameters":{"id":3120,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3117,"mutability":"mutable","name":"toml","nameLocation":"76859:4:0","nodeType":"VariableDeclaration","scope":3125,"src":"76843:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3116,"name":"string","nodeType":"ElementaryTypeName","src":"76843:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3119,"mutability":"mutable","name":"key","nameLocation":"76881:3:0","nodeType":"VariableDeclaration","scope":3125,"src":"76865:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3118,"name":"string","nodeType":"ElementaryTypeName","src":"76865:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"76842:43:0"},"returnParameters":{"id":3124,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3123,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3125,"src":"76909:13:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":3121,"name":"bool","nodeType":"ElementaryTypeName","src":"76909:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3122,"nodeType":"ArrayTypeName","src":"76909:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"76908:15:0"},"scope":3388,"src":"76815:109:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":3126,"nodeType":"StructuredDocumentation","src":"76930:68:0","text":"Parses a string of TOML data at `key` and coerces it to `bytes`."},"functionSelector":"d77bfdb9","id":3135,"implemented":false,"kind":"function","modifiers":[],"name":"parseTomlBytes","nameLocation":"77012:14:0","nodeType":"FunctionDefinition","parameters":{"id":3131,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3128,"mutability":"mutable","name":"toml","nameLocation":"77043:4:0","nodeType":"VariableDeclaration","scope":3135,"src":"77027:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3127,"name":"string","nodeType":"ElementaryTypeName","src":"77027:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3130,"mutability":"mutable","name":"key","nameLocation":"77065:3:0","nodeType":"VariableDeclaration","scope":3135,"src":"77049:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3129,"name":"string","nodeType":"ElementaryTypeName","src":"77049:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"77026:43:0"},"returnParameters":{"id":3134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3133,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3135,"src":"77093:12:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3132,"name":"bytes","nodeType":"ElementaryTypeName","src":"77093:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"77092:14:0"},"scope":3388,"src":"77003:104:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":3136,"nodeType":"StructuredDocumentation","src":"77113:70:0","text":"Parses a string of TOML data at `key` and coerces it to `bytes32`."},"functionSelector":"8e214810","id":3145,"implemented":false,"kind":"function","modifiers":[],"name":"parseTomlBytes32","nameLocation":"77197:16:0","nodeType":"FunctionDefinition","parameters":{"id":3141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3138,"mutability":"mutable","name":"toml","nameLocation":"77230:4:0","nodeType":"VariableDeclaration","scope":3145,"src":"77214:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3137,"name":"string","nodeType":"ElementaryTypeName","src":"77214:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3140,"mutability":"mutable","name":"key","nameLocation":"77252:3:0","nodeType":"VariableDeclaration","scope":3145,"src":"77236:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3139,"name":"string","nodeType":"ElementaryTypeName","src":"77236:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"77213:43:0"},"returnParameters":{"id":3144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3143,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3145,"src":"77280:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3142,"name":"bytes32","nodeType":"ElementaryTypeName","src":"77280:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"77279:9:0"},"scope":3388,"src":"77188:101:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":3146,"nodeType":"StructuredDocumentation","src":"77295:72:0","text":"Parses a string of TOML data at `key` and coerces it to `bytes32[]`."},"functionSelector":"3e716f81","id":3156,"implemented":false,"kind":"function","modifiers":[],"name":"parseTomlBytes32Array","nameLocation":"77381:21:0","nodeType":"FunctionDefinition","parameters":{"id":3151,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3148,"mutability":"mutable","name":"toml","nameLocation":"77419:4:0","nodeType":"VariableDeclaration","scope":3156,"src":"77403:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3147,"name":"string","nodeType":"ElementaryTypeName","src":"77403:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3150,"mutability":"mutable","name":"key","nameLocation":"77441:3:0","nodeType":"VariableDeclaration","scope":3156,"src":"77425:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3149,"name":"string","nodeType":"ElementaryTypeName","src":"77425:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"77402:43:0"},"returnParameters":{"id":3155,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3154,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3156,"src":"77493:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":3152,"name":"bytes32","nodeType":"ElementaryTypeName","src":"77493:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3153,"nodeType":"ArrayTypeName","src":"77493:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"77492:18:0"},"scope":3388,"src":"77372:139:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":3157,"nodeType":"StructuredDocumentation","src":"77517:70:0","text":"Parses a string of TOML data at `key` and coerces it to `bytes[]`."},"functionSelector":"b197c247","id":3167,"implemented":false,"kind":"function","modifiers":[],"name":"parseTomlBytesArray","nameLocation":"77601:19:0","nodeType":"FunctionDefinition","parameters":{"id":3162,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3159,"mutability":"mutable","name":"toml","nameLocation":"77637:4:0","nodeType":"VariableDeclaration","scope":3167,"src":"77621:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3158,"name":"string","nodeType":"ElementaryTypeName","src":"77621:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3161,"mutability":"mutable","name":"key","nameLocation":"77659:3:0","nodeType":"VariableDeclaration","scope":3167,"src":"77643:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3160,"name":"string","nodeType":"ElementaryTypeName","src":"77643:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"77620:43:0"},"returnParameters":{"id":3166,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3165,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3167,"src":"77687:14:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":3163,"name":"bytes","nodeType":"ElementaryTypeName","src":"77687:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":3164,"nodeType":"ArrayTypeName","src":"77687:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"77686:16:0"},"scope":3388,"src":"77592:111:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":3168,"nodeType":"StructuredDocumentation","src":"77709:69:0","text":"Parses a string of TOML data at `key` and coerces it to `int256`."},"functionSelector":"c1350739","id":3177,"implemented":false,"kind":"function","modifiers":[],"name":"parseTomlInt","nameLocation":"77792:12:0","nodeType":"FunctionDefinition","parameters":{"id":3173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3170,"mutability":"mutable","name":"toml","nameLocation":"77821:4:0","nodeType":"VariableDeclaration","scope":3177,"src":"77805:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3169,"name":"string","nodeType":"ElementaryTypeName","src":"77805:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3172,"mutability":"mutable","name":"key","nameLocation":"77843:3:0","nodeType":"VariableDeclaration","scope":3177,"src":"77827:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3171,"name":"string","nodeType":"ElementaryTypeName","src":"77827:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"77804:43:0"},"returnParameters":{"id":3176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3175,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3177,"src":"77871:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3174,"name":"int256","nodeType":"ElementaryTypeName","src":"77871:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"77870:8:0"},"scope":3388,"src":"77783:96:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":3178,"nodeType":"StructuredDocumentation","src":"77885:71:0","text":"Parses a string of TOML data at `key` and coerces it to `int256[]`."},"functionSelector":"d3522ae6","id":3188,"implemented":false,"kind":"function","modifiers":[],"name":"parseTomlIntArray","nameLocation":"77970:17:0","nodeType":"FunctionDefinition","parameters":{"id":3183,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3180,"mutability":"mutable","name":"toml","nameLocation":"78004:4:0","nodeType":"VariableDeclaration","scope":3188,"src":"77988:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3179,"name":"string","nodeType":"ElementaryTypeName","src":"77988:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3182,"mutability":"mutable","name":"key","nameLocation":"78026:3:0","nodeType":"VariableDeclaration","scope":3188,"src":"78010:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3181,"name":"string","nodeType":"ElementaryTypeName","src":"78010:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"77987:43:0"},"returnParameters":{"id":3187,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3186,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3188,"src":"78054:15:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":3184,"name":"int256","nodeType":"ElementaryTypeName","src":"78054:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":3185,"nodeType":"ArrayTypeName","src":"78054:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"}],"src":"78053:17:0"},"scope":3388,"src":"77961:110:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":3189,"nodeType":"StructuredDocumentation","src":"78077:53:0","text":"Returns an array of all the keys in a TOML table."},"functionSelector":"812a44b2","id":3199,"implemented":false,"kind":"function","modifiers":[],"name":"parseTomlKeys","nameLocation":"78144:13:0","nodeType":"FunctionDefinition","parameters":{"id":3194,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3191,"mutability":"mutable","name":"toml","nameLocation":"78174:4:0","nodeType":"VariableDeclaration","scope":3199,"src":"78158:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3190,"name":"string","nodeType":"ElementaryTypeName","src":"78158:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3193,"mutability":"mutable","name":"key","nameLocation":"78196:3:0","nodeType":"VariableDeclaration","scope":3199,"src":"78180:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3192,"name":"string","nodeType":"ElementaryTypeName","src":"78180:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"78157:43:0"},"returnParameters":{"id":3198,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3197,"mutability":"mutable","name":"keys","nameLocation":"78240:4:0","nodeType":"VariableDeclaration","scope":3199,"src":"78224:20:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":3195,"name":"string","nodeType":"ElementaryTypeName","src":"78224:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":3196,"nodeType":"ArrayTypeName","src":"78224:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"78223:22:0"},"scope":3388,"src":"78135:111:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":3200,"nodeType":"StructuredDocumentation","src":"78252:69:0","text":"Parses a string of TOML data at `key` and coerces it to `string`."},"functionSelector":"8bb8dd43","id":3209,"implemented":false,"kind":"function","modifiers":[],"name":"parseTomlString","nameLocation":"78335:15:0","nodeType":"FunctionDefinition","parameters":{"id":3205,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3202,"mutability":"mutable","name":"toml","nameLocation":"78367:4:0","nodeType":"VariableDeclaration","scope":3209,"src":"78351:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3201,"name":"string","nodeType":"ElementaryTypeName","src":"78351:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3204,"mutability":"mutable","name":"key","nameLocation":"78389:3:0","nodeType":"VariableDeclaration","scope":3209,"src":"78373:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3203,"name":"string","nodeType":"ElementaryTypeName","src":"78373:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"78350:43:0"},"returnParameters":{"id":3208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3207,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3209,"src":"78417:13:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3206,"name":"string","nodeType":"ElementaryTypeName","src":"78417:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"78416:15:0"},"scope":3388,"src":"78326:106:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":3210,"nodeType":"StructuredDocumentation","src":"78438:71:0","text":"Parses a string of TOML data at `key` and coerces it to `string[]`."},"functionSelector":"9f629281","id":3220,"implemented":false,"kind":"function","modifiers":[],"name":"parseTomlStringArray","nameLocation":"78523:20:0","nodeType":"FunctionDefinition","parameters":{"id":3215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3212,"mutability":"mutable","name":"toml","nameLocation":"78560:4:0","nodeType":"VariableDeclaration","scope":3220,"src":"78544:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3211,"name":"string","nodeType":"ElementaryTypeName","src":"78544:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3214,"mutability":"mutable","name":"key","nameLocation":"78582:3:0","nodeType":"VariableDeclaration","scope":3220,"src":"78566:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3213,"name":"string","nodeType":"ElementaryTypeName","src":"78566:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"78543:43:0"},"returnParameters":{"id":3219,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3218,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3220,"src":"78610:15:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":3216,"name":"string","nodeType":"ElementaryTypeName","src":"78610:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":3217,"nodeType":"ArrayTypeName","src":"78610:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"78609:17:0"},"scope":3388,"src":"78514:113:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":3221,"nodeType":"StructuredDocumentation","src":"78633:70:0","text":"Parses a string of TOML data at `key` and coerces it to `uint256`."},"functionSelector":"cc7b0487","id":3230,"implemented":false,"kind":"function","modifiers":[],"name":"parseTomlUint","nameLocation":"78717:13:0","nodeType":"FunctionDefinition","parameters":{"id":3226,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3223,"mutability":"mutable","name":"toml","nameLocation":"78747:4:0","nodeType":"VariableDeclaration","scope":3230,"src":"78731:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3222,"name":"string","nodeType":"ElementaryTypeName","src":"78731:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3225,"mutability":"mutable","name":"key","nameLocation":"78769:3:0","nodeType":"VariableDeclaration","scope":3230,"src":"78753:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3224,"name":"string","nodeType":"ElementaryTypeName","src":"78753:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"78730:43:0"},"returnParameters":{"id":3229,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3228,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3230,"src":"78797:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3227,"name":"uint256","nodeType":"ElementaryTypeName","src":"78797:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"78796:9:0"},"scope":3388,"src":"78708:98:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":3231,"nodeType":"StructuredDocumentation","src":"78812:72:0","text":"Parses a string of TOML data at `key` and coerces it to `uint256[]`."},"functionSelector":"b5df27c8","id":3241,"implemented":false,"kind":"function","modifiers":[],"name":"parseTomlUintArray","nameLocation":"78898:18:0","nodeType":"FunctionDefinition","parameters":{"id":3236,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3233,"mutability":"mutable","name":"toml","nameLocation":"78933:4:0","nodeType":"VariableDeclaration","scope":3241,"src":"78917:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3232,"name":"string","nodeType":"ElementaryTypeName","src":"78917:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3235,"mutability":"mutable","name":"key","nameLocation":"78955:3:0","nodeType":"VariableDeclaration","scope":3241,"src":"78939:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3234,"name":"string","nodeType":"ElementaryTypeName","src":"78939:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"78916:43:0"},"returnParameters":{"id":3240,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3239,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3241,"src":"78983:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":3237,"name":"uint256","nodeType":"ElementaryTypeName","src":"78983:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3238,"nodeType":"ArrayTypeName","src":"78983:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"78982:18:0"},"scope":3388,"src":"78889:112:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":3242,"nodeType":"StructuredDocumentation","src":"79007:29:0","text":"ABI-encodes a TOML table."},"functionSelector":"592151f0","id":3249,"implemented":false,"kind":"function","modifiers":[],"name":"parseToml","nameLocation":"79050:9:0","nodeType":"FunctionDefinition","parameters":{"id":3245,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3244,"mutability":"mutable","name":"toml","nameLocation":"79076:4:0","nodeType":"VariableDeclaration","scope":3249,"src":"79060:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3243,"name":"string","nodeType":"ElementaryTypeName","src":"79060:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"79059:22:0"},"returnParameters":{"id":3248,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3247,"mutability":"mutable","name":"abiEncodedData","nameLocation":"79118:14:0","nodeType":"VariableDeclaration","scope":3249,"src":"79105:27:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3246,"name":"bytes","nodeType":"ElementaryTypeName","src":"79105:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"79104:29:0"},"scope":3388,"src":"79041:93:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":3250,"nodeType":"StructuredDocumentation","src":"79140:38:0","text":"ABI-encodes a TOML table at `key`."},"functionSelector":"37736e08","id":3259,"implemented":false,"kind":"function","modifiers":[],"name":"parseToml","nameLocation":"79192:9:0","nodeType":"FunctionDefinition","parameters":{"id":3255,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3252,"mutability":"mutable","name":"toml","nameLocation":"79218:4:0","nodeType":"VariableDeclaration","scope":3259,"src":"79202:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3251,"name":"string","nodeType":"ElementaryTypeName","src":"79202:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3254,"mutability":"mutable","name":"key","nameLocation":"79240:3:0","nodeType":"VariableDeclaration","scope":3259,"src":"79224:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3253,"name":"string","nodeType":"ElementaryTypeName","src":"79224:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"79201:43:0"},"returnParameters":{"id":3258,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3257,"mutability":"mutable","name":"abiEncodedData","nameLocation":"79281:14:0","nodeType":"VariableDeclaration","scope":3259,"src":"79268:27:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3256,"name":"bytes","nodeType":"ElementaryTypeName","src":"79268:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"79267:29:0"},"scope":3388,"src":"79183:114:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":3260,"nodeType":"StructuredDocumentation","src":"79303:82:0","text":"Takes serialized JSON, converts to TOML and write a serialized TOML to a file."},"functionSelector":"c0865ba7","id":3267,"implemented":false,"kind":"function","modifiers":[],"name":"writeToml","nameLocation":"79399:9:0","nodeType":"FunctionDefinition","parameters":{"id":3265,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3262,"mutability":"mutable","name":"json","nameLocation":"79425:4:0","nodeType":"VariableDeclaration","scope":3267,"src":"79409:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3261,"name":"string","nodeType":"ElementaryTypeName","src":"79409:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3264,"mutability":"mutable","name":"path","nameLocation":"79447:4:0","nodeType":"VariableDeclaration","scope":3267,"src":"79431:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3263,"name":"string","nodeType":"ElementaryTypeName","src":"79431:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"79408:44:0"},"returnParameters":{"id":3266,"nodeType":"ParameterList","parameters":[],"src":"79461:0:0"},"scope":3388,"src":"79390:72:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3268,"nodeType":"StructuredDocumentation","src":"79468:258:0","text":"Takes serialized JSON, converts to TOML and write a serialized TOML table to an **existing** TOML file, replacing a value with key = \n This is useful to replace a specific value of a TOML file, without having to parse the entire thing."},"functionSelector":"51ac6a33","id":3277,"implemented":false,"kind":"function","modifiers":[],"name":"writeToml","nameLocation":"79740:9:0","nodeType":"FunctionDefinition","parameters":{"id":3275,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3270,"mutability":"mutable","name":"json","nameLocation":"79766:4:0","nodeType":"VariableDeclaration","scope":3277,"src":"79750:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3269,"name":"string","nodeType":"ElementaryTypeName","src":"79750:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3272,"mutability":"mutable","name":"path","nameLocation":"79788:4:0","nodeType":"VariableDeclaration","scope":3277,"src":"79772:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3271,"name":"string","nodeType":"ElementaryTypeName","src":"79772:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3274,"mutability":"mutable","name":"valueKey","nameLocation":"79810:8:0","nodeType":"VariableDeclaration","scope":3277,"src":"79794:24:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3273,"name":"string","nodeType":"ElementaryTypeName","src":"79794:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"79749:70:0"},"returnParameters":{"id":3276,"nodeType":"ParameterList","parameters":[],"src":"79828:0:0"},"scope":3388,"src":"79731:98:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3278,"nodeType":"StructuredDocumentation","src":"79871:92:0","text":"Compute the address of a contract created with CREATE2 using the given CREATE2 deployer."},"functionSelector":"d323826a","id":3289,"implemented":false,"kind":"function","modifiers":[],"name":"computeCreate2Address","nameLocation":"79977:21:0","nodeType":"FunctionDefinition","parameters":{"id":3285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3280,"mutability":"mutable","name":"salt","nameLocation":"80007:4:0","nodeType":"VariableDeclaration","scope":3289,"src":"79999:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3279,"name":"bytes32","nodeType":"ElementaryTypeName","src":"79999:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3282,"mutability":"mutable","name":"initCodeHash","nameLocation":"80021:12:0","nodeType":"VariableDeclaration","scope":3289,"src":"80013:20:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3281,"name":"bytes32","nodeType":"ElementaryTypeName","src":"80013:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3284,"mutability":"mutable","name":"deployer","nameLocation":"80043:8:0","nodeType":"VariableDeclaration","scope":3289,"src":"80035:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3283,"name":"address","nodeType":"ElementaryTypeName","src":"80035:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"79998:54:0"},"returnParameters":{"id":3288,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3287,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3289,"src":"80100:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3286,"name":"address","nodeType":"ElementaryTypeName","src":"80100:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"80099:9:0"},"scope":3388,"src":"79968:141:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":3290,"nodeType":"StructuredDocumentation","src":"80115:94:0","text":"Compute the address of a contract created with CREATE2 using the default CREATE2 deployer."},"functionSelector":"890c283b","id":3299,"implemented":false,"kind":"function","modifiers":[],"name":"computeCreate2Address","nameLocation":"80223:21:0","nodeType":"FunctionDefinition","parameters":{"id":3295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3292,"mutability":"mutable","name":"salt","nameLocation":"80253:4:0","nodeType":"VariableDeclaration","scope":3299,"src":"80245:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3291,"name":"bytes32","nodeType":"ElementaryTypeName","src":"80245:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3294,"mutability":"mutable","name":"initCodeHash","nameLocation":"80267:12:0","nodeType":"VariableDeclaration","scope":3299,"src":"80259:20:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3293,"name":"bytes32","nodeType":"ElementaryTypeName","src":"80259:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"80244:36:0"},"returnParameters":{"id":3298,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3297,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3299,"src":"80304:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3296,"name":"address","nodeType":"ElementaryTypeName","src":"80304:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"80303:9:0"},"scope":3388,"src":"80214:99:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":3300,"nodeType":"StructuredDocumentation","src":"80319:94:0","text":"Compute the address a contract will be deployed at for a given deployer address and nonce."},"functionSelector":"74637a7a","id":3309,"implemented":false,"kind":"function","modifiers":[],"name":"computeCreateAddress","nameLocation":"80427:20:0","nodeType":"FunctionDefinition","parameters":{"id":3305,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3302,"mutability":"mutable","name":"deployer","nameLocation":"80456:8:0","nodeType":"VariableDeclaration","scope":3309,"src":"80448:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3301,"name":"address","nodeType":"ElementaryTypeName","src":"80448:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3304,"mutability":"mutable","name":"nonce","nameLocation":"80474:5:0","nodeType":"VariableDeclaration","scope":3309,"src":"80466:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3303,"name":"uint256","nodeType":"ElementaryTypeName","src":"80466:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"80447:33:0"},"returnParameters":{"id":3308,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3307,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3309,"src":"80504:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3306,"name":"address","nodeType":"ElementaryTypeName","src":"80504:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"80503:9:0"},"scope":3388,"src":"80418:95:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":3310,"nodeType":"StructuredDocumentation","src":"80519:45:0","text":"Returns ENS namehash for provided string."},"functionSelector":"8c374c65","id":3317,"implemented":false,"kind":"function","modifiers":[],"name":"ensNamehash","nameLocation":"80578:11:0","nodeType":"FunctionDefinition","parameters":{"id":3313,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3312,"mutability":"mutable","name":"name","nameLocation":"80606:4:0","nodeType":"VariableDeclaration","scope":3317,"src":"80590:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3311,"name":"string","nodeType":"ElementaryTypeName","src":"80590:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"80589:22:0"},"returnParameters":{"id":3316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3315,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3317,"src":"80635:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3314,"name":"bytes32","nodeType":"ElementaryTypeName","src":"80635:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"80634:9:0"},"scope":3388,"src":"80569:75:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":3318,"nodeType":"StructuredDocumentation","src":"80650:45:0","text":"Gets the label for the specified address."},"functionSelector":"28a249b0","id":3325,"implemented":false,"kind":"function","modifiers":[],"name":"getLabel","nameLocation":"80709:8:0","nodeType":"FunctionDefinition","parameters":{"id":3321,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3320,"mutability":"mutable","name":"account","nameLocation":"80726:7:0","nodeType":"VariableDeclaration","scope":3325,"src":"80718:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3319,"name":"address","nodeType":"ElementaryTypeName","src":"80718:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"80717:17:0"},"returnParameters":{"id":3324,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3323,"mutability":"mutable","name":"currentLabel","nameLocation":"80772:12:0","nodeType":"VariableDeclaration","scope":3325,"src":"80758:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3322,"name":"string","nodeType":"ElementaryTypeName","src":"80758:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"80757:28:0"},"scope":3388,"src":"80700:86:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":3326,"nodeType":"StructuredDocumentation","src":"80792:37:0","text":"Labels an address in call traces."},"functionSelector":"c657c718","id":3333,"implemented":false,"kind":"function","modifiers":[],"name":"label","nameLocation":"80843:5:0","nodeType":"FunctionDefinition","parameters":{"id":3331,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3328,"mutability":"mutable","name":"account","nameLocation":"80857:7:0","nodeType":"VariableDeclaration","scope":3333,"src":"80849:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3327,"name":"address","nodeType":"ElementaryTypeName","src":"80849:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3330,"mutability":"mutable","name":"newLabel","nameLocation":"80882:8:0","nodeType":"VariableDeclaration","scope":3333,"src":"80866:24:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3329,"name":"string","nodeType":"ElementaryTypeName","src":"80866:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"80848:43:0"},"returnParameters":{"id":3332,"nodeType":"ParameterList","parameters":[],"src":"80900:0:0"},"scope":3388,"src":"80834:67:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3334,"nodeType":"StructuredDocumentation","src":"80907:31:0","text":"Returns a random `address`."},"functionSelector":"d5bee9f5","id":3339,"implemented":false,"kind":"function","modifiers":[],"name":"randomAddress","nameLocation":"80952:13:0","nodeType":"FunctionDefinition","parameters":{"id":3335,"nodeType":"ParameterList","parameters":[],"src":"80965:2:0"},"returnParameters":{"id":3338,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3337,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3339,"src":"80986:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3336,"name":"address","nodeType":"ElementaryTypeName","src":"80986:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"80985:9:0"},"scope":3388,"src":"80943:52:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3340,"nodeType":"StructuredDocumentation","src":"81001:35:0","text":"Returns a random uint256 value."},"functionSelector":"25124730","id":3345,"implemented":false,"kind":"function","modifiers":[],"name":"randomUint","nameLocation":"81050:10:0","nodeType":"FunctionDefinition","parameters":{"id":3341,"nodeType":"ParameterList","parameters":[],"src":"81060:2:0"},"returnParameters":{"id":3344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3343,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3345,"src":"81081:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3342,"name":"uint256","nodeType":"ElementaryTypeName","src":"81081:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"81080:9:0"},"scope":3388,"src":"81041:49:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3346,"nodeType":"StructuredDocumentation","src":"81096:72:0","text":"Returns random uin256 value between the provided range (=min..=max)."},"functionSelector":"d61b051b","id":3355,"implemented":false,"kind":"function","modifiers":[],"name":"randomUint","nameLocation":"81182:10:0","nodeType":"FunctionDefinition","parameters":{"id":3351,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3348,"mutability":"mutable","name":"min","nameLocation":"81201:3:0","nodeType":"VariableDeclaration","scope":3355,"src":"81193:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3347,"name":"uint256","nodeType":"ElementaryTypeName","src":"81193:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3350,"mutability":"mutable","name":"max","nameLocation":"81214:3:0","nodeType":"VariableDeclaration","scope":3355,"src":"81206:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3349,"name":"uint256","nodeType":"ElementaryTypeName","src":"81206:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"81192:26:0"},"returnParameters":{"id":3354,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3353,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3355,"src":"81237:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3352,"name":"uint256","nodeType":"ElementaryTypeName","src":"81237:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"81236:9:0"},"scope":3388,"src":"81173:73:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3356,"nodeType":"StructuredDocumentation","src":"81252:50:0","text":"Encodes a `bytes` value to a base64url string."},"functionSelector":"c8bd0e4a","id":3363,"implemented":false,"kind":"function","modifiers":[],"name":"toBase64URL","nameLocation":"81316:11:0","nodeType":"FunctionDefinition","parameters":{"id":3359,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3358,"mutability":"mutable","name":"data","nameLocation":"81343:4:0","nodeType":"VariableDeclaration","scope":3363,"src":"81328:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3357,"name":"bytes","nodeType":"ElementaryTypeName","src":"81328:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"81327:21:0"},"returnParameters":{"id":3362,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3361,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3363,"src":"81372:13:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3360,"name":"string","nodeType":"ElementaryTypeName","src":"81372:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"81371:15:0"},"scope":3388,"src":"81307:80:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":3364,"nodeType":"StructuredDocumentation","src":"81393:51:0","text":"Encodes a `string` value to a base64url string."},"functionSelector":"ae3165b3","id":3371,"implemented":false,"kind":"function","modifiers":[],"name":"toBase64URL","nameLocation":"81458:11:0","nodeType":"FunctionDefinition","parameters":{"id":3367,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3366,"mutability":"mutable","name":"data","nameLocation":"81486:4:0","nodeType":"VariableDeclaration","scope":3371,"src":"81470:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3365,"name":"string","nodeType":"ElementaryTypeName","src":"81470:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"81469:22:0"},"returnParameters":{"id":3370,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3369,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3371,"src":"81515:13:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3368,"name":"string","nodeType":"ElementaryTypeName","src":"81515:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"81514:15:0"},"scope":3388,"src":"81449:81:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":3372,"nodeType":"StructuredDocumentation","src":"81536:47:0","text":"Encodes a `bytes` value to a base64 string."},"functionSelector":"a5cbfe65","id":3379,"implemented":false,"kind":"function","modifiers":[],"name":"toBase64","nameLocation":"81597:8:0","nodeType":"FunctionDefinition","parameters":{"id":3375,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3374,"mutability":"mutable","name":"data","nameLocation":"81621:4:0","nodeType":"VariableDeclaration","scope":3379,"src":"81606:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3373,"name":"bytes","nodeType":"ElementaryTypeName","src":"81606:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"81605:21:0"},"returnParameters":{"id":3378,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3377,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3379,"src":"81650:13:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3376,"name":"string","nodeType":"ElementaryTypeName","src":"81650:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"81649:15:0"},"scope":3388,"src":"81588:77:0","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":3380,"nodeType":"StructuredDocumentation","src":"81671:48:0","text":"Encodes a `string` value to a base64 string."},"functionSelector":"3f8be2c8","id":3387,"implemented":false,"kind":"function","modifiers":[],"name":"toBase64","nameLocation":"81733:8:0","nodeType":"FunctionDefinition","parameters":{"id":3383,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3382,"mutability":"mutable","name":"data","nameLocation":"81758:4:0","nodeType":"VariableDeclaration","scope":3387,"src":"81742:20:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3381,"name":"string","nodeType":"ElementaryTypeName","src":"81742:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"81741:22:0"},"returnParameters":{"id":3386,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3385,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3387,"src":"81787:13:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3384,"name":"string","nodeType":"ElementaryTypeName","src":"81787:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"81786:15:0"},"scope":3388,"src":"81724:78:0","stateMutability":"pure","virtual":false,"visibility":"external"}],"scope":20815,"src":"447:81357:0","usedErrors":[],"usedEvents":[]},{"abstract":false,"baseContracts":[{"baseName":{"id":3390,"name":"VmSafe","nameLocations":["81993:6:0"],"nodeType":"IdentifierPath","referencedDeclaration":3388,"src":"81993:6:0"},"id":3391,"nodeType":"InheritanceSpecifier","src":"81993:6:0"}],"canonicalName":"Vm","contractDependencies":[],"contractKind":"interface","documentation":{"id":3389,"nodeType":"StructuredDocumentation","src":"81806:171:0","text":"The `Vm` interface does allow manipulation of the EVM state. These are all intended to be used\n in tests, but it is not recommended to use these cheats in scripts."},"fullyImplemented":false,"id":4037,"linearizedBaseContracts":[4037,3388],"name":"Vm","nameLocation":"81987:2:0","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":3392,"nodeType":"StructuredDocumentation","src":"82036:96:0","text":"Returns the identifier of the currently active fork. Reverts if no fork is currently active."},"functionSelector":"2f103f22","id":3397,"implemented":false,"kind":"function","modifiers":[],"name":"activeFork","nameLocation":"82146:10:0","nodeType":"FunctionDefinition","parameters":{"id":3393,"nodeType":"ParameterList","parameters":[],"src":"82156:2:0"},"returnParameters":{"id":3396,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3395,"mutability":"mutable","name":"forkId","nameLocation":"82190:6:0","nodeType":"VariableDeclaration","scope":3397,"src":"82182:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3394,"name":"uint256","nodeType":"ElementaryTypeName","src":"82182:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"82181:16:0"},"scope":4037,"src":"82137:61:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":3398,"nodeType":"StructuredDocumentation","src":"82204:73:0","text":"In forking mode, explicitly grant the given address cheatcode access."},"functionSelector":"ea060291","id":3403,"implemented":false,"kind":"function","modifiers":[],"name":"allowCheatcodes","nameLocation":"82291:15:0","nodeType":"FunctionDefinition","parameters":{"id":3401,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3400,"mutability":"mutable","name":"account","nameLocation":"82315:7:0","nodeType":"VariableDeclaration","scope":3403,"src":"82307:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3399,"name":"address","nodeType":"ElementaryTypeName","src":"82307:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"82306:17:0"},"returnParameters":{"id":3402,"nodeType":"ParameterList","parameters":[],"src":"82332:0:0"},"scope":4037,"src":"82282:51:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3404,"nodeType":"StructuredDocumentation","src":"82339:28:0","text":"Sets `block.blobbasefee`"},"functionSelector":"6d315d7e","id":3409,"implemented":false,"kind":"function","modifiers":[],"name":"blobBaseFee","nameLocation":"82381:11:0","nodeType":"FunctionDefinition","parameters":{"id":3407,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3406,"mutability":"mutable","name":"newBlobBaseFee","nameLocation":"82401:14:0","nodeType":"VariableDeclaration","scope":3409,"src":"82393:22:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3405,"name":"uint256","nodeType":"ElementaryTypeName","src":"82393:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"82392:24:0"},"returnParameters":{"id":3408,"nodeType":"ParameterList","parameters":[],"src":"82425:0:0"},"scope":4037,"src":"82372:54:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3410,"nodeType":"StructuredDocumentation","src":"82432:156:0","text":"Sets the blobhashes in the transaction.\n Not available on EVM versions before Cancun.\n If used on unsupported EVM versions it will revert."},"functionSelector":"129de7eb","id":3416,"implemented":false,"kind":"function","modifiers":[],"name":"blobhashes","nameLocation":"82602:10:0","nodeType":"FunctionDefinition","parameters":{"id":3414,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3413,"mutability":"mutable","name":"hashes","nameLocation":"82632:6:0","nodeType":"VariableDeclaration","scope":3416,"src":"82613:25:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":3411,"name":"bytes32","nodeType":"ElementaryTypeName","src":"82613:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3412,"nodeType":"ArrayTypeName","src":"82613:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"82612:27:0"},"returnParameters":{"id":3415,"nodeType":"ParameterList","parameters":[],"src":"82648:0:0"},"scope":4037,"src":"82593:56:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3417,"nodeType":"StructuredDocumentation","src":"82655:25:0","text":"Sets `block.chainid`."},"functionSelector":"4049ddd2","id":3422,"implemented":false,"kind":"function","modifiers":[],"name":"chainId","nameLocation":"82694:7:0","nodeType":"FunctionDefinition","parameters":{"id":3420,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3419,"mutability":"mutable","name":"newChainId","nameLocation":"82710:10:0","nodeType":"VariableDeclaration","scope":3422,"src":"82702:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3418,"name":"uint256","nodeType":"ElementaryTypeName","src":"82702:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"82701:20:0"},"returnParameters":{"id":3421,"nodeType":"ParameterList","parameters":[],"src":"82730:0:0"},"scope":4037,"src":"82685:46:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3423,"nodeType":"StructuredDocumentation","src":"82737:28:0","text":"Clears all mocked calls."},"functionSelector":"3fdf4e15","id":3426,"implemented":false,"kind":"function","modifiers":[],"name":"clearMockedCalls","nameLocation":"82779:16:0","nodeType":"FunctionDefinition","parameters":{"id":3424,"nodeType":"ParameterList","parameters":[],"src":"82795:2:0"},"returnParameters":{"id":3425,"nodeType":"ParameterList","parameters":[],"src":"82806:0:0"},"scope":4037,"src":"82770:37:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3427,"nodeType":"StructuredDocumentation","src":"82813:26:0","text":"Sets `block.coinbase`."},"functionSelector":"ff483c54","id":3432,"implemented":false,"kind":"function","modifiers":[],"name":"coinbase","nameLocation":"82853:8:0","nodeType":"FunctionDefinition","parameters":{"id":3430,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3429,"mutability":"mutable","name":"newCoinbase","nameLocation":"82870:11:0","nodeType":"VariableDeclaration","scope":3432,"src":"82862:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3428,"name":"address","nodeType":"ElementaryTypeName","src":"82862:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"82861:21:0"},"returnParameters":{"id":3431,"nodeType":"ParameterList","parameters":[],"src":"82891:0:0"},"scope":4037,"src":"82844:48:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3433,"nodeType":"StructuredDocumentation","src":"82898:109:0","text":"Creates a new fork with the given endpoint and the _latest_ block and returns the identifier of the fork."},"functionSelector":"31ba3498","id":3440,"implemented":false,"kind":"function","modifiers":[],"name":"createFork","nameLocation":"83021:10:0","nodeType":"FunctionDefinition","parameters":{"id":3436,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3435,"mutability":"mutable","name":"urlOrAlias","nameLocation":"83048:10:0","nodeType":"VariableDeclaration","scope":3440,"src":"83032:26:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3434,"name":"string","nodeType":"ElementaryTypeName","src":"83032:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"83031:28:0"},"returnParameters":{"id":3439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3438,"mutability":"mutable","name":"forkId","nameLocation":"83086:6:0","nodeType":"VariableDeclaration","scope":3440,"src":"83078:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3437,"name":"uint256","nodeType":"ElementaryTypeName","src":"83078:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"83077:16:0"},"scope":4037,"src":"83012:82:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3441,"nodeType":"StructuredDocumentation","src":"83100:96:0","text":"Creates a new fork with the given endpoint and block and returns the identifier of the fork."},"functionSelector":"6ba3ba2b","id":3450,"implemented":false,"kind":"function","modifiers":[],"name":"createFork","nameLocation":"83210:10:0","nodeType":"FunctionDefinition","parameters":{"id":3446,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3443,"mutability":"mutable","name":"urlOrAlias","nameLocation":"83237:10:0","nodeType":"VariableDeclaration","scope":3450,"src":"83221:26:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3442,"name":"string","nodeType":"ElementaryTypeName","src":"83221:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3445,"mutability":"mutable","name":"blockNumber","nameLocation":"83257:11:0","nodeType":"VariableDeclaration","scope":3450,"src":"83249:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3444,"name":"uint256","nodeType":"ElementaryTypeName","src":"83249:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"83220:49:0"},"returnParameters":{"id":3449,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3448,"mutability":"mutable","name":"forkId","nameLocation":"83296:6:0","nodeType":"VariableDeclaration","scope":3450,"src":"83288:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3447,"name":"uint256","nodeType":"ElementaryTypeName","src":"83288:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"83287:16:0"},"scope":4037,"src":"83201:103:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3451,"nodeType":"StructuredDocumentation","src":"83310:214:0","text":"Creates a new fork with the given endpoint and at the block the given transaction was mined in,\n replays all transaction mined in the block before the transaction, and returns the identifier of the fork."},"functionSelector":"7ca29682","id":3460,"implemented":false,"kind":"function","modifiers":[],"name":"createFork","nameLocation":"83538:10:0","nodeType":"FunctionDefinition","parameters":{"id":3456,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3453,"mutability":"mutable","name":"urlOrAlias","nameLocation":"83565:10:0","nodeType":"VariableDeclaration","scope":3460,"src":"83549:26:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3452,"name":"string","nodeType":"ElementaryTypeName","src":"83549:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3455,"mutability":"mutable","name":"txHash","nameLocation":"83585:6:0","nodeType":"VariableDeclaration","scope":3460,"src":"83577:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3454,"name":"bytes32","nodeType":"ElementaryTypeName","src":"83577:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"83548:44:0"},"returnParameters":{"id":3459,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3458,"mutability":"mutable","name":"forkId","nameLocation":"83619:6:0","nodeType":"VariableDeclaration","scope":3460,"src":"83611:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3457,"name":"uint256","nodeType":"ElementaryTypeName","src":"83611:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"83610:16:0"},"scope":4037,"src":"83529:98:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3461,"nodeType":"StructuredDocumentation","src":"83633:124:0","text":"Creates and also selects a new fork with the given endpoint and the latest block and returns the identifier of the fork."},"functionSelector":"98680034","id":3468,"implemented":false,"kind":"function","modifiers":[],"name":"createSelectFork","nameLocation":"83771:16:0","nodeType":"FunctionDefinition","parameters":{"id":3464,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3463,"mutability":"mutable","name":"urlOrAlias","nameLocation":"83804:10:0","nodeType":"VariableDeclaration","scope":3468,"src":"83788:26:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3462,"name":"string","nodeType":"ElementaryTypeName","src":"83788:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"83787:28:0"},"returnParameters":{"id":3467,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3466,"mutability":"mutable","name":"forkId","nameLocation":"83842:6:0","nodeType":"VariableDeclaration","scope":3468,"src":"83834:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3465,"name":"uint256","nodeType":"ElementaryTypeName","src":"83834:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"83833:16:0"},"scope":4037,"src":"83762:88:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3469,"nodeType":"StructuredDocumentation","src":"83856:113:0","text":"Creates and also selects a new fork with the given endpoint and block and returns the identifier of the fork."},"functionSelector":"71ee464d","id":3478,"implemented":false,"kind":"function","modifiers":[],"name":"createSelectFork","nameLocation":"83983:16:0","nodeType":"FunctionDefinition","parameters":{"id":3474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3471,"mutability":"mutable","name":"urlOrAlias","nameLocation":"84016:10:0","nodeType":"VariableDeclaration","scope":3478,"src":"84000:26:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3470,"name":"string","nodeType":"ElementaryTypeName","src":"84000:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3473,"mutability":"mutable","name":"blockNumber","nameLocation":"84036:11:0","nodeType":"VariableDeclaration","scope":3478,"src":"84028:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3472,"name":"uint256","nodeType":"ElementaryTypeName","src":"84028:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"83999:49:0"},"returnParameters":{"id":3477,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3476,"mutability":"mutable","name":"forkId","nameLocation":"84075:6:0","nodeType":"VariableDeclaration","scope":3478,"src":"84067:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3475,"name":"uint256","nodeType":"ElementaryTypeName","src":"84067:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"84066:16:0"},"scope":4037,"src":"83974:109:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3479,"nodeType":"StructuredDocumentation","src":"84089:225:0","text":"Creates and also selects new fork with the given endpoint and at the block the given transaction was mined in,\n replays all transaction mined in the block before the transaction, returns the identifier of the fork."},"functionSelector":"84d52b7a","id":3488,"implemented":false,"kind":"function","modifiers":[],"name":"createSelectFork","nameLocation":"84328:16:0","nodeType":"FunctionDefinition","parameters":{"id":3484,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3481,"mutability":"mutable","name":"urlOrAlias","nameLocation":"84361:10:0","nodeType":"VariableDeclaration","scope":3488,"src":"84345:26:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3480,"name":"string","nodeType":"ElementaryTypeName","src":"84345:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3483,"mutability":"mutable","name":"txHash","nameLocation":"84381:6:0","nodeType":"VariableDeclaration","scope":3488,"src":"84373:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3482,"name":"bytes32","nodeType":"ElementaryTypeName","src":"84373:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"84344:44:0"},"returnParameters":{"id":3487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3486,"mutability":"mutable","name":"forkId","nameLocation":"84415:6:0","nodeType":"VariableDeclaration","scope":3488,"src":"84407:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3485,"name":"uint256","nodeType":"ElementaryTypeName","src":"84407:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"84406:16:0"},"scope":4037,"src":"84319:104:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3489,"nodeType":"StructuredDocumentation","src":"84429:29:0","text":"Sets an address' balance."},"functionSelector":"c88a5e6d","id":3496,"implemented":false,"kind":"function","modifiers":[],"name":"deal","nameLocation":"84472:4:0","nodeType":"FunctionDefinition","parameters":{"id":3494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3491,"mutability":"mutable","name":"account","nameLocation":"84485:7:0","nodeType":"VariableDeclaration","scope":3496,"src":"84477:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3490,"name":"address","nodeType":"ElementaryTypeName","src":"84477:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3493,"mutability":"mutable","name":"newBalance","nameLocation":"84502:10:0","nodeType":"VariableDeclaration","scope":3496,"src":"84494:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3492,"name":"uint256","nodeType":"ElementaryTypeName","src":"84494:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"84476:37:0"},"returnParameters":{"id":3495,"nodeType":"ParameterList","parameters":[],"src":"84522:0:0"},"scope":4037,"src":"84463:60:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3497,"nodeType":"StructuredDocumentation","src":"84529:227:0","text":"Removes the snapshot with the given ID created by `snapshot`.\n Takes the snapshot ID to delete.\n Returns `true` if the snapshot was successfully deleted.\n Returns `false` if the snapshot does not exist."},"functionSelector":"a6368557","id":3504,"implemented":false,"kind":"function","modifiers":[],"name":"deleteSnapshot","nameLocation":"84770:14:0","nodeType":"FunctionDefinition","parameters":{"id":3500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3499,"mutability":"mutable","name":"snapshotId","nameLocation":"84793:10:0","nodeType":"VariableDeclaration","scope":3504,"src":"84785:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3498,"name":"uint256","nodeType":"ElementaryTypeName","src":"84785:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"84784:20:0"},"returnParameters":{"id":3503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3502,"mutability":"mutable","name":"success","nameLocation":"84828:7:0","nodeType":"VariableDeclaration","scope":3504,"src":"84823:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3501,"name":"bool","nodeType":"ElementaryTypeName","src":"84823:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"84822:14:0"},"scope":4037,"src":"84761:76:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3505,"nodeType":"StructuredDocumentation","src":"84843:61:0","text":"Removes _all_ snapshots previously created by `snapshot`."},"functionSelector":"421ae469","id":3508,"implemented":false,"kind":"function","modifiers":[],"name":"deleteSnapshots","nameLocation":"84918:15:0","nodeType":"FunctionDefinition","parameters":{"id":3506,"nodeType":"ParameterList","parameters":[],"src":"84933:2:0"},"returnParameters":{"id":3507,"nodeType":"ParameterList","parameters":[],"src":"84944:0:0"},"scope":4037,"src":"84909:36:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3509,"nodeType":"StructuredDocumentation","src":"84951:165:0","text":"Sets `block.difficulty`.\n Not available on EVM versions from Paris onwards. Use `prevrandao` instead.\n Reverts if used on unsupported EVM versions."},"functionSelector":"46cc92d9","id":3514,"implemented":false,"kind":"function","modifiers":[],"name":"difficulty","nameLocation":"85130:10:0","nodeType":"FunctionDefinition","parameters":{"id":3512,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3511,"mutability":"mutable","name":"newDifficulty","nameLocation":"85149:13:0","nodeType":"VariableDeclaration","scope":3514,"src":"85141:21:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3510,"name":"uint256","nodeType":"ElementaryTypeName","src":"85141:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"85140:23:0"},"returnParameters":{"id":3513,"nodeType":"ParameterList","parameters":[],"src":"85172:0:0"},"scope":4037,"src":"85121:52:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3515,"nodeType":"StructuredDocumentation","src":"85179:48:0","text":"Dump a genesis JSON file's `allocs` to disk."},"functionSelector":"709ecd3f","id":3520,"implemented":false,"kind":"function","modifiers":[],"name":"dumpState","nameLocation":"85241:9:0","nodeType":"FunctionDefinition","parameters":{"id":3518,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3517,"mutability":"mutable","name":"pathToStateJson","nameLocation":"85267:15:0","nodeType":"VariableDeclaration","scope":3520,"src":"85251:31:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3516,"name":"string","nodeType":"ElementaryTypeName","src":"85251:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"85250:33:0"},"returnParameters":{"id":3519,"nodeType":"ParameterList","parameters":[],"src":"85292:0:0"},"scope":4037,"src":"85232:61:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3521,"nodeType":"StructuredDocumentation","src":"85299:26:0","text":"Sets an address' code."},"functionSelector":"b4d6c782","id":3528,"implemented":false,"kind":"function","modifiers":[],"name":"etch","nameLocation":"85339:4:0","nodeType":"FunctionDefinition","parameters":{"id":3526,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3523,"mutability":"mutable","name":"target","nameLocation":"85352:6:0","nodeType":"VariableDeclaration","scope":3528,"src":"85344:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3522,"name":"address","nodeType":"ElementaryTypeName","src":"85344:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3525,"mutability":"mutable","name":"newRuntimeBytecode","nameLocation":"85375:18:0","nodeType":"VariableDeclaration","scope":3528,"src":"85360:33:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3524,"name":"bytes","nodeType":"ElementaryTypeName","src":"85360:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"85343:51:0"},"returnParameters":{"id":3527,"nodeType":"ParameterList","parameters":[],"src":"85403:0:0"},"scope":4037,"src":"85330:74:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3529,"nodeType":"StructuredDocumentation","src":"85410:25:0","text":"Sets `block.basefee`."},"functionSelector":"39b37ab0","id":3534,"implemented":false,"kind":"function","modifiers":[],"name":"fee","nameLocation":"85449:3:0","nodeType":"FunctionDefinition","parameters":{"id":3532,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3531,"mutability":"mutable","name":"newBasefee","nameLocation":"85461:10:0","nodeType":"VariableDeclaration","scope":3534,"src":"85453:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3530,"name":"uint256","nodeType":"ElementaryTypeName","src":"85453:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"85452:20:0"},"returnParameters":{"id":3533,"nodeType":"ParameterList","parameters":[],"src":"85481:0:0"},"scope":4037,"src":"85440:42:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3535,"nodeType":"StructuredDocumentation","src":"85488:167:0","text":"Gets the blockhashes from the current transaction.\n Not available on EVM versions before Cancun.\n If used on unsupported EVM versions it will revert."},"functionSelector":"f56ff18b","id":3541,"implemented":false,"kind":"function","modifiers":[],"name":"getBlobhashes","nameLocation":"85669:13:0","nodeType":"FunctionDefinition","parameters":{"id":3536,"nodeType":"ParameterList","parameters":[],"src":"85682:2:0"},"returnParameters":{"id":3540,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3539,"mutability":"mutable","name":"hashes","nameLocation":"85725:6:0","nodeType":"VariableDeclaration","scope":3541,"src":"85708:23:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":3537,"name":"bytes32","nodeType":"ElementaryTypeName","src":"85708:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3538,"nodeType":"ArrayTypeName","src":"85708:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"85707:25:0"},"scope":4037,"src":"85660:73:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":3542,"nodeType":"StructuredDocumentation","src":"85739:56:0","text":"Returns true if the account is marked as persistent."},"functionSelector":"d92d8efd","id":3549,"implemented":false,"kind":"function","modifiers":[],"name":"isPersistent","nameLocation":"85809:12:0","nodeType":"FunctionDefinition","parameters":{"id":3545,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3544,"mutability":"mutable","name":"account","nameLocation":"85830:7:0","nodeType":"VariableDeclaration","scope":3549,"src":"85822:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3543,"name":"address","nodeType":"ElementaryTypeName","src":"85822:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"85821:17:0"},"returnParameters":{"id":3548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3547,"mutability":"mutable","name":"persistent","nameLocation":"85867:10:0","nodeType":"VariableDeclaration","scope":3549,"src":"85862:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3546,"name":"bool","nodeType":"ElementaryTypeName","src":"85862:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"85861:17:0"},"scope":4037,"src":"85800:79:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":3550,"nodeType":"StructuredDocumentation","src":"85885:70:0","text":"Load a genesis JSON file's `allocs` into the in-memory revm state."},"functionSelector":"b3a056d7","id":3555,"implemented":false,"kind":"function","modifiers":[],"name":"loadAllocs","nameLocation":"85969:10:0","nodeType":"FunctionDefinition","parameters":{"id":3553,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3552,"mutability":"mutable","name":"pathToAllocsJson","nameLocation":"85996:16:0","nodeType":"VariableDeclaration","scope":3555,"src":"85980:32:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3551,"name":"string","nodeType":"ElementaryTypeName","src":"85980:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"85979:34:0"},"returnParameters":{"id":3554,"nodeType":"ParameterList","parameters":[],"src":"86022:0:0"},"scope":4037,"src":"85960:63:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3556,"nodeType":"StructuredDocumentation","src":"86029:192:0","text":"Marks that the account(s) should use persistent storage across fork swaps in a multifork setup\n Meaning, changes made to the state of this account will be kept when switching forks."},"functionSelector":"57e22dde","id":3561,"implemented":false,"kind":"function","modifiers":[],"name":"makePersistent","nameLocation":"86235:14:0","nodeType":"FunctionDefinition","parameters":{"id":3559,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3558,"mutability":"mutable","name":"account","nameLocation":"86258:7:0","nodeType":"VariableDeclaration","scope":3561,"src":"86250:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3557,"name":"address","nodeType":"ElementaryTypeName","src":"86250:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"86249:17:0"},"returnParameters":{"id":3560,"nodeType":"ParameterList","parameters":[],"src":"86275:0:0"},"scope":4037,"src":"86226:50:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3562,"nodeType":"StructuredDocumentation","src":"86282:34:0","text":"See `makePersistent(address)`."},"functionSelector":"4074e0a8","id":3569,"implemented":false,"kind":"function","modifiers":[],"name":"makePersistent","nameLocation":"86330:14:0","nodeType":"FunctionDefinition","parameters":{"id":3567,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3564,"mutability":"mutable","name":"account0","nameLocation":"86353:8:0","nodeType":"VariableDeclaration","scope":3569,"src":"86345:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3563,"name":"address","nodeType":"ElementaryTypeName","src":"86345:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3566,"mutability":"mutable","name":"account1","nameLocation":"86371:8:0","nodeType":"VariableDeclaration","scope":3569,"src":"86363:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3565,"name":"address","nodeType":"ElementaryTypeName","src":"86363:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"86344:36:0"},"returnParameters":{"id":3568,"nodeType":"ParameterList","parameters":[],"src":"86389:0:0"},"scope":4037,"src":"86321:69:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3570,"nodeType":"StructuredDocumentation","src":"86396:34:0","text":"See `makePersistent(address)`."},"functionSelector":"efb77a75","id":3579,"implemented":false,"kind":"function","modifiers":[],"name":"makePersistent","nameLocation":"86444:14:0","nodeType":"FunctionDefinition","parameters":{"id":3577,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3572,"mutability":"mutable","name":"account0","nameLocation":"86467:8:0","nodeType":"VariableDeclaration","scope":3579,"src":"86459:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3571,"name":"address","nodeType":"ElementaryTypeName","src":"86459:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3574,"mutability":"mutable","name":"account1","nameLocation":"86485:8:0","nodeType":"VariableDeclaration","scope":3579,"src":"86477:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3573,"name":"address","nodeType":"ElementaryTypeName","src":"86477:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3576,"mutability":"mutable","name":"account2","nameLocation":"86503:8:0","nodeType":"VariableDeclaration","scope":3579,"src":"86495:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3575,"name":"address","nodeType":"ElementaryTypeName","src":"86495:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"86458:54:0"},"returnParameters":{"id":3578,"nodeType":"ParameterList","parameters":[],"src":"86521:0:0"},"scope":4037,"src":"86435:87:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3580,"nodeType":"StructuredDocumentation","src":"86528:34:0","text":"See `makePersistent(address)`."},"functionSelector":"1d9e269e","id":3586,"implemented":false,"kind":"function","modifiers":[],"name":"makePersistent","nameLocation":"86576:14:0","nodeType":"FunctionDefinition","parameters":{"id":3584,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3583,"mutability":"mutable","name":"accounts","nameLocation":"86610:8:0","nodeType":"VariableDeclaration","scope":3586,"src":"86591:27:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":3581,"name":"address","nodeType":"ElementaryTypeName","src":"86591:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3582,"nodeType":"ArrayTypeName","src":"86591:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"86590:29:0"},"returnParameters":{"id":3585,"nodeType":"ParameterList","parameters":[],"src":"86628:0:0"},"scope":4037,"src":"86567:62:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3587,"nodeType":"StructuredDocumentation","src":"86635:60:0","text":"Reverts a call to an address with specified revert data."},"functionSelector":"dbaad147","id":3596,"implemented":false,"kind":"function","modifiers":[],"name":"mockCallRevert","nameLocation":"86709:14:0","nodeType":"FunctionDefinition","parameters":{"id":3594,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3589,"mutability":"mutable","name":"callee","nameLocation":"86732:6:0","nodeType":"VariableDeclaration","scope":3596,"src":"86724:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3588,"name":"address","nodeType":"ElementaryTypeName","src":"86724:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3591,"mutability":"mutable","name":"data","nameLocation":"86755:4:0","nodeType":"VariableDeclaration","scope":3596,"src":"86740:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3590,"name":"bytes","nodeType":"ElementaryTypeName","src":"86740:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3593,"mutability":"mutable","name":"revertData","nameLocation":"86776:10:0","nodeType":"VariableDeclaration","scope":3596,"src":"86761:25:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3592,"name":"bytes","nodeType":"ElementaryTypeName","src":"86761:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"86723:64:0"},"returnParameters":{"id":3595,"nodeType":"ParameterList","parameters":[],"src":"86796:0:0"},"scope":4037,"src":"86700:97:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3597,"nodeType":"StructuredDocumentation","src":"86803:89:0","text":"Reverts a call to an address with a specific `msg.value`, with specified revert data."},"functionSelector":"d23cd037","id":3608,"implemented":false,"kind":"function","modifiers":[],"name":"mockCallRevert","nameLocation":"86906:14:0","nodeType":"FunctionDefinition","parameters":{"id":3606,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3599,"mutability":"mutable","name":"callee","nameLocation":"86929:6:0","nodeType":"VariableDeclaration","scope":3608,"src":"86921:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3598,"name":"address","nodeType":"ElementaryTypeName","src":"86921:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3601,"mutability":"mutable","name":"msgValue","nameLocation":"86945:8:0","nodeType":"VariableDeclaration","scope":3608,"src":"86937:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3600,"name":"uint256","nodeType":"ElementaryTypeName","src":"86937:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3603,"mutability":"mutable","name":"data","nameLocation":"86970:4:0","nodeType":"VariableDeclaration","scope":3608,"src":"86955:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3602,"name":"bytes","nodeType":"ElementaryTypeName","src":"86955:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3605,"mutability":"mutable","name":"revertData","nameLocation":"86991:10:0","nodeType":"VariableDeclaration","scope":3608,"src":"86976:25:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3604,"name":"bytes","nodeType":"ElementaryTypeName","src":"86976:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"86920:82:0"},"returnParameters":{"id":3607,"nodeType":"ParameterList","parameters":[],"src":"87019:0:0"},"scope":4037,"src":"86897:123:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3609,"nodeType":"StructuredDocumentation","src":"87026:249:0","text":"Mocks a call to an address, returning specified data.\n Calldata can either be strict or a partial match, e.g. if you only\n pass a Solidity selector to the expected calldata, then the entire Solidity\n function will be mocked."},"functionSelector":"b96213e4","id":3618,"implemented":false,"kind":"function","modifiers":[],"name":"mockCall","nameLocation":"87289:8:0","nodeType":"FunctionDefinition","parameters":{"id":3616,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3611,"mutability":"mutable","name":"callee","nameLocation":"87306:6:0","nodeType":"VariableDeclaration","scope":3618,"src":"87298:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3610,"name":"address","nodeType":"ElementaryTypeName","src":"87298:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3613,"mutability":"mutable","name":"data","nameLocation":"87329:4:0","nodeType":"VariableDeclaration","scope":3618,"src":"87314:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3612,"name":"bytes","nodeType":"ElementaryTypeName","src":"87314:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3615,"mutability":"mutable","name":"returnData","nameLocation":"87350:10:0","nodeType":"VariableDeclaration","scope":3618,"src":"87335:25:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3614,"name":"bytes","nodeType":"ElementaryTypeName","src":"87335:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"87297:64:0"},"returnParameters":{"id":3617,"nodeType":"ParameterList","parameters":[],"src":"87370:0:0"},"scope":4037,"src":"87280:91:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3619,"nodeType":"StructuredDocumentation","src":"87377:164:0","text":"Mocks a call to an address with a specific `msg.value`, returning specified data.\n Calldata match takes precedence over `msg.value` in case of ambiguity."},"functionSelector":"81409b91","id":3630,"implemented":false,"kind":"function","modifiers":[],"name":"mockCall","nameLocation":"87555:8:0","nodeType":"FunctionDefinition","parameters":{"id":3628,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3621,"mutability":"mutable","name":"callee","nameLocation":"87572:6:0","nodeType":"VariableDeclaration","scope":3630,"src":"87564:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3620,"name":"address","nodeType":"ElementaryTypeName","src":"87564:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3623,"mutability":"mutable","name":"msgValue","nameLocation":"87588:8:0","nodeType":"VariableDeclaration","scope":3630,"src":"87580:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3622,"name":"uint256","nodeType":"ElementaryTypeName","src":"87580:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3625,"mutability":"mutable","name":"data","nameLocation":"87613:4:0","nodeType":"VariableDeclaration","scope":3630,"src":"87598:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3624,"name":"bytes","nodeType":"ElementaryTypeName","src":"87598:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3627,"mutability":"mutable","name":"returnData","nameLocation":"87634:10:0","nodeType":"VariableDeclaration","scope":3630,"src":"87619:25:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3626,"name":"bytes","nodeType":"ElementaryTypeName","src":"87619:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"87563:82:0"},"returnParameters":{"id":3629,"nodeType":"ParameterList","parameters":[],"src":"87654:0:0"},"scope":4037,"src":"87546:109:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3631,"nodeType":"StructuredDocumentation","src":"87661:64:0","text":"Sets the *next* call's `msg.sender` to be the input address."},"functionSelector":"ca669fa7","id":3636,"implemented":false,"kind":"function","modifiers":[],"name":"prank","nameLocation":"87739:5:0","nodeType":"FunctionDefinition","parameters":{"id":3634,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3633,"mutability":"mutable","name":"msgSender","nameLocation":"87753:9:0","nodeType":"VariableDeclaration","scope":3636,"src":"87745:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3632,"name":"address","nodeType":"ElementaryTypeName","src":"87745:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"87744:19:0"},"returnParameters":{"id":3635,"nodeType":"ParameterList","parameters":[],"src":"87772:0:0"},"scope":4037,"src":"87730:43:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3637,"nodeType":"StructuredDocumentation","src":"87779:108:0","text":"Sets the *next* call's `msg.sender` to be the input address, and the `tx.origin` to be the second input."},"functionSelector":"47e50cce","id":3644,"implemented":false,"kind":"function","modifiers":[],"name":"prank","nameLocation":"87901:5:0","nodeType":"FunctionDefinition","parameters":{"id":3642,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3639,"mutability":"mutable","name":"msgSender","nameLocation":"87915:9:0","nodeType":"VariableDeclaration","scope":3644,"src":"87907:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3638,"name":"address","nodeType":"ElementaryTypeName","src":"87907:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3641,"mutability":"mutable","name":"txOrigin","nameLocation":"87934:8:0","nodeType":"VariableDeclaration","scope":3644,"src":"87926:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3640,"name":"address","nodeType":"ElementaryTypeName","src":"87926:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"87906:37:0"},"returnParameters":{"id":3643,"nodeType":"ParameterList","parameters":[],"src":"87952:0:0"},"scope":4037,"src":"87892:61:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3645,"nodeType":"StructuredDocumentation","src":"87959:166:0","text":"Sets `block.prevrandao`.\n Not available on EVM versions before Paris. Use `difficulty` instead.\n If used on unsupported EVM versions it will revert."},"functionSelector":"3b925549","id":3650,"implemented":false,"kind":"function","modifiers":[],"name":"prevrandao","nameLocation":"88139:10:0","nodeType":"FunctionDefinition","parameters":{"id":3648,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3647,"mutability":"mutable","name":"newPrevrandao","nameLocation":"88158:13:0","nodeType":"VariableDeclaration","scope":3650,"src":"88150:21:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3646,"name":"bytes32","nodeType":"ElementaryTypeName","src":"88150:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"88149:23:0"},"returnParameters":{"id":3649,"nodeType":"ParameterList","parameters":[],"src":"88181:0:0"},"scope":4037,"src":"88130:52:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3651,"nodeType":"StructuredDocumentation","src":"88188:166:0","text":"Sets `block.prevrandao`.\n Not available on EVM versions before Paris. Use `difficulty` instead.\n If used on unsupported EVM versions it will revert."},"functionSelector":"9cb1c0d4","id":3656,"implemented":false,"kind":"function","modifiers":[],"name":"prevrandao","nameLocation":"88368:10:0","nodeType":"FunctionDefinition","parameters":{"id":3654,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3653,"mutability":"mutable","name":"newPrevrandao","nameLocation":"88387:13:0","nodeType":"VariableDeclaration","scope":3656,"src":"88379:21:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3652,"name":"uint256","nodeType":"ElementaryTypeName","src":"88379:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"88378:23:0"},"returnParameters":{"id":3655,"nodeType":"ParameterList","parameters":[],"src":"88410:0:0"},"scope":4037,"src":"88359:52:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3657,"nodeType":"StructuredDocumentation","src":"88417:117:0","text":"Reads the current `msg.sender` and `tx.origin` from state and reports if there is any active caller modification."},"functionSelector":"4ad0bac9","id":3667,"implemented":false,"kind":"function","modifiers":[],"name":"readCallers","nameLocation":"88548:11:0","nodeType":"FunctionDefinition","parameters":{"id":3658,"nodeType":"ParameterList","parameters":[],"src":"88559:2:0"},"returnParameters":{"id":3666,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3661,"mutability":"mutable","name":"callerMode","nameLocation":"88591:10:0","nodeType":"VariableDeclaration","scope":3667,"src":"88580:21:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_CallerMode_$10","typeString":"enum VmSafe.CallerMode"},"typeName":{"id":3660,"nodeType":"UserDefinedTypeName","pathNode":{"id":3659,"name":"CallerMode","nameLocations":["88580:10:0"],"nodeType":"IdentifierPath","referencedDeclaration":10,"src":"88580:10:0"},"referencedDeclaration":10,"src":"88580:10:0","typeDescriptions":{"typeIdentifier":"t_enum$_CallerMode_$10","typeString":"enum VmSafe.CallerMode"}},"visibility":"internal"},{"constant":false,"id":3663,"mutability":"mutable","name":"msgSender","nameLocation":"88611:9:0","nodeType":"VariableDeclaration","scope":3667,"src":"88603:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3662,"name":"address","nodeType":"ElementaryTypeName","src":"88603:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3665,"mutability":"mutable","name":"txOrigin","nameLocation":"88630:8:0","nodeType":"VariableDeclaration","scope":3667,"src":"88622:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3664,"name":"address","nodeType":"ElementaryTypeName","src":"88622:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"88579:60:0"},"scope":4037,"src":"88539:101:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3668,"nodeType":"StructuredDocumentation","src":"88646:77:0","text":"Resets the nonce of an account to 0 for EOAs and 1 for contract accounts."},"functionSelector":"1c72346d","id":3673,"implemented":false,"kind":"function","modifiers":[],"name":"resetNonce","nameLocation":"88737:10:0","nodeType":"FunctionDefinition","parameters":{"id":3671,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3670,"mutability":"mutable","name":"account","nameLocation":"88756:7:0","nodeType":"VariableDeclaration","scope":3673,"src":"88748:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3669,"name":"address","nodeType":"ElementaryTypeName","src":"88748:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"88747:17:0"},"returnParameters":{"id":3672,"nodeType":"ParameterList","parameters":[],"src":"88773:0:0"},"scope":4037,"src":"88728:46:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3674,"nodeType":"StructuredDocumentation","src":"88780:332:0","text":"Revert the state of the EVM to a previous snapshot\n Takes the snapshot ID to revert to.\n Returns `true` if the snapshot was successfully reverted.\n Returns `false` if the snapshot does not exist.\n **Note:** This does not automatically delete the snapshot. To delete the snapshot use `deleteSnapshot`."},"functionSelector":"44d7f0a4","id":3681,"implemented":false,"kind":"function","modifiers":[],"name":"revertTo","nameLocation":"89126:8:0","nodeType":"FunctionDefinition","parameters":{"id":3677,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3676,"mutability":"mutable","name":"snapshotId","nameLocation":"89143:10:0","nodeType":"VariableDeclaration","scope":3681,"src":"89135:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3675,"name":"uint256","nodeType":"ElementaryTypeName","src":"89135:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"89134:20:0"},"returnParameters":{"id":3680,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3679,"mutability":"mutable","name":"success","nameLocation":"89178:7:0","nodeType":"VariableDeclaration","scope":3681,"src":"89173:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3678,"name":"bool","nodeType":"ElementaryTypeName","src":"89173:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"89172:14:0"},"scope":4037,"src":"89117:70:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3682,"nodeType":"StructuredDocumentation","src":"89193:272:0","text":"Revert the state of the EVM to a previous snapshot and automatically deletes the snapshots\n Takes the snapshot ID to revert to.\n Returns `true` if the snapshot was successfully reverted and deleted.\n Returns `false` if the snapshot does not exist."},"functionSelector":"03e0aca9","id":3689,"implemented":false,"kind":"function","modifiers":[],"name":"revertToAndDelete","nameLocation":"89479:17:0","nodeType":"FunctionDefinition","parameters":{"id":3685,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3684,"mutability":"mutable","name":"snapshotId","nameLocation":"89505:10:0","nodeType":"VariableDeclaration","scope":3689,"src":"89497:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3683,"name":"uint256","nodeType":"ElementaryTypeName","src":"89497:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"89496:20:0"},"returnParameters":{"id":3688,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3687,"mutability":"mutable","name":"success","nameLocation":"89540:7:0","nodeType":"VariableDeclaration","scope":3689,"src":"89535:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3686,"name":"bool","nodeType":"ElementaryTypeName","src":"89535:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"89534:14:0"},"scope":4037,"src":"89470:79:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3690,"nodeType":"StructuredDocumentation","src":"89555:86:0","text":"Revokes persistent status from the address, previously added via `makePersistent`."},"functionSelector":"997a0222","id":3695,"implemented":false,"kind":"function","modifiers":[],"name":"revokePersistent","nameLocation":"89655:16:0","nodeType":"FunctionDefinition","parameters":{"id":3693,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3692,"mutability":"mutable","name":"account","nameLocation":"89680:7:0","nodeType":"VariableDeclaration","scope":3695,"src":"89672:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3691,"name":"address","nodeType":"ElementaryTypeName","src":"89672:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"89671:17:0"},"returnParameters":{"id":3694,"nodeType":"ParameterList","parameters":[],"src":"89697:0:0"},"scope":4037,"src":"89646:52:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3696,"nodeType":"StructuredDocumentation","src":"89704:36:0","text":"See `revokePersistent(address)`."},"functionSelector":"3ce969e6","id":3702,"implemented":false,"kind":"function","modifiers":[],"name":"revokePersistent","nameLocation":"89754:16:0","nodeType":"FunctionDefinition","parameters":{"id":3700,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3699,"mutability":"mutable","name":"accounts","nameLocation":"89790:8:0","nodeType":"VariableDeclaration","scope":3702,"src":"89771:27:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":3697,"name":"address","nodeType":"ElementaryTypeName","src":"89771:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3698,"nodeType":"ArrayTypeName","src":"89771:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"89770:29:0"},"returnParameters":{"id":3701,"nodeType":"ParameterList","parameters":[],"src":"89808:0:0"},"scope":4037,"src":"89745:64:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3703,"nodeType":"StructuredDocumentation","src":"89815:24:0","text":"Sets `block.height`."},"functionSelector":"1f7b4f30","id":3708,"implemented":false,"kind":"function","modifiers":[],"name":"roll","nameLocation":"89853:4:0","nodeType":"FunctionDefinition","parameters":{"id":3706,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3705,"mutability":"mutable","name":"newHeight","nameLocation":"89866:9:0","nodeType":"VariableDeclaration","scope":3708,"src":"89858:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3704,"name":"uint256","nodeType":"ElementaryTypeName","src":"89858:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"89857:19:0"},"returnParameters":{"id":3707,"nodeType":"ParameterList","parameters":[],"src":"89885:0:0"},"scope":4037,"src":"89844:42:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3709,"nodeType":"StructuredDocumentation","src":"89892:128:0","text":"Updates the currently active fork to given block number\n This is similar to `roll` but for the currently active fork."},"functionSelector":"d9bbf3a1","id":3714,"implemented":false,"kind":"function","modifiers":[],"name":"rollFork","nameLocation":"90034:8:0","nodeType":"FunctionDefinition","parameters":{"id":3712,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3711,"mutability":"mutable","name":"blockNumber","nameLocation":"90051:11:0","nodeType":"VariableDeclaration","scope":3714,"src":"90043:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3710,"name":"uint256","nodeType":"ElementaryTypeName","src":"90043:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"90042:21:0"},"returnParameters":{"id":3713,"nodeType":"ParameterList","parameters":[],"src":"90072:0:0"},"scope":4037,"src":"90025:48:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3715,"nodeType":"StructuredDocumentation","src":"90079:204:0","text":"Updates the currently active fork to given transaction. This will `rollFork` with the number\n of the block the transaction was mined in and replays all transaction mined before it in the block."},"functionSelector":"0f29772b","id":3720,"implemented":false,"kind":"function","modifiers":[],"name":"rollFork","nameLocation":"90297:8:0","nodeType":"FunctionDefinition","parameters":{"id":3718,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3717,"mutability":"mutable","name":"txHash","nameLocation":"90314:6:0","nodeType":"VariableDeclaration","scope":3720,"src":"90306:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3716,"name":"bytes32","nodeType":"ElementaryTypeName","src":"90306:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"90305:16:0"},"returnParameters":{"id":3719,"nodeType":"ParameterList","parameters":[],"src":"90330:0:0"},"scope":4037,"src":"90288:43:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3721,"nodeType":"StructuredDocumentation","src":"90337:49:0","text":"Updates the given fork to given block number."},"functionSelector":"d74c83a4","id":3728,"implemented":false,"kind":"function","modifiers":[],"name":"rollFork","nameLocation":"90400:8:0","nodeType":"FunctionDefinition","parameters":{"id":3726,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3723,"mutability":"mutable","name":"forkId","nameLocation":"90417:6:0","nodeType":"VariableDeclaration","scope":3728,"src":"90409:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3722,"name":"uint256","nodeType":"ElementaryTypeName","src":"90409:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3725,"mutability":"mutable","name":"blockNumber","nameLocation":"90433:11:0","nodeType":"VariableDeclaration","scope":3728,"src":"90425:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3724,"name":"uint256","nodeType":"ElementaryTypeName","src":"90425:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"90408:37:0"},"returnParameters":{"id":3727,"nodeType":"ParameterList","parameters":[],"src":"90454:0:0"},"scope":4037,"src":"90391:64:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3729,"nodeType":"StructuredDocumentation","src":"90461:125:0","text":"Updates the given fork to block number of the given transaction and replays all transaction mined before it in the block."},"functionSelector":"f2830f7b","id":3736,"implemented":false,"kind":"function","modifiers":[],"name":"rollFork","nameLocation":"90600:8:0","nodeType":"FunctionDefinition","parameters":{"id":3734,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3731,"mutability":"mutable","name":"forkId","nameLocation":"90617:6:0","nodeType":"VariableDeclaration","scope":3736,"src":"90609:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3730,"name":"uint256","nodeType":"ElementaryTypeName","src":"90609:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3733,"mutability":"mutable","name":"txHash","nameLocation":"90633:6:0","nodeType":"VariableDeclaration","scope":3736,"src":"90625:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3732,"name":"bytes32","nodeType":"ElementaryTypeName","src":"90625:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"90608:32:0"},"returnParameters":{"id":3735,"nodeType":"ParameterList","parameters":[],"src":"90649:0:0"},"scope":4037,"src":"90591:59:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3737,"nodeType":"StructuredDocumentation","src":"90656:102:0","text":"Takes a fork identifier created by `createFork` and sets the corresponding forked state as active."},"functionSelector":"9ebf6827","id":3742,"implemented":false,"kind":"function","modifiers":[],"name":"selectFork","nameLocation":"90772:10:0","nodeType":"FunctionDefinition","parameters":{"id":3740,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3739,"mutability":"mutable","name":"forkId","nameLocation":"90791:6:0","nodeType":"VariableDeclaration","scope":3742,"src":"90783:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3738,"name":"uint256","nodeType":"ElementaryTypeName","src":"90783:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"90782:16:0"},"returnParameters":{"id":3741,"nodeType":"ParameterList","parameters":[],"src":"90807:0:0"},"scope":4037,"src":"90763:45:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3743,"nodeType":"StructuredDocumentation","src":"90814:139:0","text":"Set blockhash for the current block.\n It only sets the blockhash for blocks where `block.number - 256 <= number < block.number`."},"functionSelector":"5314b54a","id":3750,"implemented":false,"kind":"function","modifiers":[],"name":"setBlockhash","nameLocation":"90967:12:0","nodeType":"FunctionDefinition","parameters":{"id":3748,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3745,"mutability":"mutable","name":"blockNumber","nameLocation":"90988:11:0","nodeType":"VariableDeclaration","scope":3750,"src":"90980:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3744,"name":"uint256","nodeType":"ElementaryTypeName","src":"90980:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3747,"mutability":"mutable","name":"blockHash","nameLocation":"91009:9:0","nodeType":"VariableDeclaration","scope":3750,"src":"91001:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3746,"name":"bytes32","nodeType":"ElementaryTypeName","src":"91001:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"90979:40:0"},"returnParameters":{"id":3749,"nodeType":"ParameterList","parameters":[],"src":"91028:0:0"},"scope":4037,"src":"90958:71:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3751,"nodeType":"StructuredDocumentation","src":"91035:87:0","text":"Sets the nonce of an account. Must be higher than the current nonce of the account."},"functionSelector":"f8e18b57","id":3758,"implemented":false,"kind":"function","modifiers":[],"name":"setNonce","nameLocation":"91136:8:0","nodeType":"FunctionDefinition","parameters":{"id":3756,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3753,"mutability":"mutable","name":"account","nameLocation":"91153:7:0","nodeType":"VariableDeclaration","scope":3758,"src":"91145:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3752,"name":"address","nodeType":"ElementaryTypeName","src":"91145:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3755,"mutability":"mutable","name":"newNonce","nameLocation":"91169:8:0","nodeType":"VariableDeclaration","scope":3758,"src":"91162:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":3754,"name":"uint64","nodeType":"ElementaryTypeName","src":"91162:6:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"91144:34:0"},"returnParameters":{"id":3757,"nodeType":"ParameterList","parameters":[],"src":"91187:0:0"},"scope":4037,"src":"91127:61:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3759,"nodeType":"StructuredDocumentation","src":"91194:55:0","text":"Sets the nonce of an account to an arbitrary value."},"functionSelector":"9b67b21c","id":3766,"implemented":false,"kind":"function","modifiers":[],"name":"setNonceUnsafe","nameLocation":"91263:14:0","nodeType":"FunctionDefinition","parameters":{"id":3764,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3761,"mutability":"mutable","name":"account","nameLocation":"91286:7:0","nodeType":"VariableDeclaration","scope":3766,"src":"91278:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3760,"name":"address","nodeType":"ElementaryTypeName","src":"91278:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3763,"mutability":"mutable","name":"newNonce","nameLocation":"91302:8:0","nodeType":"VariableDeclaration","scope":3766,"src":"91295:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":3762,"name":"uint64","nodeType":"ElementaryTypeName","src":"91295:6:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"91277:34:0"},"returnParameters":{"id":3765,"nodeType":"ParameterList","parameters":[],"src":"91320:0:0"},"scope":4037,"src":"91254:67:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3767,"nodeType":"StructuredDocumentation","src":"91327:144:0","text":"Snapshot the current state of the evm.\n Returns the ID of the snapshot that was created.\n To revert a snapshot use `revertTo`."},"functionSelector":"9711715a","id":3772,"implemented":false,"kind":"function","modifiers":[],"name":"snapshot","nameLocation":"91485:8:0","nodeType":"FunctionDefinition","parameters":{"id":3768,"nodeType":"ParameterList","parameters":[],"src":"91493:2:0"},"returnParameters":{"id":3771,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3770,"mutability":"mutable","name":"snapshotId","nameLocation":"91522:10:0","nodeType":"VariableDeclaration","scope":3772,"src":"91514:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3769,"name":"uint256","nodeType":"ElementaryTypeName","src":"91514:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"91513:20:0"},"scope":4037,"src":"91476:58:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3773,"nodeType":"StructuredDocumentation","src":"91540:96:0","text":"Sets all subsequent calls' `msg.sender` to be the input address until `stopPrank` is called."},"functionSelector":"06447d56","id":3778,"implemented":false,"kind":"function","modifiers":[],"name":"startPrank","nameLocation":"91650:10:0","nodeType":"FunctionDefinition","parameters":{"id":3776,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3775,"mutability":"mutable","name":"msgSender","nameLocation":"91669:9:0","nodeType":"VariableDeclaration","scope":3778,"src":"91661:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3774,"name":"address","nodeType":"ElementaryTypeName","src":"91661:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"91660:19:0"},"returnParameters":{"id":3777,"nodeType":"ParameterList","parameters":[],"src":"91688:0:0"},"scope":4037,"src":"91641:48:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3779,"nodeType":"StructuredDocumentation","src":"91695:140:0","text":"Sets all subsequent calls' `msg.sender` to be the input address until `stopPrank` is called, and the `tx.origin` to be the second input."},"functionSelector":"45b56078","id":3786,"implemented":false,"kind":"function","modifiers":[],"name":"startPrank","nameLocation":"91849:10:0","nodeType":"FunctionDefinition","parameters":{"id":3784,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3781,"mutability":"mutable","name":"msgSender","nameLocation":"91868:9:0","nodeType":"VariableDeclaration","scope":3786,"src":"91860:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3780,"name":"address","nodeType":"ElementaryTypeName","src":"91860:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3783,"mutability":"mutable","name":"txOrigin","nameLocation":"91887:8:0","nodeType":"VariableDeclaration","scope":3786,"src":"91879:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3782,"name":"address","nodeType":"ElementaryTypeName","src":"91879:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"91859:37:0"},"returnParameters":{"id":3785,"nodeType":"ParameterList","parameters":[],"src":"91905:0:0"},"scope":4037,"src":"91840:66:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3787,"nodeType":"StructuredDocumentation","src":"91912:64:0","text":"Resets subsequent calls' `msg.sender` to be `address(this)`."},"functionSelector":"90c5013b","id":3790,"implemented":false,"kind":"function","modifiers":[],"name":"stopPrank","nameLocation":"91990:9:0","nodeType":"FunctionDefinition","parameters":{"id":3788,"nodeType":"ParameterList","parameters":[],"src":"91999:2:0"},"returnParameters":{"id":3789,"nodeType":"ParameterList","parameters":[],"src":"92010:0:0"},"scope":4037,"src":"91981:30:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3791,"nodeType":"StructuredDocumentation","src":"92017:47:0","text":"Stores a value to an address' storage slot."},"functionSelector":"70ca10bb","id":3800,"implemented":false,"kind":"function","modifiers":[],"name":"store","nameLocation":"92078:5:0","nodeType":"FunctionDefinition","parameters":{"id":3798,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3793,"mutability":"mutable","name":"target","nameLocation":"92092:6:0","nodeType":"VariableDeclaration","scope":3800,"src":"92084:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3792,"name":"address","nodeType":"ElementaryTypeName","src":"92084:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3795,"mutability":"mutable","name":"slot","nameLocation":"92108:4:0","nodeType":"VariableDeclaration","scope":3800,"src":"92100:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3794,"name":"bytes32","nodeType":"ElementaryTypeName","src":"92100:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3797,"mutability":"mutable","name":"value","nameLocation":"92122:5:0","nodeType":"VariableDeclaration","scope":3800,"src":"92114:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3796,"name":"bytes32","nodeType":"ElementaryTypeName","src":"92114:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"92083:45:0"},"returnParameters":{"id":3799,"nodeType":"ParameterList","parameters":[],"src":"92137:0:0"},"scope":4037,"src":"92069:69:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3801,"nodeType":"StructuredDocumentation","src":"92144:92:0","text":"Fetches the given transaction from the active fork and executes it on the current state."},"functionSelector":"be646da1","id":3806,"implemented":false,"kind":"function","modifiers":[],"name":"transact","nameLocation":"92250:8:0","nodeType":"FunctionDefinition","parameters":{"id":3804,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3803,"mutability":"mutable","name":"txHash","nameLocation":"92267:6:0","nodeType":"VariableDeclaration","scope":3806,"src":"92259:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3802,"name":"bytes32","nodeType":"ElementaryTypeName","src":"92259:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"92258:16:0"},"returnParameters":{"id":3805,"nodeType":"ParameterList","parameters":[],"src":"92283:0:0"},"scope":4037,"src":"92241:43:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3807,"nodeType":"StructuredDocumentation","src":"92290:91:0","text":"Fetches the given transaction from the given fork and executes it on the current state."},"functionSelector":"4d8abc4b","id":3814,"implemented":false,"kind":"function","modifiers":[],"name":"transact","nameLocation":"92395:8:0","nodeType":"FunctionDefinition","parameters":{"id":3812,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3809,"mutability":"mutable","name":"forkId","nameLocation":"92412:6:0","nodeType":"VariableDeclaration","scope":3814,"src":"92404:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3808,"name":"uint256","nodeType":"ElementaryTypeName","src":"92404:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3811,"mutability":"mutable","name":"txHash","nameLocation":"92428:6:0","nodeType":"VariableDeclaration","scope":3814,"src":"92420:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3810,"name":"bytes32","nodeType":"ElementaryTypeName","src":"92420:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"92403:32:0"},"returnParameters":{"id":3813,"nodeType":"ParameterList","parameters":[],"src":"92444:0:0"},"scope":4037,"src":"92386:59:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3815,"nodeType":"StructuredDocumentation","src":"92451:23:0","text":"Sets `tx.gasprice`."},"functionSelector":"48f50c0f","id":3820,"implemented":false,"kind":"function","modifiers":[],"name":"txGasPrice","nameLocation":"92488:10:0","nodeType":"FunctionDefinition","parameters":{"id":3818,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3817,"mutability":"mutable","name":"newGasPrice","nameLocation":"92507:11:0","nodeType":"VariableDeclaration","scope":3820,"src":"92499:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3816,"name":"uint256","nodeType":"ElementaryTypeName","src":"92499:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"92498:21:0"},"returnParameters":{"id":3819,"nodeType":"ParameterList","parameters":[],"src":"92528:0:0"},"scope":4037,"src":"92479:50:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3821,"nodeType":"StructuredDocumentation","src":"92535:27:0","text":"Sets `block.timestamp`."},"functionSelector":"e5d6bf02","id":3826,"implemented":false,"kind":"function","modifiers":[],"name":"warp","nameLocation":"92576:4:0","nodeType":"FunctionDefinition","parameters":{"id":3824,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3823,"mutability":"mutable","name":"newTimestamp","nameLocation":"92589:12:0","nodeType":"VariableDeclaration","scope":3826,"src":"92581:20:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3822,"name":"uint256","nodeType":"ElementaryTypeName","src":"92581:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"92580:22:0"},"returnParameters":{"id":3825,"nodeType":"ParameterList","parameters":[],"src":"92611:0:0"},"scope":4037,"src":"92567:45:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3827,"nodeType":"StructuredDocumentation","src":"92652:107:0","text":"Expect a call to an address with the specified `msg.value` and calldata, and a *minimum* amount of gas."},"functionSelector":"08e4e116","id":3838,"implemented":false,"kind":"function","modifiers":[],"name":"expectCallMinGas","nameLocation":"92773:16:0","nodeType":"FunctionDefinition","parameters":{"id":3836,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3829,"mutability":"mutable","name":"callee","nameLocation":"92798:6:0","nodeType":"VariableDeclaration","scope":3838,"src":"92790:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3828,"name":"address","nodeType":"ElementaryTypeName","src":"92790:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3831,"mutability":"mutable","name":"msgValue","nameLocation":"92814:8:0","nodeType":"VariableDeclaration","scope":3838,"src":"92806:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3830,"name":"uint256","nodeType":"ElementaryTypeName","src":"92806:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3833,"mutability":"mutable","name":"minGas","nameLocation":"92831:6:0","nodeType":"VariableDeclaration","scope":3838,"src":"92824:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":3832,"name":"uint64","nodeType":"ElementaryTypeName","src":"92824:6:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":3835,"mutability":"mutable","name":"data","nameLocation":"92854:4:0","nodeType":"VariableDeclaration","scope":3838,"src":"92839:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3834,"name":"bytes","nodeType":"ElementaryTypeName","src":"92839:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"92789:70:0"},"returnParameters":{"id":3837,"nodeType":"ParameterList","parameters":[],"src":"92868:0:0"},"scope":4037,"src":"92764:105:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3839,"nodeType":"StructuredDocumentation","src":"92875:122:0","text":"Expect given number of calls to an address with the specified `msg.value` and calldata, and a *minimum* amount of gas."},"functionSelector":"e13a1834","id":3852,"implemented":false,"kind":"function","modifiers":[],"name":"expectCallMinGas","nameLocation":"93011:16:0","nodeType":"FunctionDefinition","parameters":{"id":3850,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3841,"mutability":"mutable","name":"callee","nameLocation":"93036:6:0","nodeType":"VariableDeclaration","scope":3852,"src":"93028:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3840,"name":"address","nodeType":"ElementaryTypeName","src":"93028:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3843,"mutability":"mutable","name":"msgValue","nameLocation":"93052:8:0","nodeType":"VariableDeclaration","scope":3852,"src":"93044:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3842,"name":"uint256","nodeType":"ElementaryTypeName","src":"93044:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3845,"mutability":"mutable","name":"minGas","nameLocation":"93069:6:0","nodeType":"VariableDeclaration","scope":3852,"src":"93062:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":3844,"name":"uint64","nodeType":"ElementaryTypeName","src":"93062:6:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":3847,"mutability":"mutable","name":"data","nameLocation":"93092:4:0","nodeType":"VariableDeclaration","scope":3852,"src":"93077:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3846,"name":"bytes","nodeType":"ElementaryTypeName","src":"93077:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3849,"mutability":"mutable","name":"count","nameLocation":"93105:5:0","nodeType":"VariableDeclaration","scope":3852,"src":"93098:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":3848,"name":"uint64","nodeType":"ElementaryTypeName","src":"93098:6:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"93027:84:0"},"returnParameters":{"id":3851,"nodeType":"ParameterList","parameters":[],"src":"93128:0:0"},"scope":4037,"src":"93002:127:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3853,"nodeType":"StructuredDocumentation","src":"93135:121:0","text":"Expects a call to an address with the specified calldata.\n Calldata can either be a strict or a partial match."},"functionSelector":"bd6af434","id":3860,"implemented":false,"kind":"function","modifiers":[],"name":"expectCall","nameLocation":"93270:10:0","nodeType":"FunctionDefinition","parameters":{"id":3858,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3855,"mutability":"mutable","name":"callee","nameLocation":"93289:6:0","nodeType":"VariableDeclaration","scope":3860,"src":"93281:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3854,"name":"address","nodeType":"ElementaryTypeName","src":"93281:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3857,"mutability":"mutable","name":"data","nameLocation":"93312:4:0","nodeType":"VariableDeclaration","scope":3860,"src":"93297:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3856,"name":"bytes","nodeType":"ElementaryTypeName","src":"93297:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"93280:37:0"},"returnParameters":{"id":3859,"nodeType":"ParameterList","parameters":[],"src":"93326:0:0"},"scope":4037,"src":"93261:66:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3861,"nodeType":"StructuredDocumentation","src":"93333:76:0","text":"Expects given number of calls to an address with the specified calldata."},"functionSelector":"c1adbbff","id":3870,"implemented":false,"kind":"function","modifiers":[],"name":"expectCall","nameLocation":"93423:10:0","nodeType":"FunctionDefinition","parameters":{"id":3868,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3863,"mutability":"mutable","name":"callee","nameLocation":"93442:6:0","nodeType":"VariableDeclaration","scope":3870,"src":"93434:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3862,"name":"address","nodeType":"ElementaryTypeName","src":"93434:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3865,"mutability":"mutable","name":"data","nameLocation":"93465:4:0","nodeType":"VariableDeclaration","scope":3870,"src":"93450:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3864,"name":"bytes","nodeType":"ElementaryTypeName","src":"93450:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3867,"mutability":"mutable","name":"count","nameLocation":"93478:5:0","nodeType":"VariableDeclaration","scope":3870,"src":"93471:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":3866,"name":"uint64","nodeType":"ElementaryTypeName","src":"93471:6:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"93433:51:0"},"returnParameters":{"id":3869,"nodeType":"ParameterList","parameters":[],"src":"93493:0:0"},"scope":4037,"src":"93414:80:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3871,"nodeType":"StructuredDocumentation","src":"93500:77:0","text":"Expects a call to an address with the specified `msg.value` and calldata."},"functionSelector":"f30c7ba3","id":3880,"implemented":false,"kind":"function","modifiers":[],"name":"expectCall","nameLocation":"93591:10:0","nodeType":"FunctionDefinition","parameters":{"id":3878,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3873,"mutability":"mutable","name":"callee","nameLocation":"93610:6:0","nodeType":"VariableDeclaration","scope":3880,"src":"93602:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3872,"name":"address","nodeType":"ElementaryTypeName","src":"93602:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3875,"mutability":"mutable","name":"msgValue","nameLocation":"93626:8:0","nodeType":"VariableDeclaration","scope":3880,"src":"93618:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3874,"name":"uint256","nodeType":"ElementaryTypeName","src":"93618:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3877,"mutability":"mutable","name":"data","nameLocation":"93651:4:0","nodeType":"VariableDeclaration","scope":3880,"src":"93636:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3876,"name":"bytes","nodeType":"ElementaryTypeName","src":"93636:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"93601:55:0"},"returnParameters":{"id":3879,"nodeType":"ParameterList","parameters":[],"src":"93665:0:0"},"scope":4037,"src":"93582:84:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3881,"nodeType":"StructuredDocumentation","src":"93672:92:0","text":"Expects given number of calls to an address with the specified `msg.value` and calldata."},"functionSelector":"a2b1a1ae","id":3892,"implemented":false,"kind":"function","modifiers":[],"name":"expectCall","nameLocation":"93778:10:0","nodeType":"FunctionDefinition","parameters":{"id":3890,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3883,"mutability":"mutable","name":"callee","nameLocation":"93797:6:0","nodeType":"VariableDeclaration","scope":3892,"src":"93789:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3882,"name":"address","nodeType":"ElementaryTypeName","src":"93789:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3885,"mutability":"mutable","name":"msgValue","nameLocation":"93813:8:0","nodeType":"VariableDeclaration","scope":3892,"src":"93805:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3884,"name":"uint256","nodeType":"ElementaryTypeName","src":"93805:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3887,"mutability":"mutable","name":"data","nameLocation":"93838:4:0","nodeType":"VariableDeclaration","scope":3892,"src":"93823:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3886,"name":"bytes","nodeType":"ElementaryTypeName","src":"93823:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3889,"mutability":"mutable","name":"count","nameLocation":"93851:5:0","nodeType":"VariableDeclaration","scope":3892,"src":"93844:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":3888,"name":"uint64","nodeType":"ElementaryTypeName","src":"93844:6:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"93788:69:0"},"returnParameters":{"id":3891,"nodeType":"ParameterList","parameters":[],"src":"93866:0:0"},"scope":4037,"src":"93769:98:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3893,"nodeType":"StructuredDocumentation","src":"93873:82:0","text":"Expect a call to an address with the specified `msg.value`, gas, and calldata."},"functionSelector":"23361207","id":3904,"implemented":false,"kind":"function","modifiers":[],"name":"expectCall","nameLocation":"93969:10:0","nodeType":"FunctionDefinition","parameters":{"id":3902,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3895,"mutability":"mutable","name":"callee","nameLocation":"93988:6:0","nodeType":"VariableDeclaration","scope":3904,"src":"93980:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3894,"name":"address","nodeType":"ElementaryTypeName","src":"93980:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3897,"mutability":"mutable","name":"msgValue","nameLocation":"94004:8:0","nodeType":"VariableDeclaration","scope":3904,"src":"93996:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3896,"name":"uint256","nodeType":"ElementaryTypeName","src":"93996:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3899,"mutability":"mutable","name":"gas","nameLocation":"94021:3:0","nodeType":"VariableDeclaration","scope":3904,"src":"94014:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":3898,"name":"uint64","nodeType":"ElementaryTypeName","src":"94014:6:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":3901,"mutability":"mutable","name":"data","nameLocation":"94041:4:0","nodeType":"VariableDeclaration","scope":3904,"src":"94026:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3900,"name":"bytes","nodeType":"ElementaryTypeName","src":"94026:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"93979:67:0"},"returnParameters":{"id":3903,"nodeType":"ParameterList","parameters":[],"src":"94055:0:0"},"scope":4037,"src":"93960:96:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3905,"nodeType":"StructuredDocumentation","src":"94062:98:0","text":"Expects given number of calls to an address with the specified `msg.value`, gas, and calldata."},"functionSelector":"65b7b7cc","id":3918,"implemented":false,"kind":"function","modifiers":[],"name":"expectCall","nameLocation":"94174:10:0","nodeType":"FunctionDefinition","parameters":{"id":3916,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3907,"mutability":"mutable","name":"callee","nameLocation":"94193:6:0","nodeType":"VariableDeclaration","scope":3918,"src":"94185:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3906,"name":"address","nodeType":"ElementaryTypeName","src":"94185:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3909,"mutability":"mutable","name":"msgValue","nameLocation":"94209:8:0","nodeType":"VariableDeclaration","scope":3918,"src":"94201:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3908,"name":"uint256","nodeType":"ElementaryTypeName","src":"94201:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3911,"mutability":"mutable","name":"gas","nameLocation":"94226:3:0","nodeType":"VariableDeclaration","scope":3918,"src":"94219:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":3910,"name":"uint64","nodeType":"ElementaryTypeName","src":"94219:6:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":3913,"mutability":"mutable","name":"data","nameLocation":"94246:4:0","nodeType":"VariableDeclaration","scope":3918,"src":"94231:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3912,"name":"bytes","nodeType":"ElementaryTypeName","src":"94231:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3915,"mutability":"mutable","name":"count","nameLocation":"94259:5:0","nodeType":"VariableDeclaration","scope":3918,"src":"94252:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":3914,"name":"uint64","nodeType":"ElementaryTypeName","src":"94252:6:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"94184:81:0"},"returnParameters":{"id":3917,"nodeType":"ParameterList","parameters":[],"src":"94274:0:0"},"scope":4037,"src":"94165:110:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3919,"nodeType":"StructuredDocumentation","src":"94281:348:0","text":"Prepare an expected anonymous log with (bool checkTopic1, bool checkTopic2, bool checkTopic3, bool checkData.).\n Call this function, then emit an anonymous event, then call a function. Internally after the call, we check if\n logs were emitted in the expected order with the expected topics and data (as specified by the booleans)."},"functionSelector":"c948db5e","id":3932,"implemented":false,"kind":"function","modifiers":[],"name":"expectEmitAnonymous","nameLocation":"94643:19:0","nodeType":"FunctionDefinition","parameters":{"id":3930,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3921,"mutability":"mutable","name":"checkTopic0","nameLocation":"94668:11:0","nodeType":"VariableDeclaration","scope":3932,"src":"94663:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3920,"name":"bool","nodeType":"ElementaryTypeName","src":"94663:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3923,"mutability":"mutable","name":"checkTopic1","nameLocation":"94686:11:0","nodeType":"VariableDeclaration","scope":3932,"src":"94681:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3922,"name":"bool","nodeType":"ElementaryTypeName","src":"94681:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3925,"mutability":"mutable","name":"checkTopic2","nameLocation":"94704:11:0","nodeType":"VariableDeclaration","scope":3932,"src":"94699:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3924,"name":"bool","nodeType":"ElementaryTypeName","src":"94699:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3927,"mutability":"mutable","name":"checkTopic3","nameLocation":"94722:11:0","nodeType":"VariableDeclaration","scope":3932,"src":"94717:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3926,"name":"bool","nodeType":"ElementaryTypeName","src":"94717:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3929,"mutability":"mutable","name":"checkData","nameLocation":"94740:9:0","nodeType":"VariableDeclaration","scope":3932,"src":"94735:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3928,"name":"bool","nodeType":"ElementaryTypeName","src":"94735:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"94662:88:0"},"returnParameters":{"id":3931,"nodeType":"ParameterList","parameters":[],"src":"94767:0:0"},"scope":4037,"src":"94634:134:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3933,"nodeType":"StructuredDocumentation","src":"94774:92:0","text":"Same as the previous method, but also checks supplied address against emitting contract."},"functionSelector":"71c95899","id":3948,"implemented":false,"kind":"function","modifiers":[],"name":"expectEmitAnonymous","nameLocation":"94880:19:0","nodeType":"FunctionDefinition","parameters":{"id":3946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3935,"mutability":"mutable","name":"checkTopic0","nameLocation":"94914:11:0","nodeType":"VariableDeclaration","scope":3948,"src":"94909:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3934,"name":"bool","nodeType":"ElementaryTypeName","src":"94909:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3937,"mutability":"mutable","name":"checkTopic1","nameLocation":"94940:11:0","nodeType":"VariableDeclaration","scope":3948,"src":"94935:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3936,"name":"bool","nodeType":"ElementaryTypeName","src":"94935:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3939,"mutability":"mutable","name":"checkTopic2","nameLocation":"94966:11:0","nodeType":"VariableDeclaration","scope":3948,"src":"94961:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3938,"name":"bool","nodeType":"ElementaryTypeName","src":"94961:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3941,"mutability":"mutable","name":"checkTopic3","nameLocation":"94992:11:0","nodeType":"VariableDeclaration","scope":3948,"src":"94987:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3940,"name":"bool","nodeType":"ElementaryTypeName","src":"94987:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3943,"mutability":"mutable","name":"checkData","nameLocation":"95018:9:0","nodeType":"VariableDeclaration","scope":3948,"src":"95013:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3942,"name":"bool","nodeType":"ElementaryTypeName","src":"95013:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3945,"mutability":"mutable","name":"emitter","nameLocation":"95045:7:0","nodeType":"VariableDeclaration","scope":3948,"src":"95037:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3944,"name":"address","nodeType":"ElementaryTypeName","src":"95037:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"94899:159:0"},"returnParameters":{"id":3947,"nodeType":"ParameterList","parameters":[],"src":"95067:0:0"},"scope":4037,"src":"94871:197:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3949,"nodeType":"StructuredDocumentation","src":"95074:279:0","text":"Prepare an expected anonymous log with all topic and data checks enabled.\n Call this function, then emit an anonymous event, then call a function. Internally after the call, we check if\n logs were emitted in the expected order with the expected topics and data."},"functionSelector":"2e5f270c","id":3952,"implemented":false,"kind":"function","modifiers":[],"name":"expectEmitAnonymous","nameLocation":"95367:19:0","nodeType":"FunctionDefinition","parameters":{"id":3950,"nodeType":"ParameterList","parameters":[],"src":"95386:2:0"},"returnParameters":{"id":3951,"nodeType":"ParameterList","parameters":[],"src":"95397:0:0"},"scope":4037,"src":"95358:40:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3953,"nodeType":"StructuredDocumentation","src":"95404:92:0","text":"Same as the previous method, but also checks supplied address against emitting contract."},"functionSelector":"6fc68705","id":3958,"implemented":false,"kind":"function","modifiers":[],"name":"expectEmitAnonymous","nameLocation":"95510:19:0","nodeType":"FunctionDefinition","parameters":{"id":3956,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3955,"mutability":"mutable","name":"emitter","nameLocation":"95538:7:0","nodeType":"VariableDeclaration","scope":3958,"src":"95530:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3954,"name":"address","nodeType":"ElementaryTypeName","src":"95530:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"95529:17:0"},"returnParameters":{"id":3957,"nodeType":"ParameterList","parameters":[],"src":"95555:0:0"},"scope":4037,"src":"95501:55:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3959,"nodeType":"StructuredDocumentation","src":"95562:328:0","text":"Prepare an expected log with (bool checkTopic1, bool checkTopic2, bool checkTopic3, bool checkData.).\n Call this function, then emit an event, then call a function. Internally after the call, we check if\n logs were emitted in the expected order with the expected topics and data (as specified by the booleans)."},"functionSelector":"491cc7c2","id":3970,"implemented":false,"kind":"function","modifiers":[],"name":"expectEmit","nameLocation":"95904:10:0","nodeType":"FunctionDefinition","parameters":{"id":3968,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3961,"mutability":"mutable","name":"checkTopic1","nameLocation":"95920:11:0","nodeType":"VariableDeclaration","scope":3970,"src":"95915:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3960,"name":"bool","nodeType":"ElementaryTypeName","src":"95915:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3963,"mutability":"mutable","name":"checkTopic2","nameLocation":"95938:11:0","nodeType":"VariableDeclaration","scope":3970,"src":"95933:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3962,"name":"bool","nodeType":"ElementaryTypeName","src":"95933:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3965,"mutability":"mutable","name":"checkTopic3","nameLocation":"95956:11:0","nodeType":"VariableDeclaration","scope":3970,"src":"95951:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3964,"name":"bool","nodeType":"ElementaryTypeName","src":"95951:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3967,"mutability":"mutable","name":"checkData","nameLocation":"95974:9:0","nodeType":"VariableDeclaration","scope":3970,"src":"95969:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3966,"name":"bool","nodeType":"ElementaryTypeName","src":"95969:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"95914:70:0"},"returnParameters":{"id":3969,"nodeType":"ParameterList","parameters":[],"src":"95993:0:0"},"scope":4037,"src":"95895:99:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3971,"nodeType":"StructuredDocumentation","src":"96000:92:0","text":"Same as the previous method, but also checks supplied address against emitting contract."},"functionSelector":"81bad6f3","id":3984,"implemented":false,"kind":"function","modifiers":[],"name":"expectEmit","nameLocation":"96106:10:0","nodeType":"FunctionDefinition","parameters":{"id":3982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3973,"mutability":"mutable","name":"checkTopic1","nameLocation":"96122:11:0","nodeType":"VariableDeclaration","scope":3984,"src":"96117:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3972,"name":"bool","nodeType":"ElementaryTypeName","src":"96117:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3975,"mutability":"mutable","name":"checkTopic2","nameLocation":"96140:11:0","nodeType":"VariableDeclaration","scope":3984,"src":"96135:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3974,"name":"bool","nodeType":"ElementaryTypeName","src":"96135:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3977,"mutability":"mutable","name":"checkTopic3","nameLocation":"96158:11:0","nodeType":"VariableDeclaration","scope":3984,"src":"96153:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3976,"name":"bool","nodeType":"ElementaryTypeName","src":"96153:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3979,"mutability":"mutable","name":"checkData","nameLocation":"96176:9:0","nodeType":"VariableDeclaration","scope":3984,"src":"96171:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3978,"name":"bool","nodeType":"ElementaryTypeName","src":"96171:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3981,"mutability":"mutable","name":"emitter","nameLocation":"96195:7:0","nodeType":"VariableDeclaration","scope":3984,"src":"96187:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3980,"name":"address","nodeType":"ElementaryTypeName","src":"96187:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"96116:87:0"},"returnParameters":{"id":3983,"nodeType":"ParameterList","parameters":[],"src":"96220:0:0"},"scope":4037,"src":"96097:124:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3985,"nodeType":"StructuredDocumentation","src":"96227:259:0","text":"Prepare an expected log with all topic and data checks enabled.\n Call this function, then emit an event, then call a function. Internally after the call, we check if\n logs were emitted in the expected order with the expected topics and data."},"functionSelector":"440ed10d","id":3988,"implemented":false,"kind":"function","modifiers":[],"name":"expectEmit","nameLocation":"96500:10:0","nodeType":"FunctionDefinition","parameters":{"id":3986,"nodeType":"ParameterList","parameters":[],"src":"96510:2:0"},"returnParameters":{"id":3987,"nodeType":"ParameterList","parameters":[],"src":"96521:0:0"},"scope":4037,"src":"96491:31:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3989,"nodeType":"StructuredDocumentation","src":"96528:92:0","text":"Same as the previous method, but also checks supplied address against emitting contract."},"functionSelector":"86b9620d","id":3994,"implemented":false,"kind":"function","modifiers":[],"name":"expectEmit","nameLocation":"96634:10:0","nodeType":"FunctionDefinition","parameters":{"id":3992,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3991,"mutability":"mutable","name":"emitter","nameLocation":"96653:7:0","nodeType":"VariableDeclaration","scope":3994,"src":"96645:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3990,"name":"address","nodeType":"ElementaryTypeName","src":"96645:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"96644:17:0"},"returnParameters":{"id":3993,"nodeType":"ParameterList","parameters":[],"src":"96670:0:0"},"scope":4037,"src":"96625:46:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3995,"nodeType":"StructuredDocumentation","src":"96677:55:0","text":"Expects an error on next call with any revert data."},"functionSelector":"f4844814","id":3998,"implemented":false,"kind":"function","modifiers":[],"name":"expectRevert","nameLocation":"96746:12:0","nodeType":"FunctionDefinition","parameters":{"id":3996,"nodeType":"ParameterList","parameters":[],"src":"96758:2:0"},"returnParameters":{"id":3997,"nodeType":"ParameterList","parameters":[],"src":"96769:0:0"},"scope":4037,"src":"96737:33:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3999,"nodeType":"StructuredDocumentation","src":"96776:67:0","text":"Expects an error on next call that starts with the revert data."},"functionSelector":"c31eb0e0","id":4004,"implemented":false,"kind":"function","modifiers":[],"name":"expectRevert","nameLocation":"96857:12:0","nodeType":"FunctionDefinition","parameters":{"id":4002,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4001,"mutability":"mutable","name":"revertData","nameLocation":"96877:10:0","nodeType":"VariableDeclaration","scope":4004,"src":"96870:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":4000,"name":"bytes4","nodeType":"ElementaryTypeName","src":"96870:6:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"96869:19:0"},"returnParameters":{"id":4003,"nodeType":"ParameterList","parameters":[],"src":"96897:0:0"},"scope":4037,"src":"96848:50:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":4005,"nodeType":"StructuredDocumentation","src":"96904:71:0","text":"Expects an error on next call that exactly matches the revert data."},"functionSelector":"f28dceb3","id":4010,"implemented":false,"kind":"function","modifiers":[],"name":"expectRevert","nameLocation":"96989:12:0","nodeType":"FunctionDefinition","parameters":{"id":4008,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4007,"mutability":"mutable","name":"revertData","nameLocation":"97017:10:0","nodeType":"VariableDeclaration","scope":4010,"src":"97002:25:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4006,"name":"bytes","nodeType":"ElementaryTypeName","src":"97002:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"97001:27:0"},"returnParameters":{"id":4009,"nodeType":"ParameterList","parameters":[],"src":"97037:0:0"},"scope":4037,"src":"96980:58:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":4011,"nodeType":"StructuredDocumentation","src":"97044:218:0","text":"Only allows memory writes to offsets [0x00, 0x60) ∪ [min, max) in the current subcontext. If any other\n memory is written to, the test will fail. Can be called multiple times to add more ranges to the set."},"functionSelector":"6d016688","id":4018,"implemented":false,"kind":"function","modifiers":[],"name":"expectSafeMemory","nameLocation":"97276:16:0","nodeType":"FunctionDefinition","parameters":{"id":4016,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4013,"mutability":"mutable","name":"min","nameLocation":"97300:3:0","nodeType":"VariableDeclaration","scope":4018,"src":"97293:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":4012,"name":"uint64","nodeType":"ElementaryTypeName","src":"97293:6:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":4015,"mutability":"mutable","name":"max","nameLocation":"97312:3:0","nodeType":"VariableDeclaration","scope":4018,"src":"97305:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":4014,"name":"uint64","nodeType":"ElementaryTypeName","src":"97305:6:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"97292:24:0"},"returnParameters":{"id":4017,"nodeType":"ParameterList","parameters":[],"src":"97325:0:0"},"scope":4037,"src":"97267:59:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":4019,"nodeType":"StructuredDocumentation","src":"97332:231:0","text":"Only allows memory writes to offsets [0x00, 0x60) ∪ [min, max) in the next created subcontext.\n If any other memory is written to, the test will fail. Can be called multiple times to add more ranges\n to the set."},"functionSelector":"05838bf4","id":4026,"implemented":false,"kind":"function","modifiers":[],"name":"expectSafeMemoryCall","nameLocation":"97577:20:0","nodeType":"FunctionDefinition","parameters":{"id":4024,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4021,"mutability":"mutable","name":"min","nameLocation":"97605:3:0","nodeType":"VariableDeclaration","scope":4026,"src":"97598:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":4020,"name":"uint64","nodeType":"ElementaryTypeName","src":"97598:6:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":4023,"mutability":"mutable","name":"max","nameLocation":"97617:3:0","nodeType":"VariableDeclaration","scope":4026,"src":"97610:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":4022,"name":"uint64","nodeType":"ElementaryTypeName","src":"97610:6:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"97597:24:0"},"returnParameters":{"id":4025,"nodeType":"ParameterList","parameters":[],"src":"97630:0:0"},"scope":4037,"src":"97568:63:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":4027,"nodeType":"StructuredDocumentation","src":"97637:67:0","text":"Marks a test as skipped. Must be called at the top of the test."},"functionSelector":"dd82d13e","id":4032,"implemented":false,"kind":"function","modifiers":[],"name":"skip","nameLocation":"97718:4:0","nodeType":"FunctionDefinition","parameters":{"id":4030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4029,"mutability":"mutable","name":"skipTest","nameLocation":"97728:8:0","nodeType":"VariableDeclaration","scope":4032,"src":"97723:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4028,"name":"bool","nodeType":"ElementaryTypeName","src":"97723:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"97722:15:0"},"returnParameters":{"id":4031,"nodeType":"ParameterList","parameters":[],"src":"97746:0:0"},"scope":4037,"src":"97709:38:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":4033,"nodeType":"StructuredDocumentation","src":"97753:64:0","text":"Stops all safe memory expectation in the current subcontext."},"functionSelector":"0956441b","id":4036,"implemented":false,"kind":"function","modifiers":[],"name":"stopExpectSafeMemory","nameLocation":"97831:20:0","nodeType":"FunctionDefinition","parameters":{"id":4034,"nodeType":"ParameterList","parameters":[],"src":"97851:2:0"},"returnParameters":{"id":4035,"nodeType":"ParameterList","parameters":[],"src":"97862:0:0"},"scope":4037,"src":"97822:41:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":20815,"src":"81977:15888:0","usedErrors":[],"usedEvents":[]},{"abstract":false,"baseContracts":[],"canonicalName":"console","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":12159,"linearizedBaseContracts":[12159],"name":"console","nameLocation":"97909:7:0","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":4043,"mutability":"constant","name":"CONSOLE_ADDRESS","nameLocation":"97940:15:0","nodeType":"VariableDeclaration","scope":12159,"src":"97923:86:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4038,"name":"address","nodeType":"ElementaryTypeName","src":"97923:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"307830303030303030303030303030303030303036333646366537333646366336353265366336663637","id":4041,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"97966:42:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x000000000000000000636F6e736F6c652e6c6f67"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4040,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"97958:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4039,"name":"address","nodeType":"ElementaryTypeName","src":"97958:7:0","typeDescriptions":{}}},"id":4042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"97958:51:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"body":{"id":4059,"nodeType":"Block","src":"98175:62:0","statements":[{"AST":{"nativeSrc":"98194:37:0","nodeType":"YulBlock","src":"98194:37:0","statements":[{"nativeSrc":"98208:13:0","nodeType":"YulAssignment","src":"98208:13:0","value":{"name":"fnIn","nativeSrc":"98217:4:0","nodeType":"YulIdentifier","src":"98217:4:0"},"variableNames":[{"name":"fnOut","nativeSrc":"98208:5:0","nodeType":"YulIdentifier","src":"98208:5:0"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":4049,"isOffset":false,"isSlot":false,"src":"98217:4:0","valueSize":1},{"declaration":4056,"isOffset":false,"isSlot":false,"src":"98208:5:0","valueSize":1}],"id":4058,"nodeType":"InlineAssembly","src":"98185:46:0"}]},"id":4060,"implemented":true,"kind":"function","modifiers":[],"name":"_castLogPayloadViewToPure","nameLocation":"98025:25:0","nodeType":"FunctionDefinition","parameters":{"id":4050,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4049,"mutability":"mutable","name":"fnIn","nameLocation":"98097:4:0","nodeType":"VariableDeclaration","scope":4060,"src":"98060:41:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes) view"},"typeName":{"id":4048,"nodeType":"FunctionTypeName","parameterTypes":{"id":4046,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4045,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4048,"src":"98069:12:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4044,"name":"bytes","nodeType":"ElementaryTypeName","src":"98069:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"98068:14:0"},"returnParameterTypes":{"id":4047,"nodeType":"ParameterList","parameters":[],"src":"98097:0:0"},"src":"98060:41:0","stateMutability":"view","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes) view"},"visibility":"internal"},"visibility":"internal"}],"src":"98050:57:0"},"returnParameters":{"id":4057,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4056,"mutability":"mutable","name":"fnOut","nameLocation":"98168:5:0","nodeType":"VariableDeclaration","scope":4060,"src":"98131:42:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes) pure"},"typeName":{"id":4055,"nodeType":"FunctionTypeName","parameterTypes":{"id":4053,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4052,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4055,"src":"98140:12:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4051,"name":"bytes","nodeType":"ElementaryTypeName","src":"98140:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"98139:14:0"},"returnParameterTypes":{"id":4054,"nodeType":"ParameterList","parameters":[],"src":"98168:0:0"},"src":"98131:42:0","stateMutability":"pure","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes) pure"},"visibility":"internal"},"visibility":"internal"}],"src":"98130:44:0"},"scope":12159,"src":"98016:221:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4071,"nodeType":"Block","src":"98304:72:0","statements":[{"expression":{"arguments":[{"id":4068,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4062,"src":"98361:7:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"arguments":[{"id":4066,"name":"_sendLogPayloadView","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4088,"src":"98340:19:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}],"id":4065,"name":"_castLogPayloadViewToPure","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4060,"src":"98314:25:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_function_internal_view$_t_bytes_memory_ptr_$returns$__$_$returns$_t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$_$","typeString":"function (function (bytes memory) view) pure returns (function (bytes memory) pure)"}},"id":4067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"98314:46:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"98314:55:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4070,"nodeType":"ExpressionStatement","src":"98314:55:0"}]},"id":4072,"implemented":true,"kind":"function","modifiers":[],"name":"_sendLogPayload","nameLocation":"98252:15:0","nodeType":"FunctionDefinition","parameters":{"id":4063,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4062,"mutability":"mutable","name":"payload","nameLocation":"98281:7:0","nodeType":"VariableDeclaration","scope":4072,"src":"98268:20:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4061,"name":"bytes","nodeType":"ElementaryTypeName","src":"98268:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"98267:22:0"},"returnParameters":{"id":4064,"nodeType":"ParameterList","parameters":[],"src":"98304:0:0"},"scope":12159,"src":"98243:133:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4087,"nodeType":"Block","src":"98446:316:0","statements":[{"assignments":[4078],"declarations":[{"constant":false,"id":4078,"mutability":"mutable","name":"payloadLength","nameLocation":"98464:13:0","nodeType":"VariableDeclaration","scope":4087,"src":"98456:21:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4077,"name":"uint256","nodeType":"ElementaryTypeName","src":"98456:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4081,"initialValue":{"expression":{"id":4079,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4074,"src":"98480:7:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"98488:6:0","memberName":"length","nodeType":"MemberAccess","src":"98480:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"98456:38:0"},{"assignments":[4083],"declarations":[{"constant":false,"id":4083,"mutability":"mutable","name":"consoleAddress","nameLocation":"98512:14:0","nodeType":"VariableDeclaration","scope":4087,"src":"98504:22:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4082,"name":"address","nodeType":"ElementaryTypeName","src":"98504:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":4085,"initialValue":{"id":4084,"name":"CONSOLE_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4043,"src":"98529:15:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"98504:40:0"},{"AST":{"nativeSrc":"98606:150:0","nodeType":"YulBlock","src":"98606:150:0","statements":[{"nativeSrc":"98620:36:0","nodeType":"YulVariableDeclaration","src":"98620:36:0","value":{"arguments":[{"name":"payload","nativeSrc":"98644:7:0","nodeType":"YulIdentifier","src":"98644:7:0"},{"kind":"number","nativeSrc":"98653:2:0","nodeType":"YulLiteral","src":"98653:2:0","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"98640:3:0","nodeType":"YulIdentifier","src":"98640:3:0"},"nativeSrc":"98640:16:0","nodeType":"YulFunctionCall","src":"98640:16:0"},"variables":[{"name":"payloadStart","nativeSrc":"98624:12:0","nodeType":"YulTypedName","src":"98624:12:0","type":""}]},{"nativeSrc":"98669:77:0","nodeType":"YulVariableDeclaration","src":"98669:77:0","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"98689:3:0","nodeType":"YulIdentifier","src":"98689:3:0"},"nativeSrc":"98689:5:0","nodeType":"YulFunctionCall","src":"98689:5:0"},{"name":"consoleAddress","nativeSrc":"98696:14:0","nodeType":"YulIdentifier","src":"98696:14:0"},{"name":"payloadStart","nativeSrc":"98712:12:0","nodeType":"YulIdentifier","src":"98712:12:0"},{"name":"payloadLength","nativeSrc":"98726:13:0","nodeType":"YulIdentifier","src":"98726:13:0"},{"kind":"number","nativeSrc":"98741:1:0","nodeType":"YulLiteral","src":"98741:1:0","type":"","value":"0"},{"kind":"number","nativeSrc":"98744:1:0","nodeType":"YulLiteral","src":"98744:1:0","type":"","value":"0"}],"functionName":{"name":"staticcall","nativeSrc":"98678:10:0","nodeType":"YulIdentifier","src":"98678:10:0"},"nativeSrc":"98678:68:0","nodeType":"YulFunctionCall","src":"98678:68:0"},"variables":[{"name":"r","nativeSrc":"98673:1:0","nodeType":"YulTypedName","src":"98673:1:0","type":""}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":4083,"isOffset":false,"isSlot":false,"src":"98696:14:0","valueSize":1},{"declaration":4074,"isOffset":false,"isSlot":false,"src":"98644:7:0","valueSize":1},{"declaration":4078,"isOffset":false,"isSlot":false,"src":"98726:13:0","valueSize":1}],"id":4086,"nodeType":"InlineAssembly","src":"98597:159:0"}]},"id":4088,"implemented":true,"kind":"function","modifiers":[],"name":"_sendLogPayloadView","nameLocation":"98391:19:0","nodeType":"FunctionDefinition","parameters":{"id":4075,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4074,"mutability":"mutable","name":"payload","nameLocation":"98424:7:0","nodeType":"VariableDeclaration","scope":4088,"src":"98411:20:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4073,"name":"bytes","nodeType":"ElementaryTypeName","src":"98411:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"98410:22:0"},"returnParameters":{"id":4076,"nodeType":"ParameterList","parameters":[],"src":"98446:0:0"},"scope":12159,"src":"98382:380:0","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":4098,"nodeType":"Block","src":"98797:66:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672829","id":4094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"98847:7:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_51973ec9d4c1929bdd5b149c064d46aee47e92a7e2bb5f7a20c7b9cfb0d13b39","typeString":"literal_string \"log()\""},"value":"log()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_51973ec9d4c1929bdd5b149c064d46aee47e92a7e2bb5f7a20c7b9cfb0d13b39","typeString":"literal_string \"log()\""}],"expression":{"id":4092,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"98823:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4093,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"98827:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"98823:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4095,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"98823:32:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4091,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"98807:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"98807:49:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4097,"nodeType":"ExpressionStatement","src":"98807:49:0"}]},"id":4099,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"98777:3:0","nodeType":"FunctionDefinition","parameters":{"id":4089,"nodeType":"ParameterList","parameters":[],"src":"98780:2:0"},"returnParameters":{"id":4090,"nodeType":"ParameterList","parameters":[],"src":"98797:0:0"},"scope":12159,"src":"98768:95:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4112,"nodeType":"Block","src":"98907:73:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728696e7429","id":4107,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"98957:10:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_4e0c1d1dcf573259576e2a7e591d366143f88fb7f7e57df09852da9c36797f2e","typeString":"literal_string \"log(int)\""},"value":"log(int)"},{"id":4108,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4101,"src":"98969:2:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4e0c1d1dcf573259576e2a7e591d366143f88fb7f7e57df09852da9c36797f2e","typeString":"literal_string \"log(int)\""},{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":4105,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"98933:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4106,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"98937:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"98933:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"98933:39:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4104,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"98917:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"98917:56:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4111,"nodeType":"ExpressionStatement","src":"98917:56:0"}]},"id":4113,"implemented":true,"kind":"function","modifiers":[],"name":"logInt","nameLocation":"98878:6:0","nodeType":"FunctionDefinition","parameters":{"id":4102,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4101,"mutability":"mutable","name":"p0","nameLocation":"98889:2:0","nodeType":"VariableDeclaration","scope":4113,"src":"98885:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":4100,"name":"int","nodeType":"ElementaryTypeName","src":"98885:3:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"98884:8:0"},"returnParameters":{"id":4103,"nodeType":"ParameterList","parameters":[],"src":"98907:0:0"},"scope":12159,"src":"98869:111:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4126,"nodeType":"Block","src":"99026:74:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e7429","id":4121,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"99076:11:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_f5b1bba92d8f98cf25e27c94d7fc7cbfbae95a49dfe5ab0cdf64ddd7181bb984","typeString":"literal_string \"log(uint)\""},"value":"log(uint)"},{"id":4122,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4115,"src":"99089:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f5b1bba92d8f98cf25e27c94d7fc7cbfbae95a49dfe5ab0cdf64ddd7181bb984","typeString":"literal_string \"log(uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4119,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"99052:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4120,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"99056:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"99052:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"99052:40:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4118,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"99036:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"99036:57:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4125,"nodeType":"ExpressionStatement","src":"99036:57:0"}]},"id":4127,"implemented":true,"kind":"function","modifiers":[],"name":"logUint","nameLocation":"98995:7:0","nodeType":"FunctionDefinition","parameters":{"id":4116,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4115,"mutability":"mutable","name":"p0","nameLocation":"99008:2:0","nodeType":"VariableDeclaration","scope":4127,"src":"99003:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4114,"name":"uint","nodeType":"ElementaryTypeName","src":"99003:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"99002:9:0"},"returnParameters":{"id":4117,"nodeType":"ParameterList","parameters":[],"src":"99026:0:0"},"scope":12159,"src":"98986:114:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4140,"nodeType":"Block","src":"99157:76:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e6729","id":4135,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"99207:13:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50","typeString":"literal_string \"log(string)\""},"value":"log(string)"},{"id":4136,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4129,"src":"99222:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50","typeString":"literal_string \"log(string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":4133,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"99183:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4134,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"99187:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"99183:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"99183:42:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4132,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"99167:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"99167:59:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4139,"nodeType":"ExpressionStatement","src":"99167:59:0"}]},"id":4141,"implemented":true,"kind":"function","modifiers":[],"name":"logString","nameLocation":"99115:9:0","nodeType":"FunctionDefinition","parameters":{"id":4130,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4129,"mutability":"mutable","name":"p0","nameLocation":"99139:2:0","nodeType":"VariableDeclaration","scope":4141,"src":"99125:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4128,"name":"string","nodeType":"ElementaryTypeName","src":"99125:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"99124:18:0"},"returnParameters":{"id":4131,"nodeType":"ParameterList","parameters":[],"src":"99157:0:0"},"scope":12159,"src":"99106:127:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4154,"nodeType":"Block","src":"99279:74:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c29","id":4149,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"99329:11:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_32458eed3feca62a69292a55ca8a755ae4e6cdc57a38d15c298330064467fdd7","typeString":"literal_string \"log(bool)\""},"value":"log(bool)"},{"id":4150,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4143,"src":"99342:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32458eed3feca62a69292a55ca8a755ae4e6cdc57a38d15c298330064467fdd7","typeString":"literal_string \"log(bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4147,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"99305:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4148,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"99309:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"99305:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"99305:40:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4146,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"99289:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"99289:57:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4153,"nodeType":"ExpressionStatement","src":"99289:57:0"}]},"id":4155,"implemented":true,"kind":"function","modifiers":[],"name":"logBool","nameLocation":"99248:7:0","nodeType":"FunctionDefinition","parameters":{"id":4144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4143,"mutability":"mutable","name":"p0","nameLocation":"99261:2:0","nodeType":"VariableDeclaration","scope":4155,"src":"99256:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4142,"name":"bool","nodeType":"ElementaryTypeName","src":"99256:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"99255:9:0"},"returnParameters":{"id":4145,"nodeType":"ParameterList","parameters":[],"src":"99279:0:0"},"scope":12159,"src":"99239:114:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4168,"nodeType":"Block","src":"99405:77:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286164647265737329","id":4163,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"99455:14:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c2ecbc2212ac38c2f9ec89aa5fcef7f532a5db24dbf7cad1f48bc82843b7428","typeString":"literal_string \"log(address)\""},"value":"log(address)"},{"id":4164,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4157,"src":"99471:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2c2ecbc2212ac38c2f9ec89aa5fcef7f532a5db24dbf7cad1f48bc82843b7428","typeString":"literal_string \"log(address)\""},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4161,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"99431:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4162,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"99435:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"99431:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"99431:43:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4160,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"99415:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"99415:60:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4167,"nodeType":"ExpressionStatement","src":"99415:60:0"}]},"id":4169,"implemented":true,"kind":"function","modifiers":[],"name":"logAddress","nameLocation":"99368:10:0","nodeType":"FunctionDefinition","parameters":{"id":4158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4157,"mutability":"mutable","name":"p0","nameLocation":"99387:2:0","nodeType":"VariableDeclaration","scope":4169,"src":"99379:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4156,"name":"address","nodeType":"ElementaryTypeName","src":"99379:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"99378:12:0"},"returnParameters":{"id":4159,"nodeType":"ParameterList","parameters":[],"src":"99405:0:0"},"scope":12159,"src":"99359:123:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4182,"nodeType":"Block","src":"99537:75:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728627974657329","id":4177,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"99587:12:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_0be77f5642494da7d212b92a3472c4f471abb24e17467f41788e7de7915d6238","typeString":"literal_string \"log(bytes)\""},"value":"log(bytes)"},{"id":4178,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4171,"src":"99601:2:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0be77f5642494da7d212b92a3472c4f471abb24e17467f41788e7de7915d6238","typeString":"literal_string \"log(bytes)\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":4175,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"99563:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4176,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"99567:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"99563:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"99563:41:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4174,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"99547:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"99547:58:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4181,"nodeType":"ExpressionStatement","src":"99547:58:0"}]},"id":4183,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes","nameLocation":"99497:8:0","nodeType":"FunctionDefinition","parameters":{"id":4172,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4171,"mutability":"mutable","name":"p0","nameLocation":"99519:2:0","nodeType":"VariableDeclaration","scope":4183,"src":"99506:15:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4170,"name":"bytes","nodeType":"ElementaryTypeName","src":"99506:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"99505:17:0"},"returnParameters":{"id":4173,"nodeType":"ParameterList","parameters":[],"src":"99537:0:0"},"scope":12159,"src":"99488:124:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4196,"nodeType":"Block","src":"99662:76:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733129","id":4191,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"99712:13:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_6e18a1285e3dfba09579e846ff83d5e4ffae1b869c8fc4323752bab794e41041","typeString":"literal_string \"log(bytes1)\""},"value":"log(bytes1)"},{"id":4192,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4185,"src":"99727:2:0","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6e18a1285e3dfba09579e846ff83d5e4ffae1b869c8fc4323752bab794e41041","typeString":"literal_string \"log(bytes1)\""},{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"expression":{"id":4189,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"99688:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4190,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"99692:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"99688:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"99688:42:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4188,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"99672:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"99672:59:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4195,"nodeType":"ExpressionStatement","src":"99672:59:0"}]},"id":4197,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes1","nameLocation":"99627:9:0","nodeType":"FunctionDefinition","parameters":{"id":4186,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4185,"mutability":"mutable","name":"p0","nameLocation":"99644:2:0","nodeType":"VariableDeclaration","scope":4197,"src":"99637:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"typeName":{"id":4184,"name":"bytes1","nodeType":"ElementaryTypeName","src":"99637:6:0","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"visibility":"internal"}],"src":"99636:11:0"},"returnParameters":{"id":4187,"nodeType":"ParameterList","parameters":[],"src":"99662:0:0"},"scope":12159,"src":"99618:120:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4210,"nodeType":"Block","src":"99788:76:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733229","id":4205,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"99838:13:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e9b622960ff3a0e86d35e876bfeba445fab6c5686604aa116c47c1e106921224","typeString":"literal_string \"log(bytes2)\""},"value":"log(bytes2)"},{"id":4206,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4199,"src":"99853:2:0","typeDescriptions":{"typeIdentifier":"t_bytes2","typeString":"bytes2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e9b622960ff3a0e86d35e876bfeba445fab6c5686604aa116c47c1e106921224","typeString":"literal_string \"log(bytes2)\""},{"typeIdentifier":"t_bytes2","typeString":"bytes2"}],"expression":{"id":4203,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"99814:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4204,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"99818:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"99814:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"99814:42:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4202,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"99798:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"99798:59:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4209,"nodeType":"ExpressionStatement","src":"99798:59:0"}]},"id":4211,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes2","nameLocation":"99753:9:0","nodeType":"FunctionDefinition","parameters":{"id":4200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4199,"mutability":"mutable","name":"p0","nameLocation":"99770:2:0","nodeType":"VariableDeclaration","scope":4211,"src":"99763:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes2","typeString":"bytes2"},"typeName":{"id":4198,"name":"bytes2","nodeType":"ElementaryTypeName","src":"99763:6:0","typeDescriptions":{"typeIdentifier":"t_bytes2","typeString":"bytes2"}},"visibility":"internal"}],"src":"99762:11:0"},"returnParameters":{"id":4201,"nodeType":"ParameterList","parameters":[],"src":"99788:0:0"},"scope":12159,"src":"99744:120:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4224,"nodeType":"Block","src":"99914:76:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733329","id":4219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"99964:13:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_2d8349266851a1d92746f90a9696920643311d6bf462d9fa11e69718a636cbee","typeString":"literal_string \"log(bytes3)\""},"value":"log(bytes3)"},{"id":4220,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4213,"src":"99979:2:0","typeDescriptions":{"typeIdentifier":"t_bytes3","typeString":"bytes3"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2d8349266851a1d92746f90a9696920643311d6bf462d9fa11e69718a636cbee","typeString":"literal_string \"log(bytes3)\""},{"typeIdentifier":"t_bytes3","typeString":"bytes3"}],"expression":{"id":4217,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"99940:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4218,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"99944:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"99940:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"99940:42:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4216,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"99924:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"99924:59:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4223,"nodeType":"ExpressionStatement","src":"99924:59:0"}]},"id":4225,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes3","nameLocation":"99879:9:0","nodeType":"FunctionDefinition","parameters":{"id":4214,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4213,"mutability":"mutable","name":"p0","nameLocation":"99896:2:0","nodeType":"VariableDeclaration","scope":4225,"src":"99889:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes3","typeString":"bytes3"},"typeName":{"id":4212,"name":"bytes3","nodeType":"ElementaryTypeName","src":"99889:6:0","typeDescriptions":{"typeIdentifier":"t_bytes3","typeString":"bytes3"}},"visibility":"internal"}],"src":"99888:11:0"},"returnParameters":{"id":4215,"nodeType":"ParameterList","parameters":[],"src":"99914:0:0"},"scope":12159,"src":"99870:120:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4238,"nodeType":"Block","src":"100040:76:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733429","id":4233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"100090:13:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e05f48d17f80c0f06e82dc14f4be9f0f654dde2e722a8d8796ad7e07f5308d55","typeString":"literal_string \"log(bytes4)\""},"value":"log(bytes4)"},{"id":4234,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4227,"src":"100105:2:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e05f48d17f80c0f06e82dc14f4be9f0f654dde2e722a8d8796ad7e07f5308d55","typeString":"literal_string \"log(bytes4)\""},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":4231,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"100066:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4232,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"100070:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"100066:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"100066:42:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4230,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"100050:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"100050:59:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4237,"nodeType":"ExpressionStatement","src":"100050:59:0"}]},"id":4239,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes4","nameLocation":"100005:9:0","nodeType":"FunctionDefinition","parameters":{"id":4228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4227,"mutability":"mutable","name":"p0","nameLocation":"100022:2:0","nodeType":"VariableDeclaration","scope":4239,"src":"100015:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":4226,"name":"bytes4","nodeType":"ElementaryTypeName","src":"100015:6:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"100014:11:0"},"returnParameters":{"id":4229,"nodeType":"ParameterList","parameters":[],"src":"100040:0:0"},"scope":12159,"src":"99996:120:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4252,"nodeType":"Block","src":"100166:76:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733529","id":4247,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"100216:13:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_a684808d222f8a67c08dd13085391d5e9d1825d9fb6e2da44a91b1a07d07401a","typeString":"literal_string \"log(bytes5)\""},"value":"log(bytes5)"},{"id":4248,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4241,"src":"100231:2:0","typeDescriptions":{"typeIdentifier":"t_bytes5","typeString":"bytes5"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a684808d222f8a67c08dd13085391d5e9d1825d9fb6e2da44a91b1a07d07401a","typeString":"literal_string \"log(bytes5)\""},{"typeIdentifier":"t_bytes5","typeString":"bytes5"}],"expression":{"id":4245,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"100192:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4246,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"100196:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"100192:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"100192:42:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4244,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"100176:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"100176:59:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4251,"nodeType":"ExpressionStatement","src":"100176:59:0"}]},"id":4253,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes5","nameLocation":"100131:9:0","nodeType":"FunctionDefinition","parameters":{"id":4242,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4241,"mutability":"mutable","name":"p0","nameLocation":"100148:2:0","nodeType":"VariableDeclaration","scope":4253,"src":"100141:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes5","typeString":"bytes5"},"typeName":{"id":4240,"name":"bytes5","nodeType":"ElementaryTypeName","src":"100141:6:0","typeDescriptions":{"typeIdentifier":"t_bytes5","typeString":"bytes5"}},"visibility":"internal"}],"src":"100140:11:0"},"returnParameters":{"id":4243,"nodeType":"ParameterList","parameters":[],"src":"100166:0:0"},"scope":12159,"src":"100122:120:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4266,"nodeType":"Block","src":"100292:76:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733629","id":4261,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"100342:13:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_ae84a5910824668818be6031303edf0f6f3694b35d5e6f9683950d57ef12d330","typeString":"literal_string \"log(bytes6)\""},"value":"log(bytes6)"},{"id":4262,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4255,"src":"100357:2:0","typeDescriptions":{"typeIdentifier":"t_bytes6","typeString":"bytes6"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ae84a5910824668818be6031303edf0f6f3694b35d5e6f9683950d57ef12d330","typeString":"literal_string \"log(bytes6)\""},{"typeIdentifier":"t_bytes6","typeString":"bytes6"}],"expression":{"id":4259,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"100318:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4260,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"100322:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"100318:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"100318:42:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4258,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"100302:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"100302:59:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4265,"nodeType":"ExpressionStatement","src":"100302:59:0"}]},"id":4267,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes6","nameLocation":"100257:9:0","nodeType":"FunctionDefinition","parameters":{"id":4256,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4255,"mutability":"mutable","name":"p0","nameLocation":"100274:2:0","nodeType":"VariableDeclaration","scope":4267,"src":"100267:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes6","typeString":"bytes6"},"typeName":{"id":4254,"name":"bytes6","nodeType":"ElementaryTypeName","src":"100267:6:0","typeDescriptions":{"typeIdentifier":"t_bytes6","typeString":"bytes6"}},"visibility":"internal"}],"src":"100266:11:0"},"returnParameters":{"id":4257,"nodeType":"ParameterList","parameters":[],"src":"100292:0:0"},"scope":12159,"src":"100248:120:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4280,"nodeType":"Block","src":"100418:76:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733729","id":4275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"100468:13:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_4ed57e28813457436949e4ec0a834b3c8262cd6cebd21953ee0da3400ce2de29","typeString":"literal_string \"log(bytes7)\""},"value":"log(bytes7)"},{"id":4276,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4269,"src":"100483:2:0","typeDescriptions":{"typeIdentifier":"t_bytes7","typeString":"bytes7"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4ed57e28813457436949e4ec0a834b3c8262cd6cebd21953ee0da3400ce2de29","typeString":"literal_string \"log(bytes7)\""},{"typeIdentifier":"t_bytes7","typeString":"bytes7"}],"expression":{"id":4273,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"100444:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4274,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"100448:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"100444:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"100444:42:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4272,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"100428:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"100428:59:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4279,"nodeType":"ExpressionStatement","src":"100428:59:0"}]},"id":4281,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes7","nameLocation":"100383:9:0","nodeType":"FunctionDefinition","parameters":{"id":4270,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4269,"mutability":"mutable","name":"p0","nameLocation":"100400:2:0","nodeType":"VariableDeclaration","scope":4281,"src":"100393:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes7","typeString":"bytes7"},"typeName":{"id":4268,"name":"bytes7","nodeType":"ElementaryTypeName","src":"100393:6:0","typeDescriptions":{"typeIdentifier":"t_bytes7","typeString":"bytes7"}},"visibility":"internal"}],"src":"100392:11:0"},"returnParameters":{"id":4271,"nodeType":"ParameterList","parameters":[],"src":"100418:0:0"},"scope":12159,"src":"100374:120:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4294,"nodeType":"Block","src":"100544:76:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733829","id":4289,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"100594:13:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_4f84252e5b28e1a0064346c7cd13650e2dd6020728ca468281bb2a28b42654b3","typeString":"literal_string \"log(bytes8)\""},"value":"log(bytes8)"},{"id":4290,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4283,"src":"100609:2:0","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4f84252e5b28e1a0064346c7cd13650e2dd6020728ca468281bb2a28b42654b3","typeString":"literal_string \"log(bytes8)\""},{"typeIdentifier":"t_bytes8","typeString":"bytes8"}],"expression":{"id":4287,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"100570:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4288,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"100574:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"100570:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"100570:42:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4286,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"100554:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"100554:59:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4293,"nodeType":"ExpressionStatement","src":"100554:59:0"}]},"id":4295,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes8","nameLocation":"100509:9:0","nodeType":"FunctionDefinition","parameters":{"id":4284,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4283,"mutability":"mutable","name":"p0","nameLocation":"100526:2:0","nodeType":"VariableDeclaration","scope":4295,"src":"100519:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"},"typeName":{"id":4282,"name":"bytes8","nodeType":"ElementaryTypeName","src":"100519:6:0","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"}},"visibility":"internal"}],"src":"100518:11:0"},"returnParameters":{"id":4285,"nodeType":"ParameterList","parameters":[],"src":"100544:0:0"},"scope":12159,"src":"100500:120:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4308,"nodeType":"Block","src":"100670:76:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733929","id":4303,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"100720:13:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_90bd8cd0463fe91d31e59db57ee4cf8d778374c422b4b50e841266d9c2cc6667","typeString":"literal_string \"log(bytes9)\""},"value":"log(bytes9)"},{"id":4304,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4297,"src":"100735:2:0","typeDescriptions":{"typeIdentifier":"t_bytes9","typeString":"bytes9"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_90bd8cd0463fe91d31e59db57ee4cf8d778374c422b4b50e841266d9c2cc6667","typeString":"literal_string \"log(bytes9)\""},{"typeIdentifier":"t_bytes9","typeString":"bytes9"}],"expression":{"id":4301,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"100696:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4302,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"100700:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"100696:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"100696:42:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4300,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"100680:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"100680:59:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4307,"nodeType":"ExpressionStatement","src":"100680:59:0"}]},"id":4309,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes9","nameLocation":"100635:9:0","nodeType":"FunctionDefinition","parameters":{"id":4298,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4297,"mutability":"mutable","name":"p0","nameLocation":"100652:2:0","nodeType":"VariableDeclaration","scope":4309,"src":"100645:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes9","typeString":"bytes9"},"typeName":{"id":4296,"name":"bytes9","nodeType":"ElementaryTypeName","src":"100645:6:0","typeDescriptions":{"typeIdentifier":"t_bytes9","typeString":"bytes9"}},"visibility":"internal"}],"src":"100644:11:0"},"returnParameters":{"id":4299,"nodeType":"ParameterList","parameters":[],"src":"100670:0:0"},"scope":12159,"src":"100626:120:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4322,"nodeType":"Block","src":"100798:77:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313029","id":4317,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"100848:14:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_013d178bb749cf32d0f7243763667360eb91576261efe5ed9be72b4a2800fd66","typeString":"literal_string \"log(bytes10)\""},"value":"log(bytes10)"},{"id":4318,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4311,"src":"100864:2:0","typeDescriptions":{"typeIdentifier":"t_bytes10","typeString":"bytes10"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_013d178bb749cf32d0f7243763667360eb91576261efe5ed9be72b4a2800fd66","typeString":"literal_string \"log(bytes10)\""},{"typeIdentifier":"t_bytes10","typeString":"bytes10"}],"expression":{"id":4315,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"100824:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4316,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"100828:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"100824:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"100824:43:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4314,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"100808:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"100808:60:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4321,"nodeType":"ExpressionStatement","src":"100808:60:0"}]},"id":4323,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes10","nameLocation":"100761:10:0","nodeType":"FunctionDefinition","parameters":{"id":4312,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4311,"mutability":"mutable","name":"p0","nameLocation":"100780:2:0","nodeType":"VariableDeclaration","scope":4323,"src":"100772:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes10","typeString":"bytes10"},"typeName":{"id":4310,"name":"bytes10","nodeType":"ElementaryTypeName","src":"100772:7:0","typeDescriptions":{"typeIdentifier":"t_bytes10","typeString":"bytes10"}},"visibility":"internal"}],"src":"100771:12:0"},"returnParameters":{"id":4313,"nodeType":"ParameterList","parameters":[],"src":"100798:0:0"},"scope":12159,"src":"100752:123:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4336,"nodeType":"Block","src":"100927:77:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313129","id":4331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"100977:14:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_04004a2e5bef8ca2e7ffd661b519aec3d9c1b8d0aa1e11656aab73b2726922d9","typeString":"literal_string \"log(bytes11)\""},"value":"log(bytes11)"},{"id":4332,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4325,"src":"100993:2:0","typeDescriptions":{"typeIdentifier":"t_bytes11","typeString":"bytes11"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_04004a2e5bef8ca2e7ffd661b519aec3d9c1b8d0aa1e11656aab73b2726922d9","typeString":"literal_string \"log(bytes11)\""},{"typeIdentifier":"t_bytes11","typeString":"bytes11"}],"expression":{"id":4329,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"100953:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4330,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"100957:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"100953:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"100953:43:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4328,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"100937:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"100937:60:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4335,"nodeType":"ExpressionStatement","src":"100937:60:0"}]},"id":4337,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes11","nameLocation":"100890:10:0","nodeType":"FunctionDefinition","parameters":{"id":4326,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4325,"mutability":"mutable","name":"p0","nameLocation":"100909:2:0","nodeType":"VariableDeclaration","scope":4337,"src":"100901:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes11","typeString":"bytes11"},"typeName":{"id":4324,"name":"bytes11","nodeType":"ElementaryTypeName","src":"100901:7:0","typeDescriptions":{"typeIdentifier":"t_bytes11","typeString":"bytes11"}},"visibility":"internal"}],"src":"100900:12:0"},"returnParameters":{"id":4327,"nodeType":"ParameterList","parameters":[],"src":"100927:0:0"},"scope":12159,"src":"100881:123:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4350,"nodeType":"Block","src":"101056:77:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313229","id":4345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"101106:14:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_86a06abd704b9e5bab2216d456863046355f2def5304d8276c140d0d454fddf2","typeString":"literal_string \"log(bytes12)\""},"value":"log(bytes12)"},{"id":4346,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4339,"src":"101122:2:0","typeDescriptions":{"typeIdentifier":"t_bytes12","typeString":"bytes12"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_86a06abd704b9e5bab2216d456863046355f2def5304d8276c140d0d454fddf2","typeString":"literal_string \"log(bytes12)\""},{"typeIdentifier":"t_bytes12","typeString":"bytes12"}],"expression":{"id":4343,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"101082:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4344,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"101086:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"101082:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"101082:43:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4342,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"101066:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"101066:60:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4349,"nodeType":"ExpressionStatement","src":"101066:60:0"}]},"id":4351,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes12","nameLocation":"101019:10:0","nodeType":"FunctionDefinition","parameters":{"id":4340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4339,"mutability":"mutable","name":"p0","nameLocation":"101038:2:0","nodeType":"VariableDeclaration","scope":4351,"src":"101030:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes12","typeString":"bytes12"},"typeName":{"id":4338,"name":"bytes12","nodeType":"ElementaryTypeName","src":"101030:7:0","typeDescriptions":{"typeIdentifier":"t_bytes12","typeString":"bytes12"}},"visibility":"internal"}],"src":"101029:12:0"},"returnParameters":{"id":4341,"nodeType":"ParameterList","parameters":[],"src":"101056:0:0"},"scope":12159,"src":"101010:123:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4364,"nodeType":"Block","src":"101185:77:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313329","id":4359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"101235:14:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_94529e34a43ac6de2c3a0df402eee6114eb0f2ad065baefde0230cd3cf90e2ec","typeString":"literal_string \"log(bytes13)\""},"value":"log(bytes13)"},{"id":4360,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4353,"src":"101251:2:0","typeDescriptions":{"typeIdentifier":"t_bytes13","typeString":"bytes13"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_94529e34a43ac6de2c3a0df402eee6114eb0f2ad065baefde0230cd3cf90e2ec","typeString":"literal_string \"log(bytes13)\""},{"typeIdentifier":"t_bytes13","typeString":"bytes13"}],"expression":{"id":4357,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"101211:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4358,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"101215:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"101211:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4361,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"101211:43:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4356,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"101195:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"101195:60:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4363,"nodeType":"ExpressionStatement","src":"101195:60:0"}]},"id":4365,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes13","nameLocation":"101148:10:0","nodeType":"FunctionDefinition","parameters":{"id":4354,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4353,"mutability":"mutable","name":"p0","nameLocation":"101167:2:0","nodeType":"VariableDeclaration","scope":4365,"src":"101159:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes13","typeString":"bytes13"},"typeName":{"id":4352,"name":"bytes13","nodeType":"ElementaryTypeName","src":"101159:7:0","typeDescriptions":{"typeIdentifier":"t_bytes13","typeString":"bytes13"}},"visibility":"internal"}],"src":"101158:12:0"},"returnParameters":{"id":4355,"nodeType":"ParameterList","parameters":[],"src":"101185:0:0"},"scope":12159,"src":"101139:123:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4378,"nodeType":"Block","src":"101314:77:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313429","id":4373,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"101364:14:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_9266f07faf32c88bbdb01ce418243acbc1c63e15d6e3afa16078186ba711f278","typeString":"literal_string \"log(bytes14)\""},"value":"log(bytes14)"},{"id":4374,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4367,"src":"101380:2:0","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9266f07faf32c88bbdb01ce418243acbc1c63e15d6e3afa16078186ba711f278","typeString":"literal_string \"log(bytes14)\""},{"typeIdentifier":"t_bytes14","typeString":"bytes14"}],"expression":{"id":4371,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"101340:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4372,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"101344:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"101340:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"101340:43:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4370,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"101324:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"101324:60:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4377,"nodeType":"ExpressionStatement","src":"101324:60:0"}]},"id":4379,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes14","nameLocation":"101277:10:0","nodeType":"FunctionDefinition","parameters":{"id":4368,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4367,"mutability":"mutable","name":"p0","nameLocation":"101296:2:0","nodeType":"VariableDeclaration","scope":4379,"src":"101288:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"},"typeName":{"id":4366,"name":"bytes14","nodeType":"ElementaryTypeName","src":"101288:7:0","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}},"visibility":"internal"}],"src":"101287:12:0"},"returnParameters":{"id":4369,"nodeType":"ParameterList","parameters":[],"src":"101314:0:0"},"scope":12159,"src":"101268:123:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4392,"nodeType":"Block","src":"101443:77:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313529","id":4387,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"101493:14:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_da9574e0bf3f23e09c3d85c9f5226065bb36281f2a5d78c7e38f6ffd58919606","typeString":"literal_string \"log(bytes15)\""},"value":"log(bytes15)"},{"id":4388,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4381,"src":"101509:2:0","typeDescriptions":{"typeIdentifier":"t_bytes15","typeString":"bytes15"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_da9574e0bf3f23e09c3d85c9f5226065bb36281f2a5d78c7e38f6ffd58919606","typeString":"literal_string \"log(bytes15)\""},{"typeIdentifier":"t_bytes15","typeString":"bytes15"}],"expression":{"id":4385,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"101469:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4386,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"101473:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"101469:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"101469:43:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4384,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"101453:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"101453:60:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4391,"nodeType":"ExpressionStatement","src":"101453:60:0"}]},"id":4393,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes15","nameLocation":"101406:10:0","nodeType":"FunctionDefinition","parameters":{"id":4382,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4381,"mutability":"mutable","name":"p0","nameLocation":"101425:2:0","nodeType":"VariableDeclaration","scope":4393,"src":"101417:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes15","typeString":"bytes15"},"typeName":{"id":4380,"name":"bytes15","nodeType":"ElementaryTypeName","src":"101417:7:0","typeDescriptions":{"typeIdentifier":"t_bytes15","typeString":"bytes15"}},"visibility":"internal"}],"src":"101416:12:0"},"returnParameters":{"id":4383,"nodeType":"ParameterList","parameters":[],"src":"101443:0:0"},"scope":12159,"src":"101397:123:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4406,"nodeType":"Block","src":"101572:77:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313629","id":4401,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"101622:14:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_665c61046af0adc4969f9d2f111b654775bd58f112b63e5ce7dfff29c000e9f3","typeString":"literal_string \"log(bytes16)\""},"value":"log(bytes16)"},{"id":4402,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4395,"src":"101638:2:0","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_665c61046af0adc4969f9d2f111b654775bd58f112b63e5ce7dfff29c000e9f3","typeString":"literal_string \"log(bytes16)\""},{"typeIdentifier":"t_bytes16","typeString":"bytes16"}],"expression":{"id":4399,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"101598:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4400,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"101602:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"101598:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"101598:43:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4398,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"101582:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"101582:60:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4405,"nodeType":"ExpressionStatement","src":"101582:60:0"}]},"id":4407,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes16","nameLocation":"101535:10:0","nodeType":"FunctionDefinition","parameters":{"id":4396,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4395,"mutability":"mutable","name":"p0","nameLocation":"101554:2:0","nodeType":"VariableDeclaration","scope":4407,"src":"101546:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":4394,"name":"bytes16","nodeType":"ElementaryTypeName","src":"101546:7:0","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"}],"src":"101545:12:0"},"returnParameters":{"id":4397,"nodeType":"ParameterList","parameters":[],"src":"101572:0:0"},"scope":12159,"src":"101526:123:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4420,"nodeType":"Block","src":"101701:77:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313729","id":4415,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"101751:14:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_339f673a0c008974259a0022c9b150cc5d1af8c58584412fe373d84bd08d4ea3","typeString":"literal_string \"log(bytes17)\""},"value":"log(bytes17)"},{"id":4416,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4409,"src":"101767:2:0","typeDescriptions":{"typeIdentifier":"t_bytes17","typeString":"bytes17"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_339f673a0c008974259a0022c9b150cc5d1af8c58584412fe373d84bd08d4ea3","typeString":"literal_string \"log(bytes17)\""},{"typeIdentifier":"t_bytes17","typeString":"bytes17"}],"expression":{"id":4413,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"101727:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4414,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"101731:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"101727:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"101727:43:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4412,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"101711:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"101711:60:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4419,"nodeType":"ExpressionStatement","src":"101711:60:0"}]},"id":4421,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes17","nameLocation":"101664:10:0","nodeType":"FunctionDefinition","parameters":{"id":4410,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4409,"mutability":"mutable","name":"p0","nameLocation":"101683:2:0","nodeType":"VariableDeclaration","scope":4421,"src":"101675:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes17","typeString":"bytes17"},"typeName":{"id":4408,"name":"bytes17","nodeType":"ElementaryTypeName","src":"101675:7:0","typeDescriptions":{"typeIdentifier":"t_bytes17","typeString":"bytes17"}},"visibility":"internal"}],"src":"101674:12:0"},"returnParameters":{"id":4411,"nodeType":"ParameterList","parameters":[],"src":"101701:0:0"},"scope":12159,"src":"101655:123:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4434,"nodeType":"Block","src":"101830:77:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313829","id":4429,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"101880:14:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_c4d23d9af6458d5ddc7cb8128a2f36bf147c9db4fe277dfe0fe7be41def62116","typeString":"literal_string \"log(bytes18)\""},"value":"log(bytes18)"},{"id":4430,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4423,"src":"101896:2:0","typeDescriptions":{"typeIdentifier":"t_bytes18","typeString":"bytes18"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c4d23d9af6458d5ddc7cb8128a2f36bf147c9db4fe277dfe0fe7be41def62116","typeString":"literal_string \"log(bytes18)\""},{"typeIdentifier":"t_bytes18","typeString":"bytes18"}],"expression":{"id":4427,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"101856:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4428,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"101860:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"101856:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"101856:43:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4426,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"101840:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"101840:60:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4433,"nodeType":"ExpressionStatement","src":"101840:60:0"}]},"id":4435,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes18","nameLocation":"101793:10:0","nodeType":"FunctionDefinition","parameters":{"id":4424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4423,"mutability":"mutable","name":"p0","nameLocation":"101812:2:0","nodeType":"VariableDeclaration","scope":4435,"src":"101804:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes18","typeString":"bytes18"},"typeName":{"id":4422,"name":"bytes18","nodeType":"ElementaryTypeName","src":"101804:7:0","typeDescriptions":{"typeIdentifier":"t_bytes18","typeString":"bytes18"}},"visibility":"internal"}],"src":"101803:12:0"},"returnParameters":{"id":4425,"nodeType":"ParameterList","parameters":[],"src":"101830:0:0"},"scope":12159,"src":"101784:123:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4448,"nodeType":"Block","src":"101959:77:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313929","id":4443,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"102009:14:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_5e6b5a33524ca650028e2fad735b4ab50285bba37658119d2da303bee98aeada","typeString":"literal_string \"log(bytes19)\""},"value":"log(bytes19)"},{"id":4444,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4437,"src":"102025:2:0","typeDescriptions":{"typeIdentifier":"t_bytes19","typeString":"bytes19"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5e6b5a33524ca650028e2fad735b4ab50285bba37658119d2da303bee98aeada","typeString":"literal_string \"log(bytes19)\""},{"typeIdentifier":"t_bytes19","typeString":"bytes19"}],"expression":{"id":4441,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"101985:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4442,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"101989:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"101985:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"101985:43:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4440,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"101969:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4446,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"101969:60:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4447,"nodeType":"ExpressionStatement","src":"101969:60:0"}]},"id":4449,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes19","nameLocation":"101922:10:0","nodeType":"FunctionDefinition","parameters":{"id":4438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4437,"mutability":"mutable","name":"p0","nameLocation":"101941:2:0","nodeType":"VariableDeclaration","scope":4449,"src":"101933:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes19","typeString":"bytes19"},"typeName":{"id":4436,"name":"bytes19","nodeType":"ElementaryTypeName","src":"101933:7:0","typeDescriptions":{"typeIdentifier":"t_bytes19","typeString":"bytes19"}},"visibility":"internal"}],"src":"101932:12:0"},"returnParameters":{"id":4439,"nodeType":"ParameterList","parameters":[],"src":"101959:0:0"},"scope":12159,"src":"101913:123:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4462,"nodeType":"Block","src":"102088:77:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323029","id":4457,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"102138:14:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_5188e3e9b3f117a223e2e428d0e13d089f3a53913e479000b94b85266ecf8231","typeString":"literal_string \"log(bytes20)\""},"value":"log(bytes20)"},{"id":4458,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4451,"src":"102154:2:0","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5188e3e9b3f117a223e2e428d0e13d089f3a53913e479000b94b85266ecf8231","typeString":"literal_string \"log(bytes20)\""},{"typeIdentifier":"t_bytes20","typeString":"bytes20"}],"expression":{"id":4455,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"102114:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4456,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"102118:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"102114:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"102114:43:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4454,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"102098:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"102098:60:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4461,"nodeType":"ExpressionStatement","src":"102098:60:0"}]},"id":4463,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes20","nameLocation":"102051:10:0","nodeType":"FunctionDefinition","parameters":{"id":4452,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4451,"mutability":"mutable","name":"p0","nameLocation":"102070:2:0","nodeType":"VariableDeclaration","scope":4463,"src":"102062:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"},"typeName":{"id":4450,"name":"bytes20","nodeType":"ElementaryTypeName","src":"102062:7:0","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}},"visibility":"internal"}],"src":"102061:12:0"},"returnParameters":{"id":4453,"nodeType":"ParameterList","parameters":[],"src":"102088:0:0"},"scope":12159,"src":"102042:123:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4476,"nodeType":"Block","src":"102217:77:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323129","id":4471,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"102267:14:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e9da35608192a6b38ad5ef62cf738886973b011b8cdb7e81cdd51b4c3dfe8ad7","typeString":"literal_string \"log(bytes21)\""},"value":"log(bytes21)"},{"id":4472,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4465,"src":"102283:2:0","typeDescriptions":{"typeIdentifier":"t_bytes21","typeString":"bytes21"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e9da35608192a6b38ad5ef62cf738886973b011b8cdb7e81cdd51b4c3dfe8ad7","typeString":"literal_string \"log(bytes21)\""},{"typeIdentifier":"t_bytes21","typeString":"bytes21"}],"expression":{"id":4469,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"102243:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4470,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"102247:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"102243:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"102243:43:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4468,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"102227:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"102227:60:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4475,"nodeType":"ExpressionStatement","src":"102227:60:0"}]},"id":4477,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes21","nameLocation":"102180:10:0","nodeType":"FunctionDefinition","parameters":{"id":4466,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4465,"mutability":"mutable","name":"p0","nameLocation":"102199:2:0","nodeType":"VariableDeclaration","scope":4477,"src":"102191:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes21","typeString":"bytes21"},"typeName":{"id":4464,"name":"bytes21","nodeType":"ElementaryTypeName","src":"102191:7:0","typeDescriptions":{"typeIdentifier":"t_bytes21","typeString":"bytes21"}},"visibility":"internal"}],"src":"102190:12:0"},"returnParameters":{"id":4467,"nodeType":"ParameterList","parameters":[],"src":"102217:0:0"},"scope":12159,"src":"102171:123:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4490,"nodeType":"Block","src":"102346:77:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323229","id":4485,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"102396:14:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_d5fae89c25bed6f12b105f52db0a0ff6f5c8313613e12eccd3059bb7f7ea6575","typeString":"literal_string \"log(bytes22)\""},"value":"log(bytes22)"},{"id":4486,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4479,"src":"102412:2:0","typeDescriptions":{"typeIdentifier":"t_bytes22","typeString":"bytes22"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d5fae89c25bed6f12b105f52db0a0ff6f5c8313613e12eccd3059bb7f7ea6575","typeString":"literal_string \"log(bytes22)\""},{"typeIdentifier":"t_bytes22","typeString":"bytes22"}],"expression":{"id":4483,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"102372:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4484,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"102376:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"102372:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"102372:43:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4482,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"102356:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"102356:60:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4489,"nodeType":"ExpressionStatement","src":"102356:60:0"}]},"id":4491,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes22","nameLocation":"102309:10:0","nodeType":"FunctionDefinition","parameters":{"id":4480,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4479,"mutability":"mutable","name":"p0","nameLocation":"102328:2:0","nodeType":"VariableDeclaration","scope":4491,"src":"102320:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes22","typeString":"bytes22"},"typeName":{"id":4478,"name":"bytes22","nodeType":"ElementaryTypeName","src":"102320:7:0","typeDescriptions":{"typeIdentifier":"t_bytes22","typeString":"bytes22"}},"visibility":"internal"}],"src":"102319:12:0"},"returnParameters":{"id":4481,"nodeType":"ParameterList","parameters":[],"src":"102346:0:0"},"scope":12159,"src":"102300:123:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4504,"nodeType":"Block","src":"102475:77:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323329","id":4499,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"102525:14:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_aba1cf0dcd316c862bc06d4cf532375fed11c1e0897ba81a04ee0b22d3f14061","typeString":"literal_string \"log(bytes23)\""},"value":"log(bytes23)"},{"id":4500,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4493,"src":"102541:2:0","typeDescriptions":{"typeIdentifier":"t_bytes23","typeString":"bytes23"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_aba1cf0dcd316c862bc06d4cf532375fed11c1e0897ba81a04ee0b22d3f14061","typeString":"literal_string \"log(bytes23)\""},{"typeIdentifier":"t_bytes23","typeString":"bytes23"}],"expression":{"id":4497,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"102501:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4498,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"102505:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"102501:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"102501:43:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4496,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"102485:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"102485:60:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4503,"nodeType":"ExpressionStatement","src":"102485:60:0"}]},"id":4505,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes23","nameLocation":"102438:10:0","nodeType":"FunctionDefinition","parameters":{"id":4494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4493,"mutability":"mutable","name":"p0","nameLocation":"102457:2:0","nodeType":"VariableDeclaration","scope":4505,"src":"102449:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes23","typeString":"bytes23"},"typeName":{"id":4492,"name":"bytes23","nodeType":"ElementaryTypeName","src":"102449:7:0","typeDescriptions":{"typeIdentifier":"t_bytes23","typeString":"bytes23"}},"visibility":"internal"}],"src":"102448:12:0"},"returnParameters":{"id":4495,"nodeType":"ParameterList","parameters":[],"src":"102475:0:0"},"scope":12159,"src":"102429:123:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4518,"nodeType":"Block","src":"102604:77:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323429","id":4513,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"102654:14:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_f1b35b3488a5452bceb48624d6ba2a791e58f0e9c0f4b86b8f51186ec7a7edf4","typeString":"literal_string \"log(bytes24)\""},"value":"log(bytes24)"},{"id":4514,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4507,"src":"102670:2:0","typeDescriptions":{"typeIdentifier":"t_bytes24","typeString":"bytes24"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f1b35b3488a5452bceb48624d6ba2a791e58f0e9c0f4b86b8f51186ec7a7edf4","typeString":"literal_string \"log(bytes24)\""},{"typeIdentifier":"t_bytes24","typeString":"bytes24"}],"expression":{"id":4511,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"102630:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4512,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"102634:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"102630:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4515,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"102630:43:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4510,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"102614:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"102614:60:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4517,"nodeType":"ExpressionStatement","src":"102614:60:0"}]},"id":4519,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes24","nameLocation":"102567:10:0","nodeType":"FunctionDefinition","parameters":{"id":4508,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4507,"mutability":"mutable","name":"p0","nameLocation":"102586:2:0","nodeType":"VariableDeclaration","scope":4519,"src":"102578:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes24","typeString":"bytes24"},"typeName":{"id":4506,"name":"bytes24","nodeType":"ElementaryTypeName","src":"102578:7:0","typeDescriptions":{"typeIdentifier":"t_bytes24","typeString":"bytes24"}},"visibility":"internal"}],"src":"102577:12:0"},"returnParameters":{"id":4509,"nodeType":"ParameterList","parameters":[],"src":"102604:0:0"},"scope":12159,"src":"102558:123:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4532,"nodeType":"Block","src":"102733:77:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323529","id":4527,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"102783:14:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_0b84bc580db9be1295ee23dff6122da1f70381c83abf9a74953cca11238eda25","typeString":"literal_string \"log(bytes25)\""},"value":"log(bytes25)"},{"id":4528,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4521,"src":"102799:2:0","typeDescriptions":{"typeIdentifier":"t_bytes25","typeString":"bytes25"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0b84bc580db9be1295ee23dff6122da1f70381c83abf9a74953cca11238eda25","typeString":"literal_string \"log(bytes25)\""},{"typeIdentifier":"t_bytes25","typeString":"bytes25"}],"expression":{"id":4525,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"102759:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4526,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"102763:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"102759:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"102759:43:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4524,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"102743:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"102743:60:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4531,"nodeType":"ExpressionStatement","src":"102743:60:0"}]},"id":4533,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes25","nameLocation":"102696:10:0","nodeType":"FunctionDefinition","parameters":{"id":4522,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4521,"mutability":"mutable","name":"p0","nameLocation":"102715:2:0","nodeType":"VariableDeclaration","scope":4533,"src":"102707:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes25","typeString":"bytes25"},"typeName":{"id":4520,"name":"bytes25","nodeType":"ElementaryTypeName","src":"102707:7:0","typeDescriptions":{"typeIdentifier":"t_bytes25","typeString":"bytes25"}},"visibility":"internal"}],"src":"102706:12:0"},"returnParameters":{"id":4523,"nodeType":"ParameterList","parameters":[],"src":"102733:0:0"},"scope":12159,"src":"102687:123:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4546,"nodeType":"Block","src":"102862:77:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323629","id":4541,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"102912:14:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_f8b149f18dc341f1a56e26c6c24a5233eec3bbb2ab017e9e86e663aae743965b","typeString":"literal_string \"log(bytes26)\""},"value":"log(bytes26)"},{"id":4542,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4535,"src":"102928:2:0","typeDescriptions":{"typeIdentifier":"t_bytes26","typeString":"bytes26"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f8b149f18dc341f1a56e26c6c24a5233eec3bbb2ab017e9e86e663aae743965b","typeString":"literal_string \"log(bytes26)\""},{"typeIdentifier":"t_bytes26","typeString":"bytes26"}],"expression":{"id":4539,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"102888:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4540,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"102892:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"102888:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"102888:43:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4538,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"102872:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"102872:60:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4545,"nodeType":"ExpressionStatement","src":"102872:60:0"}]},"id":4547,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes26","nameLocation":"102825:10:0","nodeType":"FunctionDefinition","parameters":{"id":4536,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4535,"mutability":"mutable","name":"p0","nameLocation":"102844:2:0","nodeType":"VariableDeclaration","scope":4547,"src":"102836:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes26","typeString":"bytes26"},"typeName":{"id":4534,"name":"bytes26","nodeType":"ElementaryTypeName","src":"102836:7:0","typeDescriptions":{"typeIdentifier":"t_bytes26","typeString":"bytes26"}},"visibility":"internal"}],"src":"102835:12:0"},"returnParameters":{"id":4537,"nodeType":"ParameterList","parameters":[],"src":"102862:0:0"},"scope":12159,"src":"102816:123:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4560,"nodeType":"Block","src":"102991:77:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323729","id":4555,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"103041:14:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_3a3757dda92e8e238aa23ff7f6f62e31074f6acccca8986ec1286b5a835236b6","typeString":"literal_string \"log(bytes27)\""},"value":"log(bytes27)"},{"id":4556,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4549,"src":"103057:2:0","typeDescriptions":{"typeIdentifier":"t_bytes27","typeString":"bytes27"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3a3757dda92e8e238aa23ff7f6f62e31074f6acccca8986ec1286b5a835236b6","typeString":"literal_string \"log(bytes27)\""},{"typeIdentifier":"t_bytes27","typeString":"bytes27"}],"expression":{"id":4553,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"103017:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4554,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"103021:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"103017:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"103017:43:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4552,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"103001:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"103001:60:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4559,"nodeType":"ExpressionStatement","src":"103001:60:0"}]},"id":4561,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes27","nameLocation":"102954:10:0","nodeType":"FunctionDefinition","parameters":{"id":4550,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4549,"mutability":"mutable","name":"p0","nameLocation":"102973:2:0","nodeType":"VariableDeclaration","scope":4561,"src":"102965:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes27","typeString":"bytes27"},"typeName":{"id":4548,"name":"bytes27","nodeType":"ElementaryTypeName","src":"102965:7:0","typeDescriptions":{"typeIdentifier":"t_bytes27","typeString":"bytes27"}},"visibility":"internal"}],"src":"102964:12:0"},"returnParameters":{"id":4551,"nodeType":"ParameterList","parameters":[],"src":"102991:0:0"},"scope":12159,"src":"102945:123:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4574,"nodeType":"Block","src":"103120:77:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323829","id":4569,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"103170:14:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_c82aeaee74a6ddec4ccd5cfe60e816752c02c70838f0908bd4a6e82866b3a042","typeString":"literal_string \"log(bytes28)\""},"value":"log(bytes28)"},{"id":4570,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4563,"src":"103186:2:0","typeDescriptions":{"typeIdentifier":"t_bytes28","typeString":"bytes28"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c82aeaee74a6ddec4ccd5cfe60e816752c02c70838f0908bd4a6e82866b3a042","typeString":"literal_string \"log(bytes28)\""},{"typeIdentifier":"t_bytes28","typeString":"bytes28"}],"expression":{"id":4567,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"103146:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4568,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"103150:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"103146:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"103146:43:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4566,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"103130:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"103130:60:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4573,"nodeType":"ExpressionStatement","src":"103130:60:0"}]},"id":4575,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes28","nameLocation":"103083:10:0","nodeType":"FunctionDefinition","parameters":{"id":4564,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4563,"mutability":"mutable","name":"p0","nameLocation":"103102:2:0","nodeType":"VariableDeclaration","scope":4575,"src":"103094:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes28","typeString":"bytes28"},"typeName":{"id":4562,"name":"bytes28","nodeType":"ElementaryTypeName","src":"103094:7:0","typeDescriptions":{"typeIdentifier":"t_bytes28","typeString":"bytes28"}},"visibility":"internal"}],"src":"103093:12:0"},"returnParameters":{"id":4565,"nodeType":"ParameterList","parameters":[],"src":"103120:0:0"},"scope":12159,"src":"103074:123:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4588,"nodeType":"Block","src":"103249:77:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323929","id":4583,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"103299:14:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_4b69c3d5f782ef1bdb62d5bb42d4987f16799030ba447bb153d465bd3a3a5667","typeString":"literal_string \"log(bytes29)\""},"value":"log(bytes29)"},{"id":4584,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4577,"src":"103315:2:0","typeDescriptions":{"typeIdentifier":"t_bytes29","typeString":"bytes29"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4b69c3d5f782ef1bdb62d5bb42d4987f16799030ba447bb153d465bd3a3a5667","typeString":"literal_string \"log(bytes29)\""},{"typeIdentifier":"t_bytes29","typeString":"bytes29"}],"expression":{"id":4581,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"103275:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4582,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"103279:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"103275:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"103275:43:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4580,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"103259:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"103259:60:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4587,"nodeType":"ExpressionStatement","src":"103259:60:0"}]},"id":4589,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes29","nameLocation":"103212:10:0","nodeType":"FunctionDefinition","parameters":{"id":4578,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4577,"mutability":"mutable","name":"p0","nameLocation":"103231:2:0","nodeType":"VariableDeclaration","scope":4589,"src":"103223:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes29","typeString":"bytes29"},"typeName":{"id":4576,"name":"bytes29","nodeType":"ElementaryTypeName","src":"103223:7:0","typeDescriptions":{"typeIdentifier":"t_bytes29","typeString":"bytes29"}},"visibility":"internal"}],"src":"103222:12:0"},"returnParameters":{"id":4579,"nodeType":"ParameterList","parameters":[],"src":"103249:0:0"},"scope":12159,"src":"103203:123:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4602,"nodeType":"Block","src":"103378:77:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573333029","id":4597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"103428:14:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_ee12c4edbd73d98174a6bf3454562c4874f59cb381176b662ca65f625f97d6ad","typeString":"literal_string \"log(bytes30)\""},"value":"log(bytes30)"},{"id":4598,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4591,"src":"103444:2:0","typeDescriptions":{"typeIdentifier":"t_bytes30","typeString":"bytes30"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ee12c4edbd73d98174a6bf3454562c4874f59cb381176b662ca65f625f97d6ad","typeString":"literal_string \"log(bytes30)\""},{"typeIdentifier":"t_bytes30","typeString":"bytes30"}],"expression":{"id":4595,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"103404:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4596,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"103408:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"103404:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"103404:43:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4594,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"103388:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"103388:60:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4601,"nodeType":"ExpressionStatement","src":"103388:60:0"}]},"id":4603,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes30","nameLocation":"103341:10:0","nodeType":"FunctionDefinition","parameters":{"id":4592,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4591,"mutability":"mutable","name":"p0","nameLocation":"103360:2:0","nodeType":"VariableDeclaration","scope":4603,"src":"103352:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes30","typeString":"bytes30"},"typeName":{"id":4590,"name":"bytes30","nodeType":"ElementaryTypeName","src":"103352:7:0","typeDescriptions":{"typeIdentifier":"t_bytes30","typeString":"bytes30"}},"visibility":"internal"}],"src":"103351:12:0"},"returnParameters":{"id":4593,"nodeType":"ParameterList","parameters":[],"src":"103378:0:0"},"scope":12159,"src":"103332:123:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4616,"nodeType":"Block","src":"103507:77:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573333129","id":4611,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"103557:14:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_c2854d92a0707e582e2710f9c9d3f148fdcf7e7da3b4270c2cfa3e223a2c50ce","typeString":"literal_string \"log(bytes31)\""},"value":"log(bytes31)"},{"id":4612,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4605,"src":"103573:2:0","typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c2854d92a0707e582e2710f9c9d3f148fdcf7e7da3b4270c2cfa3e223a2c50ce","typeString":"literal_string \"log(bytes31)\""},{"typeIdentifier":"t_bytes31","typeString":"bytes31"}],"expression":{"id":4609,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"103533:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4610,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"103537:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"103533:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"103533:43:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4608,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"103517:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"103517:60:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4615,"nodeType":"ExpressionStatement","src":"103517:60:0"}]},"id":4617,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes31","nameLocation":"103470:10:0","nodeType":"FunctionDefinition","parameters":{"id":4606,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4605,"mutability":"mutable","name":"p0","nameLocation":"103489:2:0","nodeType":"VariableDeclaration","scope":4617,"src":"103481:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"},"typeName":{"id":4604,"name":"bytes31","nodeType":"ElementaryTypeName","src":"103481:7:0","typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"}},"visibility":"internal"}],"src":"103480:12:0"},"returnParameters":{"id":4607,"nodeType":"ParameterList","parameters":[],"src":"103507:0:0"},"scope":12159,"src":"103461:123:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4630,"nodeType":"Block","src":"103636:77:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573333229","id":4625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"103686:14:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_27b7cf8513ac6b65cae720183e1e60e67f8a9d92c01286c19d51d4e30aa269da","typeString":"literal_string \"log(bytes32)\""},"value":"log(bytes32)"},{"id":4626,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4619,"src":"103702:2:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_27b7cf8513ac6b65cae720183e1e60e67f8a9d92c01286c19d51d4e30aa269da","typeString":"literal_string \"log(bytes32)\""},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":4623,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"103662:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4624,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"103666:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"103662:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"103662:43:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4622,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"103646:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"103646:60:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4629,"nodeType":"ExpressionStatement","src":"103646:60:0"}]},"id":4631,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes32","nameLocation":"103599:10:0","nodeType":"FunctionDefinition","parameters":{"id":4620,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4619,"mutability":"mutable","name":"p0","nameLocation":"103618:2:0","nodeType":"VariableDeclaration","scope":4631,"src":"103610:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4618,"name":"bytes32","nodeType":"ElementaryTypeName","src":"103610:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"103609:12:0"},"returnParameters":{"id":4621,"nodeType":"ParameterList","parameters":[],"src":"103636:0:0"},"scope":12159,"src":"103590:123:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4644,"nodeType":"Block","src":"103755:74:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e7429","id":4639,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"103805:11:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_f5b1bba92d8f98cf25e27c94d7fc7cbfbae95a49dfe5ab0cdf64ddd7181bb984","typeString":"literal_string \"log(uint)\""},"value":"log(uint)"},{"id":4640,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4633,"src":"103818:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f5b1bba92d8f98cf25e27c94d7fc7cbfbae95a49dfe5ab0cdf64ddd7181bb984","typeString":"literal_string \"log(uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4637,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"103781:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4638,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"103785:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"103781:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"103781:40:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4636,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"103765:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"103765:57:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4643,"nodeType":"ExpressionStatement","src":"103765:57:0"}]},"id":4645,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"103728:3:0","nodeType":"FunctionDefinition","parameters":{"id":4634,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4633,"mutability":"mutable","name":"p0","nameLocation":"103737:2:0","nodeType":"VariableDeclaration","scope":4645,"src":"103732:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4632,"name":"uint","nodeType":"ElementaryTypeName","src":"103732:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"103731:9:0"},"returnParameters":{"id":4635,"nodeType":"ParameterList","parameters":[],"src":"103755:0:0"},"scope":12159,"src":"103719:110:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4658,"nodeType":"Block","src":"103870:73:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728696e7429","id":4653,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"103920:10:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_4e0c1d1dcf573259576e2a7e591d366143f88fb7f7e57df09852da9c36797f2e","typeString":"literal_string \"log(int)\""},"value":"log(int)"},{"id":4654,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4647,"src":"103932:2:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4e0c1d1dcf573259576e2a7e591d366143f88fb7f7e57df09852da9c36797f2e","typeString":"literal_string \"log(int)\""},{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":4651,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"103896:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4652,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"103900:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"103896:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4655,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"103896:39:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4650,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"103880:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"103880:56:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4657,"nodeType":"ExpressionStatement","src":"103880:56:0"}]},"id":4659,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"103844:3:0","nodeType":"FunctionDefinition","parameters":{"id":4648,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4647,"mutability":"mutable","name":"p0","nameLocation":"103852:2:0","nodeType":"VariableDeclaration","scope":4659,"src":"103848:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":4646,"name":"int","nodeType":"ElementaryTypeName","src":"103848:3:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"103847:8:0"},"returnParameters":{"id":4649,"nodeType":"ParameterList","parameters":[],"src":"103870:0:0"},"scope":12159,"src":"103835:108:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4672,"nodeType":"Block","src":"103994:76:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e6729","id":4667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"104044:13:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50","typeString":"literal_string \"log(string)\""},"value":"log(string)"},{"id":4668,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4661,"src":"104059:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50","typeString":"literal_string \"log(string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":4665,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"104020:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4666,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"104024:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"104020:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"104020:42:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4664,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"104004:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"104004:59:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4671,"nodeType":"ExpressionStatement","src":"104004:59:0"}]},"id":4673,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"103958:3:0","nodeType":"FunctionDefinition","parameters":{"id":4662,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4661,"mutability":"mutable","name":"p0","nameLocation":"103976:2:0","nodeType":"VariableDeclaration","scope":4673,"src":"103962:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4660,"name":"string","nodeType":"ElementaryTypeName","src":"103962:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"103961:18:0"},"returnParameters":{"id":4663,"nodeType":"ParameterList","parameters":[],"src":"103994:0:0"},"scope":12159,"src":"103949:121:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4686,"nodeType":"Block","src":"104112:74:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c29","id":4681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"104162:11:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_32458eed3feca62a69292a55ca8a755ae4e6cdc57a38d15c298330064467fdd7","typeString":"literal_string \"log(bool)\""},"value":"log(bool)"},{"id":4682,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4675,"src":"104175:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32458eed3feca62a69292a55ca8a755ae4e6cdc57a38d15c298330064467fdd7","typeString":"literal_string \"log(bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4679,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"104138:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4680,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"104142:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"104138:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"104138:40:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4678,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"104122:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"104122:57:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4685,"nodeType":"ExpressionStatement","src":"104122:57:0"}]},"id":4687,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"104085:3:0","nodeType":"FunctionDefinition","parameters":{"id":4676,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4675,"mutability":"mutable","name":"p0","nameLocation":"104094:2:0","nodeType":"VariableDeclaration","scope":4687,"src":"104089:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4674,"name":"bool","nodeType":"ElementaryTypeName","src":"104089:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"104088:9:0"},"returnParameters":{"id":4677,"nodeType":"ParameterList","parameters":[],"src":"104112:0:0"},"scope":12159,"src":"104076:110:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4700,"nodeType":"Block","src":"104231:77:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286164647265737329","id":4695,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"104281:14:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c2ecbc2212ac38c2f9ec89aa5fcef7f532a5db24dbf7cad1f48bc82843b7428","typeString":"literal_string \"log(address)\""},"value":"log(address)"},{"id":4696,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4689,"src":"104297:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2c2ecbc2212ac38c2f9ec89aa5fcef7f532a5db24dbf7cad1f48bc82843b7428","typeString":"literal_string \"log(address)\""},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4693,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"104257:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4694,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"104261:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"104257:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"104257:43:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4692,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"104241:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"104241:60:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4699,"nodeType":"ExpressionStatement","src":"104241:60:0"}]},"id":4701,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"104201:3:0","nodeType":"FunctionDefinition","parameters":{"id":4690,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4689,"mutability":"mutable","name":"p0","nameLocation":"104213:2:0","nodeType":"VariableDeclaration","scope":4701,"src":"104205:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4688,"name":"address","nodeType":"ElementaryTypeName","src":"104205:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"104204:12:0"},"returnParameters":{"id":4691,"nodeType":"ParameterList","parameters":[],"src":"104231:0:0"},"scope":12159,"src":"104192:116:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4717,"nodeType":"Block","src":"104359:83:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e7429","id":4711,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"104409:16:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_6c0f69806b714804c91bc48c3b408dde7373841a86e55c9ea3ee0c5945b4bc32","typeString":"literal_string \"log(uint,uint)\""},"value":"log(uint,uint)"},{"id":4712,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4703,"src":"104427:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4713,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4705,"src":"104431:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6c0f69806b714804c91bc48c3b408dde7373841a86e55c9ea3ee0c5945b4bc32","typeString":"literal_string \"log(uint,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4709,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"104385:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4710,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"104389:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"104385:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"104385:49:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4708,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"104369:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"104369:66:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4716,"nodeType":"ExpressionStatement","src":"104369:66:0"}]},"id":4718,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"104323:3:0","nodeType":"FunctionDefinition","parameters":{"id":4706,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4703,"mutability":"mutable","name":"p0","nameLocation":"104332:2:0","nodeType":"VariableDeclaration","scope":4718,"src":"104327:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4702,"name":"uint","nodeType":"ElementaryTypeName","src":"104327:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4705,"mutability":"mutable","name":"p1","nameLocation":"104341:2:0","nodeType":"VariableDeclaration","scope":4718,"src":"104336:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4704,"name":"uint","nodeType":"ElementaryTypeName","src":"104336:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"104326:18:0"},"returnParameters":{"id":4707,"nodeType":"ParameterList","parameters":[],"src":"104359:0:0"},"scope":12159,"src":"104314:128:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4734,"nodeType":"Block","src":"104502:85:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e6729","id":4728,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"104552:18:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_0fa3f345ed69310615f27bede4ec80a963e2134dd287fa93c82b0c1eefe029a8","typeString":"literal_string \"log(uint,string)\""},"value":"log(uint,string)"},{"id":4729,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4720,"src":"104572:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4730,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4722,"src":"104576:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0fa3f345ed69310615f27bede4ec80a963e2134dd287fa93c82b0c1eefe029a8","typeString":"literal_string \"log(uint,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":4726,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"104528:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4727,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"104532:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"104528:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"104528:51:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4725,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"104512:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"104512:68:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4733,"nodeType":"ExpressionStatement","src":"104512:68:0"}]},"id":4735,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"104457:3:0","nodeType":"FunctionDefinition","parameters":{"id":4723,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4720,"mutability":"mutable","name":"p0","nameLocation":"104466:2:0","nodeType":"VariableDeclaration","scope":4735,"src":"104461:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4719,"name":"uint","nodeType":"ElementaryTypeName","src":"104461:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4722,"mutability":"mutable","name":"p1","nameLocation":"104484:2:0","nodeType":"VariableDeclaration","scope":4735,"src":"104470:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4721,"name":"string","nodeType":"ElementaryTypeName","src":"104470:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"104460:27:0"},"returnParameters":{"id":4724,"nodeType":"ParameterList","parameters":[],"src":"104502:0:0"},"scope":12159,"src":"104448:139:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4751,"nodeType":"Block","src":"104638:83:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c29","id":4745,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"104688:16:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e6dd4ecaf57d2ec6eb02f2f993c53040200a16451fba718b7e8b170825fd172","typeString":"literal_string \"log(uint,bool)\""},"value":"log(uint,bool)"},{"id":4746,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4737,"src":"104706:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4747,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4739,"src":"104710:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1e6dd4ecaf57d2ec6eb02f2f993c53040200a16451fba718b7e8b170825fd172","typeString":"literal_string \"log(uint,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4743,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"104664:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4744,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"104668:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"104664:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"104664:49:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4742,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"104648:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"104648:66:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4750,"nodeType":"ExpressionStatement","src":"104648:66:0"}]},"id":4752,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"104602:3:0","nodeType":"FunctionDefinition","parameters":{"id":4740,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4737,"mutability":"mutable","name":"p0","nameLocation":"104611:2:0","nodeType":"VariableDeclaration","scope":4752,"src":"104606:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4736,"name":"uint","nodeType":"ElementaryTypeName","src":"104606:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4739,"mutability":"mutable","name":"p1","nameLocation":"104620:2:0","nodeType":"VariableDeclaration","scope":4752,"src":"104615:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4738,"name":"bool","nodeType":"ElementaryTypeName","src":"104615:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"104605:18:0"},"returnParameters":{"id":4741,"nodeType":"ParameterList","parameters":[],"src":"104638:0:0"},"scope":12159,"src":"104593:128:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4768,"nodeType":"Block","src":"104775:86:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c6164647265737329","id":4762,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"104825:19:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_58eb860cb5df2c2db83667a7ce62ef14d1323e0f3e304ea316fb64cd2c6fd3b2","typeString":"literal_string \"log(uint,address)\""},"value":"log(uint,address)"},{"id":4763,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4754,"src":"104846:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4764,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4756,"src":"104850:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_58eb860cb5df2c2db83667a7ce62ef14d1323e0f3e304ea316fb64cd2c6fd3b2","typeString":"literal_string \"log(uint,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4760,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"104801:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4761,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"104805:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"104801:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"104801:52:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4759,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"104785:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"104785:69:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4767,"nodeType":"ExpressionStatement","src":"104785:69:0"}]},"id":4769,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"104736:3:0","nodeType":"FunctionDefinition","parameters":{"id":4757,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4754,"mutability":"mutable","name":"p0","nameLocation":"104745:2:0","nodeType":"VariableDeclaration","scope":4769,"src":"104740:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4753,"name":"uint","nodeType":"ElementaryTypeName","src":"104740:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4756,"mutability":"mutable","name":"p1","nameLocation":"104757:2:0","nodeType":"VariableDeclaration","scope":4769,"src":"104749:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4755,"name":"address","nodeType":"ElementaryTypeName","src":"104749:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"104739:21:0"},"returnParameters":{"id":4758,"nodeType":"ParameterList","parameters":[],"src":"104775:0:0"},"scope":12159,"src":"104727:134:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4785,"nodeType":"Block","src":"104921:85:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e7429","id":4779,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"104971:18:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_9710a9d00d210736b1ce918b483e56000e2885769da8118b2fbf9fe33949d3bd","typeString":"literal_string \"log(string,uint)\""},"value":"log(string,uint)"},{"id":4780,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4771,"src":"104991:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":4781,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4773,"src":"104995:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9710a9d00d210736b1ce918b483e56000e2885769da8118b2fbf9fe33949d3bd","typeString":"literal_string \"log(string,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4777,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"104947:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4778,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"104951:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"104947:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"104947:51:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4776,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"104931:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"104931:68:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4784,"nodeType":"ExpressionStatement","src":"104931:68:0"}]},"id":4786,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"104876:3:0","nodeType":"FunctionDefinition","parameters":{"id":4774,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4771,"mutability":"mutable","name":"p0","nameLocation":"104894:2:0","nodeType":"VariableDeclaration","scope":4786,"src":"104880:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4770,"name":"string","nodeType":"ElementaryTypeName","src":"104880:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":4773,"mutability":"mutable","name":"p1","nameLocation":"104903:2:0","nodeType":"VariableDeclaration","scope":4786,"src":"104898:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4772,"name":"uint","nodeType":"ElementaryTypeName","src":"104898:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"104879:27:0"},"returnParameters":{"id":4775,"nodeType":"ParameterList","parameters":[],"src":"104921:0:0"},"scope":12159,"src":"104867:139:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4802,"nodeType":"Block","src":"105065:84:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c696e7429","id":4796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"105115:17:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_af7faa38fc6a1d448f792bf9957cb9716c2b44af94ef8b99830d7b8861283313","typeString":"literal_string \"log(string,int)\""},"value":"log(string,int)"},{"id":4797,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4788,"src":"105134:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":4798,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4790,"src":"105138:2:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_af7faa38fc6a1d448f792bf9957cb9716c2b44af94ef8b99830d7b8861283313","typeString":"literal_string \"log(string,int)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":4794,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"105091:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4795,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"105095:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"105091:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"105091:50:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4793,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"105075:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"105075:67:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4801,"nodeType":"ExpressionStatement","src":"105075:67:0"}]},"id":4803,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"105021:3:0","nodeType":"FunctionDefinition","parameters":{"id":4791,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4788,"mutability":"mutable","name":"p0","nameLocation":"105039:2:0","nodeType":"VariableDeclaration","scope":4803,"src":"105025:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4787,"name":"string","nodeType":"ElementaryTypeName","src":"105025:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":4790,"mutability":"mutable","name":"p1","nameLocation":"105047:2:0","nodeType":"VariableDeclaration","scope":4803,"src":"105043:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":4789,"name":"int","nodeType":"ElementaryTypeName","src":"105043:3:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"105024:26:0"},"returnParameters":{"id":4792,"nodeType":"ParameterList","parameters":[],"src":"105065:0:0"},"scope":12159,"src":"105012:137:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4819,"nodeType":"Block","src":"105218:87:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e6729","id":4813,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"105268:20:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_4b5c4277d556d03fbf5ee534fba41dc13982b44f2fa82f1d48fdd8b5b5b692ac","typeString":"literal_string \"log(string,string)\""},"value":"log(string,string)"},{"id":4814,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4805,"src":"105290:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":4815,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4807,"src":"105294:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4b5c4277d556d03fbf5ee534fba41dc13982b44f2fa82f1d48fdd8b5b5b692ac","typeString":"literal_string \"log(string,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":4811,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"105244:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4812,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"105248:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"105244:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4816,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"105244:53:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4810,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"105228:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4817,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"105228:70:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4818,"nodeType":"ExpressionStatement","src":"105228:70:0"}]},"id":4820,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"105164:3:0","nodeType":"FunctionDefinition","parameters":{"id":4808,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4805,"mutability":"mutable","name":"p0","nameLocation":"105182:2:0","nodeType":"VariableDeclaration","scope":4820,"src":"105168:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4804,"name":"string","nodeType":"ElementaryTypeName","src":"105168:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":4807,"mutability":"mutable","name":"p1","nameLocation":"105200:2:0","nodeType":"VariableDeclaration","scope":4820,"src":"105186:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4806,"name":"string","nodeType":"ElementaryTypeName","src":"105186:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"105167:36:0"},"returnParameters":{"id":4809,"nodeType":"ParameterList","parameters":[],"src":"105218:0:0"},"scope":12159,"src":"105155:150:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4836,"nodeType":"Block","src":"105365:85:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c29","id":4830,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"105415:18:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_c3b556354c088fbb43886eb83c2a04bc7089663f964d22be308197a236f5b870","typeString":"literal_string \"log(string,bool)\""},"value":"log(string,bool)"},{"id":4831,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4822,"src":"105435:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":4832,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4824,"src":"105439:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c3b556354c088fbb43886eb83c2a04bc7089663f964d22be308197a236f5b870","typeString":"literal_string \"log(string,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4828,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"105391:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4829,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"105395:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"105391:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"105391:51:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4827,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"105375:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"105375:68:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4835,"nodeType":"ExpressionStatement","src":"105375:68:0"}]},"id":4837,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"105320:3:0","nodeType":"FunctionDefinition","parameters":{"id":4825,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4822,"mutability":"mutable","name":"p0","nameLocation":"105338:2:0","nodeType":"VariableDeclaration","scope":4837,"src":"105324:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4821,"name":"string","nodeType":"ElementaryTypeName","src":"105324:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":4824,"mutability":"mutable","name":"p1","nameLocation":"105347:2:0","nodeType":"VariableDeclaration","scope":4837,"src":"105342:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4823,"name":"bool","nodeType":"ElementaryTypeName","src":"105342:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"105323:27:0"},"returnParameters":{"id":4826,"nodeType":"ParameterList","parameters":[],"src":"105365:0:0"},"scope":12159,"src":"105311:139:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4853,"nodeType":"Block","src":"105513:88:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c6164647265737329","id":4847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"105563:21:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_319af333460570a1937bf195dd33445c0d0951c59127da6f1f038b9fdce3fd72","typeString":"literal_string \"log(string,address)\""},"value":"log(string,address)"},{"id":4848,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4839,"src":"105586:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":4849,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4841,"src":"105590:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_319af333460570a1937bf195dd33445c0d0951c59127da6f1f038b9fdce3fd72","typeString":"literal_string \"log(string,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4845,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"105539:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4846,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"105543:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"105539:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"105539:54:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4844,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"105523:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4851,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"105523:71:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4852,"nodeType":"ExpressionStatement","src":"105523:71:0"}]},"id":4854,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"105465:3:0","nodeType":"FunctionDefinition","parameters":{"id":4842,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4839,"mutability":"mutable","name":"p0","nameLocation":"105483:2:0","nodeType":"VariableDeclaration","scope":4854,"src":"105469:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4838,"name":"string","nodeType":"ElementaryTypeName","src":"105469:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":4841,"mutability":"mutable","name":"p1","nameLocation":"105495:2:0","nodeType":"VariableDeclaration","scope":4854,"src":"105487:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4840,"name":"address","nodeType":"ElementaryTypeName","src":"105487:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"105468:30:0"},"returnParameters":{"id":4843,"nodeType":"ParameterList","parameters":[],"src":"105513:0:0"},"scope":12159,"src":"105456:145:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4870,"nodeType":"Block","src":"105652:83:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e7429","id":4864,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"105702:16:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_364b6a921e139cbe48176ce2b1f6700c7e568330bc5da26f60350cc33cf2a299","typeString":"literal_string \"log(bool,uint)\""},"value":"log(bool,uint)"},{"id":4865,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4856,"src":"105720:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":4866,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4858,"src":"105724:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_364b6a921e139cbe48176ce2b1f6700c7e568330bc5da26f60350cc33cf2a299","typeString":"literal_string \"log(bool,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4862,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"105678:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4863,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"105682:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"105678:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"105678:49:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4861,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"105662:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"105662:66:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4869,"nodeType":"ExpressionStatement","src":"105662:66:0"}]},"id":4871,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"105616:3:0","nodeType":"FunctionDefinition","parameters":{"id":4859,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4856,"mutability":"mutable","name":"p0","nameLocation":"105625:2:0","nodeType":"VariableDeclaration","scope":4871,"src":"105620:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4855,"name":"bool","nodeType":"ElementaryTypeName","src":"105620:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":4858,"mutability":"mutable","name":"p1","nameLocation":"105634:2:0","nodeType":"VariableDeclaration","scope":4871,"src":"105629:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4857,"name":"uint","nodeType":"ElementaryTypeName","src":"105629:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"105619:18:0"},"returnParameters":{"id":4860,"nodeType":"ParameterList","parameters":[],"src":"105652:0:0"},"scope":12159,"src":"105607:128:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4887,"nodeType":"Block","src":"105795:85:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e6729","id":4881,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"105845:18:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_8feac5256a5b88d7ca0173065b796567ecbc9d75ec022fa0f044eb427f962b84","typeString":"literal_string \"log(bool,string)\""},"value":"log(bool,string)"},{"id":4882,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4873,"src":"105865:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":4883,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4875,"src":"105869:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8feac5256a5b88d7ca0173065b796567ecbc9d75ec022fa0f044eb427f962b84","typeString":"literal_string \"log(bool,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":4879,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"105821:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4880,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"105825:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"105821:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"105821:51:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4878,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"105805:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"105805:68:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4886,"nodeType":"ExpressionStatement","src":"105805:68:0"}]},"id":4888,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"105750:3:0","nodeType":"FunctionDefinition","parameters":{"id":4876,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4873,"mutability":"mutable","name":"p0","nameLocation":"105759:2:0","nodeType":"VariableDeclaration","scope":4888,"src":"105754:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4872,"name":"bool","nodeType":"ElementaryTypeName","src":"105754:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":4875,"mutability":"mutable","name":"p1","nameLocation":"105777:2:0","nodeType":"VariableDeclaration","scope":4888,"src":"105763:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4874,"name":"string","nodeType":"ElementaryTypeName","src":"105763:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"105753:27:0"},"returnParameters":{"id":4877,"nodeType":"ParameterList","parameters":[],"src":"105795:0:0"},"scope":12159,"src":"105741:139:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4904,"nodeType":"Block","src":"105931:83:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c29","id":4898,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"105981:16:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_2a110e83227fbe26ff7524076f2091da3e9aa01d70b93677da53b41d22f4fb15","typeString":"literal_string \"log(bool,bool)\""},"value":"log(bool,bool)"},{"id":4899,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4890,"src":"105999:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":4900,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4892,"src":"106003:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2a110e83227fbe26ff7524076f2091da3e9aa01d70b93677da53b41d22f4fb15","typeString":"literal_string \"log(bool,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4896,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"105957:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4897,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"105961:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"105957:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"105957:49:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4895,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"105941:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"105941:66:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4903,"nodeType":"ExpressionStatement","src":"105941:66:0"}]},"id":4905,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"105895:3:0","nodeType":"FunctionDefinition","parameters":{"id":4893,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4890,"mutability":"mutable","name":"p0","nameLocation":"105904:2:0","nodeType":"VariableDeclaration","scope":4905,"src":"105899:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4889,"name":"bool","nodeType":"ElementaryTypeName","src":"105899:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":4892,"mutability":"mutable","name":"p1","nameLocation":"105913:2:0","nodeType":"VariableDeclaration","scope":4905,"src":"105908:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4891,"name":"bool","nodeType":"ElementaryTypeName","src":"105908:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"105898:18:0"},"returnParameters":{"id":4894,"nodeType":"ParameterList","parameters":[],"src":"105931:0:0"},"scope":12159,"src":"105886:128:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4921,"nodeType":"Block","src":"106068:86:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c6164647265737329","id":4915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"106118:19:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_853c4849443241e2249adafa4f69c8bb738b0f17c7a0a9d9997450cd71db4d55","typeString":"literal_string \"log(bool,address)\""},"value":"log(bool,address)"},{"id":4916,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4907,"src":"106139:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":4917,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4909,"src":"106143:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_853c4849443241e2249adafa4f69c8bb738b0f17c7a0a9d9997450cd71db4d55","typeString":"literal_string \"log(bool,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4913,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"106094:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4914,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"106098:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"106094:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"106094:52:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4912,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"106078:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"106078:69:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4920,"nodeType":"ExpressionStatement","src":"106078:69:0"}]},"id":4922,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"106029:3:0","nodeType":"FunctionDefinition","parameters":{"id":4910,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4907,"mutability":"mutable","name":"p0","nameLocation":"106038:2:0","nodeType":"VariableDeclaration","scope":4922,"src":"106033:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4906,"name":"bool","nodeType":"ElementaryTypeName","src":"106033:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":4909,"mutability":"mutable","name":"p1","nameLocation":"106050:2:0","nodeType":"VariableDeclaration","scope":4922,"src":"106042:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4908,"name":"address","nodeType":"ElementaryTypeName","src":"106042:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"106032:21:0"},"returnParameters":{"id":4911,"nodeType":"ParameterList","parameters":[],"src":"106068:0:0"},"scope":12159,"src":"106020:134:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4938,"nodeType":"Block","src":"106208:86:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e7429","id":4932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"106258:19:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_2243cfa3a64f0f85afef83b08ba731ebd8a4b1053fdc66eb414b069452c9f133","typeString":"literal_string \"log(address,uint)\""},"value":"log(address,uint)"},{"id":4933,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4924,"src":"106279:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4934,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4926,"src":"106283:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2243cfa3a64f0f85afef83b08ba731ebd8a4b1053fdc66eb414b069452c9f133","typeString":"literal_string \"log(address,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4930,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"106234:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4931,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"106238:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"106234:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"106234:52:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4929,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"106218:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"106218:69:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4937,"nodeType":"ExpressionStatement","src":"106218:69:0"}]},"id":4939,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"106169:3:0","nodeType":"FunctionDefinition","parameters":{"id":4927,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4924,"mutability":"mutable","name":"p0","nameLocation":"106181:2:0","nodeType":"VariableDeclaration","scope":4939,"src":"106173:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4923,"name":"address","nodeType":"ElementaryTypeName","src":"106173:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4926,"mutability":"mutable","name":"p1","nameLocation":"106190:2:0","nodeType":"VariableDeclaration","scope":4939,"src":"106185:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4925,"name":"uint","nodeType":"ElementaryTypeName","src":"106185:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"106172:21:0"},"returnParameters":{"id":4928,"nodeType":"ParameterList","parameters":[],"src":"106208:0:0"},"scope":12159,"src":"106160:134:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4955,"nodeType":"Block","src":"106357:88:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e6729","id":4949,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"106407:21:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_759f86bbdd0758679ecefbd32ea620068b2339dddd9e45ee0fa567ee6c81f0ab","typeString":"literal_string \"log(address,string)\""},"value":"log(address,string)"},{"id":4950,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4941,"src":"106430:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4951,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4943,"src":"106434:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_759f86bbdd0758679ecefbd32ea620068b2339dddd9e45ee0fa567ee6c81f0ab","typeString":"literal_string \"log(address,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":4947,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"106383:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4948,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"106387:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"106383:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"106383:54:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4946,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"106367:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"106367:71:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4954,"nodeType":"ExpressionStatement","src":"106367:71:0"}]},"id":4956,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"106309:3:0","nodeType":"FunctionDefinition","parameters":{"id":4944,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4941,"mutability":"mutable","name":"p0","nameLocation":"106321:2:0","nodeType":"VariableDeclaration","scope":4956,"src":"106313:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4940,"name":"address","nodeType":"ElementaryTypeName","src":"106313:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4943,"mutability":"mutable","name":"p1","nameLocation":"106339:2:0","nodeType":"VariableDeclaration","scope":4956,"src":"106325:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4942,"name":"string","nodeType":"ElementaryTypeName","src":"106325:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"106312:30:0"},"returnParameters":{"id":4945,"nodeType":"ParameterList","parameters":[],"src":"106357:0:0"},"scope":12159,"src":"106300:145:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4972,"nodeType":"Block","src":"106499:86:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c29","id":4966,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"106549:19:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_75b605d31a3bf49c8d814696c7c66216d3a7e81348c450078f032e425592f72b","typeString":"literal_string \"log(address,bool)\""},"value":"log(address,bool)"},{"id":4967,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4958,"src":"106570:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4968,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4960,"src":"106574:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_75b605d31a3bf49c8d814696c7c66216d3a7e81348c450078f032e425592f72b","typeString":"literal_string \"log(address,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4964,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"106525:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4965,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"106529:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"106525:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"106525:52:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4963,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"106509:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"106509:69:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4971,"nodeType":"ExpressionStatement","src":"106509:69:0"}]},"id":4973,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"106460:3:0","nodeType":"FunctionDefinition","parameters":{"id":4961,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4958,"mutability":"mutable","name":"p0","nameLocation":"106472:2:0","nodeType":"VariableDeclaration","scope":4973,"src":"106464:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4957,"name":"address","nodeType":"ElementaryTypeName","src":"106464:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4960,"mutability":"mutable","name":"p1","nameLocation":"106481:2:0","nodeType":"VariableDeclaration","scope":4973,"src":"106476:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4959,"name":"bool","nodeType":"ElementaryTypeName","src":"106476:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"106463:21:0"},"returnParameters":{"id":4962,"nodeType":"ParameterList","parameters":[],"src":"106499:0:0"},"scope":12159,"src":"106451:134:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4989,"nodeType":"Block","src":"106642:89:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c6164647265737329","id":4983,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"106692:22:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_daf0d4aa9a5679e832ac921da67b43572b4326ee2565442d3ed255b48cfb5161","typeString":"literal_string \"log(address,address)\""},"value":"log(address,address)"},{"id":4984,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4975,"src":"106716:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4985,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4977,"src":"106720:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_daf0d4aa9a5679e832ac921da67b43572b4326ee2565442d3ed255b48cfb5161","typeString":"literal_string \"log(address,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4981,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"106668:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4982,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"106672:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"106668:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4986,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"106668:55:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4980,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"106652:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"106652:72:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4988,"nodeType":"ExpressionStatement","src":"106652:72:0"}]},"id":4990,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"106600:3:0","nodeType":"FunctionDefinition","parameters":{"id":4978,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4975,"mutability":"mutable","name":"p0","nameLocation":"106612:2:0","nodeType":"VariableDeclaration","scope":4990,"src":"106604:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4974,"name":"address","nodeType":"ElementaryTypeName","src":"106604:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4977,"mutability":"mutable","name":"p1","nameLocation":"106624:2:0","nodeType":"VariableDeclaration","scope":4990,"src":"106616:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4976,"name":"address","nodeType":"ElementaryTypeName","src":"106616:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"106603:24:0"},"returnParameters":{"id":4979,"nodeType":"ParameterList","parameters":[],"src":"106642:0:0"},"scope":12159,"src":"106591:140:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5009,"nodeType":"Block","src":"106791:92:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e742c75696e7429","id":5002,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"106841:21:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e7820a7400e33a94b0ae6f00adee99b97ebef8b77c9e38dd555c2f6b541dee17","typeString":"literal_string \"log(uint,uint,uint)\""},"value":"log(uint,uint,uint)"},{"id":5003,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4992,"src":"106864:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5004,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4994,"src":"106868:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5005,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4996,"src":"106872:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e7820a7400e33a94b0ae6f00adee99b97ebef8b77c9e38dd555c2f6b541dee17","typeString":"literal_string \"log(uint,uint,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5000,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"106817:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5001,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"106821:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"106817:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"106817:58:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4999,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"106801:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5007,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"106801:75:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5008,"nodeType":"ExpressionStatement","src":"106801:75:0"}]},"id":5010,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"106746:3:0","nodeType":"FunctionDefinition","parameters":{"id":4997,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4992,"mutability":"mutable","name":"p0","nameLocation":"106755:2:0","nodeType":"VariableDeclaration","scope":5010,"src":"106750:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4991,"name":"uint","nodeType":"ElementaryTypeName","src":"106750:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4994,"mutability":"mutable","name":"p1","nameLocation":"106764:2:0","nodeType":"VariableDeclaration","scope":5010,"src":"106759:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4993,"name":"uint","nodeType":"ElementaryTypeName","src":"106759:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4996,"mutability":"mutable","name":"p2","nameLocation":"106773:2:0","nodeType":"VariableDeclaration","scope":5010,"src":"106768:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4995,"name":"uint","nodeType":"ElementaryTypeName","src":"106768:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"106749:27:0"},"returnParameters":{"id":4998,"nodeType":"ParameterList","parameters":[],"src":"106791:0:0"},"scope":12159,"src":"106737:146:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5029,"nodeType":"Block","src":"106952:94:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e742c737472696e6729","id":5022,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"107002:23:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_7d690ee617a4217569e96b85c815115b0eee15407adaa46490ed719a45458699","typeString":"literal_string \"log(uint,uint,string)\""},"value":"log(uint,uint,string)"},{"id":5023,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5012,"src":"107027:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5024,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5014,"src":"107031:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5025,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5016,"src":"107035:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7d690ee617a4217569e96b85c815115b0eee15407adaa46490ed719a45458699","typeString":"literal_string \"log(uint,uint,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":5020,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"106978:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5021,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"106982:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"106978:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"106978:60:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5019,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"106962:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"106962:77:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5028,"nodeType":"ExpressionStatement","src":"106962:77:0"}]},"id":5030,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"106898:3:0","nodeType":"FunctionDefinition","parameters":{"id":5017,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5012,"mutability":"mutable","name":"p0","nameLocation":"106907:2:0","nodeType":"VariableDeclaration","scope":5030,"src":"106902:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5011,"name":"uint","nodeType":"ElementaryTypeName","src":"106902:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5014,"mutability":"mutable","name":"p1","nameLocation":"106916:2:0","nodeType":"VariableDeclaration","scope":5030,"src":"106911:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5013,"name":"uint","nodeType":"ElementaryTypeName","src":"106911:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5016,"mutability":"mutable","name":"p2","nameLocation":"106934:2:0","nodeType":"VariableDeclaration","scope":5030,"src":"106920:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5015,"name":"string","nodeType":"ElementaryTypeName","src":"106920:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"106901:36:0"},"returnParameters":{"id":5018,"nodeType":"ParameterList","parameters":[],"src":"106952:0:0"},"scope":12159,"src":"106889:157:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5049,"nodeType":"Block","src":"107106:92:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e742c626f6f6c29","id":5042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"107156:21:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_67570ff704783f5d282b26317dc28aeb4fe23c085020ec6e580604c709916fa8","typeString":"literal_string \"log(uint,uint,bool)\""},"value":"log(uint,uint,bool)"},{"id":5043,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5032,"src":"107179:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5044,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5034,"src":"107183:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5045,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5036,"src":"107187:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_67570ff704783f5d282b26317dc28aeb4fe23c085020ec6e580604c709916fa8","typeString":"literal_string \"log(uint,uint,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":5040,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"107132:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5041,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"107136:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"107132:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"107132:58:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5039,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"107116:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"107116:75:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5048,"nodeType":"ExpressionStatement","src":"107116:75:0"}]},"id":5050,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"107061:3:0","nodeType":"FunctionDefinition","parameters":{"id":5037,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5032,"mutability":"mutable","name":"p0","nameLocation":"107070:2:0","nodeType":"VariableDeclaration","scope":5050,"src":"107065:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5031,"name":"uint","nodeType":"ElementaryTypeName","src":"107065:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5034,"mutability":"mutable","name":"p1","nameLocation":"107079:2:0","nodeType":"VariableDeclaration","scope":5050,"src":"107074:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5033,"name":"uint","nodeType":"ElementaryTypeName","src":"107074:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5036,"mutability":"mutable","name":"p2","nameLocation":"107088:2:0","nodeType":"VariableDeclaration","scope":5050,"src":"107083:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5035,"name":"bool","nodeType":"ElementaryTypeName","src":"107083:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"107064:27:0"},"returnParameters":{"id":5038,"nodeType":"ParameterList","parameters":[],"src":"107106:0:0"},"scope":12159,"src":"107052:146:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5069,"nodeType":"Block","src":"107261:95:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e742c6164647265737329","id":5062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"107311:24:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_be33491b8b53b7f3deae2959d1f4b0a22e6967a778c50f03dc188de84a207616","typeString":"literal_string \"log(uint,uint,address)\""},"value":"log(uint,uint,address)"},{"id":5063,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5052,"src":"107337:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5064,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5054,"src":"107341:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5065,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5056,"src":"107345:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_be33491b8b53b7f3deae2959d1f4b0a22e6967a778c50f03dc188de84a207616","typeString":"literal_string \"log(uint,uint,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5060,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"107287:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5061,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"107291:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"107287:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"107287:61:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5059,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"107271:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"107271:78:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5068,"nodeType":"ExpressionStatement","src":"107271:78:0"}]},"id":5070,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"107213:3:0","nodeType":"FunctionDefinition","parameters":{"id":5057,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5052,"mutability":"mutable","name":"p0","nameLocation":"107222:2:0","nodeType":"VariableDeclaration","scope":5070,"src":"107217:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5051,"name":"uint","nodeType":"ElementaryTypeName","src":"107217:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5054,"mutability":"mutable","name":"p1","nameLocation":"107231:2:0","nodeType":"VariableDeclaration","scope":5070,"src":"107226:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5053,"name":"uint","nodeType":"ElementaryTypeName","src":"107226:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5056,"mutability":"mutable","name":"p2","nameLocation":"107243:2:0","nodeType":"VariableDeclaration","scope":5070,"src":"107235:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5055,"name":"address","nodeType":"ElementaryTypeName","src":"107235:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"107216:30:0"},"returnParameters":{"id":5058,"nodeType":"ParameterList","parameters":[],"src":"107261:0:0"},"scope":12159,"src":"107204:152:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5089,"nodeType":"Block","src":"107425:94:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e672c75696e7429","id":5082,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"107475:23:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_5b6de83ff0d95cd44df8bb8bfd95aa0a6291cab3b8502d85b1dcfd35a64c81cd","typeString":"literal_string \"log(uint,string,uint)\""},"value":"log(uint,string,uint)"},{"id":5083,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5072,"src":"107500:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5084,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5074,"src":"107504:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5085,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5076,"src":"107508:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5b6de83ff0d95cd44df8bb8bfd95aa0a6291cab3b8502d85b1dcfd35a64c81cd","typeString":"literal_string \"log(uint,string,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5080,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"107451:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5081,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"107455:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"107451:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"107451:60:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5079,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"107435:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"107435:77:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5088,"nodeType":"ExpressionStatement","src":"107435:77:0"}]},"id":5090,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"107371:3:0","nodeType":"FunctionDefinition","parameters":{"id":5077,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5072,"mutability":"mutable","name":"p0","nameLocation":"107380:2:0","nodeType":"VariableDeclaration","scope":5090,"src":"107375:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5071,"name":"uint","nodeType":"ElementaryTypeName","src":"107375:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5074,"mutability":"mutable","name":"p1","nameLocation":"107398:2:0","nodeType":"VariableDeclaration","scope":5090,"src":"107384:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5073,"name":"string","nodeType":"ElementaryTypeName","src":"107384:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5076,"mutability":"mutable","name":"p2","nameLocation":"107407:2:0","nodeType":"VariableDeclaration","scope":5090,"src":"107402:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5075,"name":"uint","nodeType":"ElementaryTypeName","src":"107402:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"107374:36:0"},"returnParameters":{"id":5078,"nodeType":"ParameterList","parameters":[],"src":"107425:0:0"},"scope":12159,"src":"107362:157:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5109,"nodeType":"Block","src":"107597:96:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e672c737472696e6729","id":5102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"107647:25:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_3f57c295245f8891b303347a08039155dde08dde601649242724a0ce876bcc65","typeString":"literal_string \"log(uint,string,string)\""},"value":"log(uint,string,string)"},{"id":5103,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5092,"src":"107674:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5104,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5094,"src":"107678:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5105,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5096,"src":"107682:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3f57c295245f8891b303347a08039155dde08dde601649242724a0ce876bcc65","typeString":"literal_string \"log(uint,string,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":5100,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"107623:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5101,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"107627:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"107623:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"107623:62:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5099,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"107607:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"107607:79:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5108,"nodeType":"ExpressionStatement","src":"107607:79:0"}]},"id":5110,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"107534:3:0","nodeType":"FunctionDefinition","parameters":{"id":5097,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5092,"mutability":"mutable","name":"p0","nameLocation":"107543:2:0","nodeType":"VariableDeclaration","scope":5110,"src":"107538:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5091,"name":"uint","nodeType":"ElementaryTypeName","src":"107538:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5094,"mutability":"mutable","name":"p1","nameLocation":"107561:2:0","nodeType":"VariableDeclaration","scope":5110,"src":"107547:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5093,"name":"string","nodeType":"ElementaryTypeName","src":"107547:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5096,"mutability":"mutable","name":"p2","nameLocation":"107579:2:0","nodeType":"VariableDeclaration","scope":5110,"src":"107565:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5095,"name":"string","nodeType":"ElementaryTypeName","src":"107565:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"107537:45:0"},"returnParameters":{"id":5098,"nodeType":"ParameterList","parameters":[],"src":"107597:0:0"},"scope":12159,"src":"107525:168:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5129,"nodeType":"Block","src":"107762:94:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e672c626f6f6c29","id":5122,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"107812:23:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_46a7d0ce13c2c26d158d9defa8ce488dbeb81d3c852592fb370bd45953199485","typeString":"literal_string \"log(uint,string,bool)\""},"value":"log(uint,string,bool)"},{"id":5123,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5112,"src":"107837:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5124,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5114,"src":"107841:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5125,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5116,"src":"107845:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_46a7d0ce13c2c26d158d9defa8ce488dbeb81d3c852592fb370bd45953199485","typeString":"literal_string \"log(uint,string,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":5120,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"107788:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5121,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"107792:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"107788:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"107788:60:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5119,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"107772:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"107772:77:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5128,"nodeType":"ExpressionStatement","src":"107772:77:0"}]},"id":5130,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"107708:3:0","nodeType":"FunctionDefinition","parameters":{"id":5117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5112,"mutability":"mutable","name":"p0","nameLocation":"107717:2:0","nodeType":"VariableDeclaration","scope":5130,"src":"107712:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5111,"name":"uint","nodeType":"ElementaryTypeName","src":"107712:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5114,"mutability":"mutable","name":"p1","nameLocation":"107735:2:0","nodeType":"VariableDeclaration","scope":5130,"src":"107721:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5113,"name":"string","nodeType":"ElementaryTypeName","src":"107721:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5116,"mutability":"mutable","name":"p2","nameLocation":"107744:2:0","nodeType":"VariableDeclaration","scope":5130,"src":"107739:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5115,"name":"bool","nodeType":"ElementaryTypeName","src":"107739:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"107711:36:0"},"returnParameters":{"id":5118,"nodeType":"ParameterList","parameters":[],"src":"107762:0:0"},"scope":12159,"src":"107699:157:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5149,"nodeType":"Block","src":"107928:97:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e672c6164647265737329","id":5142,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"107978:26:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_1f90f24a472e5198a9eef41600323c8a476ef0a1db1496125f7d053a74d474ac","typeString":"literal_string \"log(uint,string,address)\""},"value":"log(uint,string,address)"},{"id":5143,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5132,"src":"108006:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5144,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5134,"src":"108010:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5145,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5136,"src":"108014:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1f90f24a472e5198a9eef41600323c8a476ef0a1db1496125f7d053a74d474ac","typeString":"literal_string \"log(uint,string,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5140,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"107954:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5141,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"107958:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"107954:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"107954:63:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5139,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"107938:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"107938:80:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5148,"nodeType":"ExpressionStatement","src":"107938:80:0"}]},"id":5150,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"107871:3:0","nodeType":"FunctionDefinition","parameters":{"id":5137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5132,"mutability":"mutable","name":"p0","nameLocation":"107880:2:0","nodeType":"VariableDeclaration","scope":5150,"src":"107875:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5131,"name":"uint","nodeType":"ElementaryTypeName","src":"107875:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5134,"mutability":"mutable","name":"p1","nameLocation":"107898:2:0","nodeType":"VariableDeclaration","scope":5150,"src":"107884:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5133,"name":"string","nodeType":"ElementaryTypeName","src":"107884:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5136,"mutability":"mutable","name":"p2","nameLocation":"107910:2:0","nodeType":"VariableDeclaration","scope":5150,"src":"107902:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5135,"name":"address","nodeType":"ElementaryTypeName","src":"107902:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"107874:39:0"},"returnParameters":{"id":5138,"nodeType":"ParameterList","parameters":[],"src":"107928:0:0"},"scope":12159,"src":"107862:163:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5169,"nodeType":"Block","src":"108085:92:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c2c75696e7429","id":5162,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"108135:21:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_5a4d9922ab81f1126dafac21c1ce3fb483db2e4898341fe0758315eb5f3054d6","typeString":"literal_string \"log(uint,bool,uint)\""},"value":"log(uint,bool,uint)"},{"id":5163,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5152,"src":"108158:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5164,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5154,"src":"108162:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":5165,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5156,"src":"108166:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5a4d9922ab81f1126dafac21c1ce3fb483db2e4898341fe0758315eb5f3054d6","typeString":"literal_string \"log(uint,bool,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5160,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"108111:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5161,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"108115:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"108111:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"108111:58:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5159,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"108095:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"108095:75:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5168,"nodeType":"ExpressionStatement","src":"108095:75:0"}]},"id":5170,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"108040:3:0","nodeType":"FunctionDefinition","parameters":{"id":5157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5152,"mutability":"mutable","name":"p0","nameLocation":"108049:2:0","nodeType":"VariableDeclaration","scope":5170,"src":"108044:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5151,"name":"uint","nodeType":"ElementaryTypeName","src":"108044:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5154,"mutability":"mutable","name":"p1","nameLocation":"108058:2:0","nodeType":"VariableDeclaration","scope":5170,"src":"108053:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5153,"name":"bool","nodeType":"ElementaryTypeName","src":"108053:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5156,"mutability":"mutable","name":"p2","nameLocation":"108067:2:0","nodeType":"VariableDeclaration","scope":5170,"src":"108062:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5155,"name":"uint","nodeType":"ElementaryTypeName","src":"108062:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"108043:27:0"},"returnParameters":{"id":5158,"nodeType":"ParameterList","parameters":[],"src":"108085:0:0"},"scope":12159,"src":"108031:146:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5189,"nodeType":"Block","src":"108246:94:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c2c737472696e6729","id":5182,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"108296:23:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_8b0e14fe247223cbba6a19a2fac250db70b4f126d0f3f63ac9c3f080885b9f82","typeString":"literal_string \"log(uint,bool,string)\""},"value":"log(uint,bool,string)"},{"id":5183,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5172,"src":"108321:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5184,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5174,"src":"108325:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":5185,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5176,"src":"108329:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8b0e14fe247223cbba6a19a2fac250db70b4f126d0f3f63ac9c3f080885b9f82","typeString":"literal_string \"log(uint,bool,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":5180,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"108272:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5181,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"108276:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"108272:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"108272:60:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5179,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"108256:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"108256:77:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5188,"nodeType":"ExpressionStatement","src":"108256:77:0"}]},"id":5190,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"108192:3:0","nodeType":"FunctionDefinition","parameters":{"id":5177,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5172,"mutability":"mutable","name":"p0","nameLocation":"108201:2:0","nodeType":"VariableDeclaration","scope":5190,"src":"108196:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5171,"name":"uint","nodeType":"ElementaryTypeName","src":"108196:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5174,"mutability":"mutable","name":"p1","nameLocation":"108210:2:0","nodeType":"VariableDeclaration","scope":5190,"src":"108205:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5173,"name":"bool","nodeType":"ElementaryTypeName","src":"108205:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5176,"mutability":"mutable","name":"p2","nameLocation":"108228:2:0","nodeType":"VariableDeclaration","scope":5190,"src":"108214:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5175,"name":"string","nodeType":"ElementaryTypeName","src":"108214:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"108195:36:0"},"returnParameters":{"id":5178,"nodeType":"ParameterList","parameters":[],"src":"108246:0:0"},"scope":12159,"src":"108183:157:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5209,"nodeType":"Block","src":"108400:92:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c2c626f6f6c29","id":5202,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"108450:21:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_d5ceace024d24c243571d0b2393ca9fb37aa961a0e028332e72cd7dfb84c0971","typeString":"literal_string \"log(uint,bool,bool)\""},"value":"log(uint,bool,bool)"},{"id":5203,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5192,"src":"108473:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5204,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5194,"src":"108477:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":5205,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5196,"src":"108481:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d5ceace024d24c243571d0b2393ca9fb37aa961a0e028332e72cd7dfb84c0971","typeString":"literal_string \"log(uint,bool,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":5200,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"108426:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5201,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"108430:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"108426:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"108426:58:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5199,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"108410:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"108410:75:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5208,"nodeType":"ExpressionStatement","src":"108410:75:0"}]},"id":5210,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"108355:3:0","nodeType":"FunctionDefinition","parameters":{"id":5197,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5192,"mutability":"mutable","name":"p0","nameLocation":"108364:2:0","nodeType":"VariableDeclaration","scope":5210,"src":"108359:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5191,"name":"uint","nodeType":"ElementaryTypeName","src":"108359:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5194,"mutability":"mutable","name":"p1","nameLocation":"108373:2:0","nodeType":"VariableDeclaration","scope":5210,"src":"108368:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5193,"name":"bool","nodeType":"ElementaryTypeName","src":"108368:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5196,"mutability":"mutable","name":"p2","nameLocation":"108382:2:0","nodeType":"VariableDeclaration","scope":5210,"src":"108377:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5195,"name":"bool","nodeType":"ElementaryTypeName","src":"108377:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"108358:27:0"},"returnParameters":{"id":5198,"nodeType":"ParameterList","parameters":[],"src":"108400:0:0"},"scope":12159,"src":"108346:146:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5229,"nodeType":"Block","src":"108555:95:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c2c6164647265737329","id":5222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"108605:24:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_424effbf6346b3a7c79debdbad20f804c7961e0193d509136d2bb7c09c7ff9b2","typeString":"literal_string \"log(uint,bool,address)\""},"value":"log(uint,bool,address)"},{"id":5223,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5212,"src":"108631:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5224,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5214,"src":"108635:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":5225,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5216,"src":"108639:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_424effbf6346b3a7c79debdbad20f804c7961e0193d509136d2bb7c09c7ff9b2","typeString":"literal_string \"log(uint,bool,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5220,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"108581:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5221,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"108585:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"108581:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5226,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"108581:61:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5219,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"108565:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"108565:78:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5228,"nodeType":"ExpressionStatement","src":"108565:78:0"}]},"id":5230,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"108507:3:0","nodeType":"FunctionDefinition","parameters":{"id":5217,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5212,"mutability":"mutable","name":"p0","nameLocation":"108516:2:0","nodeType":"VariableDeclaration","scope":5230,"src":"108511:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5211,"name":"uint","nodeType":"ElementaryTypeName","src":"108511:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5214,"mutability":"mutable","name":"p1","nameLocation":"108525:2:0","nodeType":"VariableDeclaration","scope":5230,"src":"108520:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5213,"name":"bool","nodeType":"ElementaryTypeName","src":"108520:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5216,"mutability":"mutable","name":"p2","nameLocation":"108537:2:0","nodeType":"VariableDeclaration","scope":5230,"src":"108529:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5215,"name":"address","nodeType":"ElementaryTypeName","src":"108529:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"108510:30:0"},"returnParameters":{"id":5218,"nodeType":"ParameterList","parameters":[],"src":"108555:0:0"},"scope":12159,"src":"108498:152:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5249,"nodeType":"Block","src":"108713:95:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c616464726573732c75696e7429","id":5242,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"108763:24:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_884343aaf095a99f79852cd574543144a9a04148c5eb5687826e5e86a2554617","typeString":"literal_string \"log(uint,address,uint)\""},"value":"log(uint,address,uint)"},{"id":5243,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5232,"src":"108789:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5244,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5234,"src":"108793:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5245,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5236,"src":"108797:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_884343aaf095a99f79852cd574543144a9a04148c5eb5687826e5e86a2554617","typeString":"literal_string \"log(uint,address,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5240,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"108739:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5241,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"108743:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"108739:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"108739:61:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5239,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"108723:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"108723:78:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5248,"nodeType":"ExpressionStatement","src":"108723:78:0"}]},"id":5250,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"108665:3:0","nodeType":"FunctionDefinition","parameters":{"id":5237,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5232,"mutability":"mutable","name":"p0","nameLocation":"108674:2:0","nodeType":"VariableDeclaration","scope":5250,"src":"108669:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5231,"name":"uint","nodeType":"ElementaryTypeName","src":"108669:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5234,"mutability":"mutable","name":"p1","nameLocation":"108686:2:0","nodeType":"VariableDeclaration","scope":5250,"src":"108678:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5233,"name":"address","nodeType":"ElementaryTypeName","src":"108678:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5236,"mutability":"mutable","name":"p2","nameLocation":"108695:2:0","nodeType":"VariableDeclaration","scope":5250,"src":"108690:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5235,"name":"uint","nodeType":"ElementaryTypeName","src":"108690:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"108668:30:0"},"returnParameters":{"id":5238,"nodeType":"ParameterList","parameters":[],"src":"108713:0:0"},"scope":12159,"src":"108656:152:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5269,"nodeType":"Block","src":"108880:97:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c616464726573732c737472696e6729","id":5262,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"108930:26:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_ce83047b6eeeca52b57db5064e316bb4dc615477077814d1a191d68a4818cbed","typeString":"literal_string \"log(uint,address,string)\""},"value":"log(uint,address,string)"},{"id":5263,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5252,"src":"108958:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5264,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5254,"src":"108962:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5265,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5256,"src":"108966:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ce83047b6eeeca52b57db5064e316bb4dc615477077814d1a191d68a4818cbed","typeString":"literal_string \"log(uint,address,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":5260,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"108906:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5261,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"108910:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"108906:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"108906:63:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5259,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"108890:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"108890:80:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5268,"nodeType":"ExpressionStatement","src":"108890:80:0"}]},"id":5270,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"108823:3:0","nodeType":"FunctionDefinition","parameters":{"id":5257,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5252,"mutability":"mutable","name":"p0","nameLocation":"108832:2:0","nodeType":"VariableDeclaration","scope":5270,"src":"108827:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5251,"name":"uint","nodeType":"ElementaryTypeName","src":"108827:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5254,"mutability":"mutable","name":"p1","nameLocation":"108844:2:0","nodeType":"VariableDeclaration","scope":5270,"src":"108836:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5253,"name":"address","nodeType":"ElementaryTypeName","src":"108836:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5256,"mutability":"mutable","name":"p2","nameLocation":"108862:2:0","nodeType":"VariableDeclaration","scope":5270,"src":"108848:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5255,"name":"string","nodeType":"ElementaryTypeName","src":"108848:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"108826:39:0"},"returnParameters":{"id":5258,"nodeType":"ParameterList","parameters":[],"src":"108880:0:0"},"scope":12159,"src":"108814:163:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5289,"nodeType":"Block","src":"109040:95:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c616464726573732c626f6f6c29","id":5282,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"109090:24:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_7ad0128e41690364edd967a051c6d9cea9f7c322246c5ed2ebc0083265828a80","typeString":"literal_string \"log(uint,address,bool)\""},"value":"log(uint,address,bool)"},{"id":5283,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5272,"src":"109116:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5284,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5274,"src":"109120:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5285,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5276,"src":"109124:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7ad0128e41690364edd967a051c6d9cea9f7c322246c5ed2ebc0083265828a80","typeString":"literal_string \"log(uint,address,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":5280,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"109066:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5281,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"109070:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"109066:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"109066:61:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5279,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"109050:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5287,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"109050:78:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5288,"nodeType":"ExpressionStatement","src":"109050:78:0"}]},"id":5290,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"108992:3:0","nodeType":"FunctionDefinition","parameters":{"id":5277,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5272,"mutability":"mutable","name":"p0","nameLocation":"109001:2:0","nodeType":"VariableDeclaration","scope":5290,"src":"108996:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5271,"name":"uint","nodeType":"ElementaryTypeName","src":"108996:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5274,"mutability":"mutable","name":"p1","nameLocation":"109013:2:0","nodeType":"VariableDeclaration","scope":5290,"src":"109005:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5273,"name":"address","nodeType":"ElementaryTypeName","src":"109005:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5276,"mutability":"mutable","name":"p2","nameLocation":"109022:2:0","nodeType":"VariableDeclaration","scope":5290,"src":"109017:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5275,"name":"bool","nodeType":"ElementaryTypeName","src":"109017:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"108995:30:0"},"returnParameters":{"id":5278,"nodeType":"ParameterList","parameters":[],"src":"109040:0:0"},"scope":12159,"src":"108983:152:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5309,"nodeType":"Block","src":"109201:98:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c616464726573732c6164647265737329","id":5302,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"109251:27:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_7d77a61be18c592527fe1ce89d591c1badea18ef3198dacc513c5ba08449fd7b","typeString":"literal_string \"log(uint,address,address)\""},"value":"log(uint,address,address)"},{"id":5303,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5292,"src":"109280:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5304,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5294,"src":"109284:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5305,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5296,"src":"109288:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7d77a61be18c592527fe1ce89d591c1badea18ef3198dacc513c5ba08449fd7b","typeString":"literal_string \"log(uint,address,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5300,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"109227:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5301,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"109231:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"109227:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"109227:64:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5299,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"109211:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"109211:81:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5308,"nodeType":"ExpressionStatement","src":"109211:81:0"}]},"id":5310,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"109150:3:0","nodeType":"FunctionDefinition","parameters":{"id":5297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5292,"mutability":"mutable","name":"p0","nameLocation":"109159:2:0","nodeType":"VariableDeclaration","scope":5310,"src":"109154:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5291,"name":"uint","nodeType":"ElementaryTypeName","src":"109154:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5294,"mutability":"mutable","name":"p1","nameLocation":"109171:2:0","nodeType":"VariableDeclaration","scope":5310,"src":"109163:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5293,"name":"address","nodeType":"ElementaryTypeName","src":"109163:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5296,"mutability":"mutable","name":"p2","nameLocation":"109183:2:0","nodeType":"VariableDeclaration","scope":5310,"src":"109175:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5295,"name":"address","nodeType":"ElementaryTypeName","src":"109175:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"109153:33:0"},"returnParameters":{"id":5298,"nodeType":"ParameterList","parameters":[],"src":"109201:0:0"},"scope":12159,"src":"109141:158:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5329,"nodeType":"Block","src":"109368:94:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e742c75696e7429","id":5322,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"109418:23:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_969cdd03749f5aa30c7fce9178272cdca616cb2cc28128d3b9824be8046f827e","typeString":"literal_string \"log(string,uint,uint)\""},"value":"log(string,uint,uint)"},{"id":5323,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5312,"src":"109443:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5324,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5314,"src":"109447:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5325,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5316,"src":"109451:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_969cdd03749f5aa30c7fce9178272cdca616cb2cc28128d3b9824be8046f827e","typeString":"literal_string \"log(string,uint,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5320,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"109394:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5321,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"109398:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"109394:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"109394:60:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5319,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"109378:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"109378:77:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5328,"nodeType":"ExpressionStatement","src":"109378:77:0"}]},"id":5330,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"109314:3:0","nodeType":"FunctionDefinition","parameters":{"id":5317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5312,"mutability":"mutable","name":"p0","nameLocation":"109332:2:0","nodeType":"VariableDeclaration","scope":5330,"src":"109318:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5311,"name":"string","nodeType":"ElementaryTypeName","src":"109318:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5314,"mutability":"mutable","name":"p1","nameLocation":"109341:2:0","nodeType":"VariableDeclaration","scope":5330,"src":"109336:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5313,"name":"uint","nodeType":"ElementaryTypeName","src":"109336:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5316,"mutability":"mutable","name":"p2","nameLocation":"109350:2:0","nodeType":"VariableDeclaration","scope":5330,"src":"109345:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5315,"name":"uint","nodeType":"ElementaryTypeName","src":"109345:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"109317:36:0"},"returnParameters":{"id":5318,"nodeType":"ParameterList","parameters":[],"src":"109368:0:0"},"scope":12159,"src":"109305:157:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5349,"nodeType":"Block","src":"109540:96:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e742c737472696e6729","id":5342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"109590:25:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_a3f5c739d439f7a3912e960230088fb752539d00203d48771c643a12b26892ec","typeString":"literal_string \"log(string,uint,string)\""},"value":"log(string,uint,string)"},{"id":5343,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5332,"src":"109617:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5344,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5334,"src":"109621:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5345,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5336,"src":"109625:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a3f5c739d439f7a3912e960230088fb752539d00203d48771c643a12b26892ec","typeString":"literal_string \"log(string,uint,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":5340,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"109566:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5341,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"109570:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"109566:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5346,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"109566:62:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5339,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"109550:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"109550:79:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5348,"nodeType":"ExpressionStatement","src":"109550:79:0"}]},"id":5350,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"109477:3:0","nodeType":"FunctionDefinition","parameters":{"id":5337,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5332,"mutability":"mutable","name":"p0","nameLocation":"109495:2:0","nodeType":"VariableDeclaration","scope":5350,"src":"109481:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5331,"name":"string","nodeType":"ElementaryTypeName","src":"109481:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5334,"mutability":"mutable","name":"p1","nameLocation":"109504:2:0","nodeType":"VariableDeclaration","scope":5350,"src":"109499:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5333,"name":"uint","nodeType":"ElementaryTypeName","src":"109499:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5336,"mutability":"mutable","name":"p2","nameLocation":"109522:2:0","nodeType":"VariableDeclaration","scope":5350,"src":"109508:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5335,"name":"string","nodeType":"ElementaryTypeName","src":"109508:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"109480:45:0"},"returnParameters":{"id":5338,"nodeType":"ParameterList","parameters":[],"src":"109540:0:0"},"scope":12159,"src":"109468:168:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5369,"nodeType":"Block","src":"109705:94:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e742c626f6f6c29","id":5362,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"109755:23:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_f102ee05f3b79d3bc2ba0350401e35479d9f95705fb40abfaeb49d12355695b3","typeString":"literal_string \"log(string,uint,bool)\""},"value":"log(string,uint,bool)"},{"id":5363,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5352,"src":"109780:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5364,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5354,"src":"109784:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5365,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5356,"src":"109788:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f102ee05f3b79d3bc2ba0350401e35479d9f95705fb40abfaeb49d12355695b3","typeString":"literal_string \"log(string,uint,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":5360,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"109731:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5361,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"109735:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"109731:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"109731:60:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5359,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"109715:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5367,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"109715:77:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5368,"nodeType":"ExpressionStatement","src":"109715:77:0"}]},"id":5370,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"109651:3:0","nodeType":"FunctionDefinition","parameters":{"id":5357,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5352,"mutability":"mutable","name":"p0","nameLocation":"109669:2:0","nodeType":"VariableDeclaration","scope":5370,"src":"109655:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5351,"name":"string","nodeType":"ElementaryTypeName","src":"109655:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5354,"mutability":"mutable","name":"p1","nameLocation":"109678:2:0","nodeType":"VariableDeclaration","scope":5370,"src":"109673:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5353,"name":"uint","nodeType":"ElementaryTypeName","src":"109673:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5356,"mutability":"mutable","name":"p2","nameLocation":"109687:2:0","nodeType":"VariableDeclaration","scope":5370,"src":"109682:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5355,"name":"bool","nodeType":"ElementaryTypeName","src":"109682:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"109654:36:0"},"returnParameters":{"id":5358,"nodeType":"ParameterList","parameters":[],"src":"109705:0:0"},"scope":12159,"src":"109642:157:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5389,"nodeType":"Block","src":"109871:97:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e742c6164647265737329","id":5382,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"109921:26:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e3849f79a3c07bea1bae0837bfeee5da2531684b262865f1541a60df4fcd512a","typeString":"literal_string \"log(string,uint,address)\""},"value":"log(string,uint,address)"},{"id":5383,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5372,"src":"109949:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5384,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5374,"src":"109953:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5385,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5376,"src":"109957:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e3849f79a3c07bea1bae0837bfeee5da2531684b262865f1541a60df4fcd512a","typeString":"literal_string \"log(string,uint,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5380,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"109897:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5381,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"109901:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"109897:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"109897:63:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5379,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"109881:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"109881:80:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5388,"nodeType":"ExpressionStatement","src":"109881:80:0"}]},"id":5390,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"109814:3:0","nodeType":"FunctionDefinition","parameters":{"id":5377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5372,"mutability":"mutable","name":"p0","nameLocation":"109832:2:0","nodeType":"VariableDeclaration","scope":5390,"src":"109818:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5371,"name":"string","nodeType":"ElementaryTypeName","src":"109818:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5374,"mutability":"mutable","name":"p1","nameLocation":"109841:2:0","nodeType":"VariableDeclaration","scope":5390,"src":"109836:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5373,"name":"uint","nodeType":"ElementaryTypeName","src":"109836:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5376,"mutability":"mutable","name":"p2","nameLocation":"109853:2:0","nodeType":"VariableDeclaration","scope":5390,"src":"109845:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5375,"name":"address","nodeType":"ElementaryTypeName","src":"109845:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"109817:39:0"},"returnParameters":{"id":5378,"nodeType":"ParameterList","parameters":[],"src":"109871:0:0"},"scope":12159,"src":"109805:163:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5409,"nodeType":"Block","src":"110046:96:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c75696e7429","id":5402,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"110096:25:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_f362ca59af8dc58335601f00e8a4f3f8cd0c03c9716c1459118a41613b5e0147","typeString":"literal_string \"log(string,string,uint)\""},"value":"log(string,string,uint)"},{"id":5403,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5392,"src":"110123:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5404,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5394,"src":"110127:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5405,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5396,"src":"110131:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f362ca59af8dc58335601f00e8a4f3f8cd0c03c9716c1459118a41613b5e0147","typeString":"literal_string \"log(string,string,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5400,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"110072:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5401,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"110076:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"110072:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"110072:62:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5399,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"110056:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"110056:79:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5408,"nodeType":"ExpressionStatement","src":"110056:79:0"}]},"id":5410,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"109983:3:0","nodeType":"FunctionDefinition","parameters":{"id":5397,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5392,"mutability":"mutable","name":"p0","nameLocation":"110001:2:0","nodeType":"VariableDeclaration","scope":5410,"src":"109987:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5391,"name":"string","nodeType":"ElementaryTypeName","src":"109987:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5394,"mutability":"mutable","name":"p1","nameLocation":"110019:2:0","nodeType":"VariableDeclaration","scope":5410,"src":"110005:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5393,"name":"string","nodeType":"ElementaryTypeName","src":"110005:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5396,"mutability":"mutable","name":"p2","nameLocation":"110028:2:0","nodeType":"VariableDeclaration","scope":5410,"src":"110023:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5395,"name":"uint","nodeType":"ElementaryTypeName","src":"110023:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"109986:45:0"},"returnParameters":{"id":5398,"nodeType":"ParameterList","parameters":[],"src":"110046:0:0"},"scope":12159,"src":"109974:168:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5429,"nodeType":"Block","src":"110229:98:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c737472696e6729","id":5422,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"110279:27:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_2ced7cef693312206c21f0e92e3b54e2e16bf33db5eec350c78866822c665e1f","typeString":"literal_string \"log(string,string,string)\""},"value":"log(string,string,string)"},{"id":5423,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5412,"src":"110308:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5424,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5414,"src":"110312:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5425,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5416,"src":"110316:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2ced7cef693312206c21f0e92e3b54e2e16bf33db5eec350c78866822c665e1f","typeString":"literal_string \"log(string,string,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":5420,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"110255:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5421,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"110259:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"110255:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"110255:64:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5419,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"110239:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"110239:81:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5428,"nodeType":"ExpressionStatement","src":"110239:81:0"}]},"id":5430,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"110157:3:0","nodeType":"FunctionDefinition","parameters":{"id":5417,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5412,"mutability":"mutable","name":"p0","nameLocation":"110175:2:0","nodeType":"VariableDeclaration","scope":5430,"src":"110161:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5411,"name":"string","nodeType":"ElementaryTypeName","src":"110161:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5414,"mutability":"mutable","name":"p1","nameLocation":"110193:2:0","nodeType":"VariableDeclaration","scope":5430,"src":"110179:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5413,"name":"string","nodeType":"ElementaryTypeName","src":"110179:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5416,"mutability":"mutable","name":"p2","nameLocation":"110211:2:0","nodeType":"VariableDeclaration","scope":5430,"src":"110197:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5415,"name":"string","nodeType":"ElementaryTypeName","src":"110197:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"110160:54:0"},"returnParameters":{"id":5418,"nodeType":"ParameterList","parameters":[],"src":"110229:0:0"},"scope":12159,"src":"110148:179:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5449,"nodeType":"Block","src":"110405:96:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c626f6f6c29","id":5442,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"110455:25:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_b0e0f9b5ad960213f9ab262d120ce4ec3edffc58d1ad51b99628a777e82d8acb","typeString":"literal_string \"log(string,string,bool)\""},"value":"log(string,string,bool)"},{"id":5443,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5432,"src":"110482:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5444,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5434,"src":"110486:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5445,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5436,"src":"110490:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b0e0f9b5ad960213f9ab262d120ce4ec3edffc58d1ad51b99628a777e82d8acb","typeString":"literal_string \"log(string,string,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":5440,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"110431:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5441,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"110435:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"110431:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5446,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"110431:62:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5439,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"110415:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"110415:79:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5448,"nodeType":"ExpressionStatement","src":"110415:79:0"}]},"id":5450,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"110342:3:0","nodeType":"FunctionDefinition","parameters":{"id":5437,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5432,"mutability":"mutable","name":"p0","nameLocation":"110360:2:0","nodeType":"VariableDeclaration","scope":5450,"src":"110346:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5431,"name":"string","nodeType":"ElementaryTypeName","src":"110346:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5434,"mutability":"mutable","name":"p1","nameLocation":"110378:2:0","nodeType":"VariableDeclaration","scope":5450,"src":"110364:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5433,"name":"string","nodeType":"ElementaryTypeName","src":"110364:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5436,"mutability":"mutable","name":"p2","nameLocation":"110387:2:0","nodeType":"VariableDeclaration","scope":5450,"src":"110382:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5435,"name":"bool","nodeType":"ElementaryTypeName","src":"110382:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"110345:45:0"},"returnParameters":{"id":5438,"nodeType":"ParameterList","parameters":[],"src":"110405:0:0"},"scope":12159,"src":"110333:168:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5469,"nodeType":"Block","src":"110582:99:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c6164647265737329","id":5462,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"110632:28:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_95ed0195ee22a092ad93d352c33e8dc78b91f0c01eab9cff270af55b2ae65768","typeString":"literal_string \"log(string,string,address)\""},"value":"log(string,string,address)"},{"id":5463,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5452,"src":"110662:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5464,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5454,"src":"110666:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5465,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5456,"src":"110670:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_95ed0195ee22a092ad93d352c33e8dc78b91f0c01eab9cff270af55b2ae65768","typeString":"literal_string \"log(string,string,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5460,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"110608:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5461,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"110612:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"110608:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"110608:65:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5459,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"110592:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"110592:82:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5468,"nodeType":"ExpressionStatement","src":"110592:82:0"}]},"id":5470,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"110516:3:0","nodeType":"FunctionDefinition","parameters":{"id":5457,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5452,"mutability":"mutable","name":"p0","nameLocation":"110534:2:0","nodeType":"VariableDeclaration","scope":5470,"src":"110520:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5451,"name":"string","nodeType":"ElementaryTypeName","src":"110520:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5454,"mutability":"mutable","name":"p1","nameLocation":"110552:2:0","nodeType":"VariableDeclaration","scope":5470,"src":"110538:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5453,"name":"string","nodeType":"ElementaryTypeName","src":"110538:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5456,"mutability":"mutable","name":"p2","nameLocation":"110564:2:0","nodeType":"VariableDeclaration","scope":5470,"src":"110556:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5455,"name":"address","nodeType":"ElementaryTypeName","src":"110556:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"110519:48:0"},"returnParameters":{"id":5458,"nodeType":"ParameterList","parameters":[],"src":"110582:0:0"},"scope":12159,"src":"110507:174:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5489,"nodeType":"Block","src":"110750:94:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c75696e7429","id":5482,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"110800:23:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_291bb9d00defdc1b95c66c8b4bc10ef714a549c4f22fb190fe687dc5e85a4db1","typeString":"literal_string \"log(string,bool,uint)\""},"value":"log(string,bool,uint)"},{"id":5483,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5472,"src":"110825:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5484,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5474,"src":"110829:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":5485,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5476,"src":"110833:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_291bb9d00defdc1b95c66c8b4bc10ef714a549c4f22fb190fe687dc5e85a4db1","typeString":"literal_string \"log(string,bool,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5480,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"110776:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5481,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"110780:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"110776:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"110776:60:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5479,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"110760:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"110760:77:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5488,"nodeType":"ExpressionStatement","src":"110760:77:0"}]},"id":5490,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"110696:3:0","nodeType":"FunctionDefinition","parameters":{"id":5477,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5472,"mutability":"mutable","name":"p0","nameLocation":"110714:2:0","nodeType":"VariableDeclaration","scope":5490,"src":"110700:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5471,"name":"string","nodeType":"ElementaryTypeName","src":"110700:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5474,"mutability":"mutable","name":"p1","nameLocation":"110723:2:0","nodeType":"VariableDeclaration","scope":5490,"src":"110718:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5473,"name":"bool","nodeType":"ElementaryTypeName","src":"110718:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5476,"mutability":"mutable","name":"p2","nameLocation":"110732:2:0","nodeType":"VariableDeclaration","scope":5490,"src":"110727:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5475,"name":"uint","nodeType":"ElementaryTypeName","src":"110727:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"110699:36:0"},"returnParameters":{"id":5478,"nodeType":"ParameterList","parameters":[],"src":"110750:0:0"},"scope":12159,"src":"110687:157:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5509,"nodeType":"Block","src":"110922:96:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c737472696e6729","id":5502,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"110972:25:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e298f47d872a89293d316b9b936000a26f83eda2ba3171b2f9f16e2bf618c3e7","typeString":"literal_string \"log(string,bool,string)\""},"value":"log(string,bool,string)"},{"id":5503,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5492,"src":"110999:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5504,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5494,"src":"111003:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":5505,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5496,"src":"111007:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e298f47d872a89293d316b9b936000a26f83eda2ba3171b2f9f16e2bf618c3e7","typeString":"literal_string \"log(string,bool,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":5500,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"110948:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5501,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"110952:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"110948:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"110948:62:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5499,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"110932:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5507,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"110932:79:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5508,"nodeType":"ExpressionStatement","src":"110932:79:0"}]},"id":5510,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"110859:3:0","nodeType":"FunctionDefinition","parameters":{"id":5497,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5492,"mutability":"mutable","name":"p0","nameLocation":"110877:2:0","nodeType":"VariableDeclaration","scope":5510,"src":"110863:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5491,"name":"string","nodeType":"ElementaryTypeName","src":"110863:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5494,"mutability":"mutable","name":"p1","nameLocation":"110886:2:0","nodeType":"VariableDeclaration","scope":5510,"src":"110881:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5493,"name":"bool","nodeType":"ElementaryTypeName","src":"110881:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5496,"mutability":"mutable","name":"p2","nameLocation":"110904:2:0","nodeType":"VariableDeclaration","scope":5510,"src":"110890:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5495,"name":"string","nodeType":"ElementaryTypeName","src":"110890:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"110862:45:0"},"returnParameters":{"id":5498,"nodeType":"ParameterList","parameters":[],"src":"110922:0:0"},"scope":12159,"src":"110850:168:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5529,"nodeType":"Block","src":"111087:94:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c626f6f6c29","id":5522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"111137:23:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_850b7ad637241a873b861925ccffb71aaffb030b1df8850f324c9804bc7b443d","typeString":"literal_string \"log(string,bool,bool)\""},"value":"log(string,bool,bool)"},{"id":5523,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5512,"src":"111162:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5524,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5514,"src":"111166:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":5525,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5516,"src":"111170:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_850b7ad637241a873b861925ccffb71aaffb030b1df8850f324c9804bc7b443d","typeString":"literal_string \"log(string,bool,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":5520,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"111113:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5521,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"111117:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"111113:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"111113:60:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5519,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"111097:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5527,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"111097:77:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5528,"nodeType":"ExpressionStatement","src":"111097:77:0"}]},"id":5530,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"111033:3:0","nodeType":"FunctionDefinition","parameters":{"id":5517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5512,"mutability":"mutable","name":"p0","nameLocation":"111051:2:0","nodeType":"VariableDeclaration","scope":5530,"src":"111037:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5511,"name":"string","nodeType":"ElementaryTypeName","src":"111037:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5514,"mutability":"mutable","name":"p1","nameLocation":"111060:2:0","nodeType":"VariableDeclaration","scope":5530,"src":"111055:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5513,"name":"bool","nodeType":"ElementaryTypeName","src":"111055:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5516,"mutability":"mutable","name":"p2","nameLocation":"111069:2:0","nodeType":"VariableDeclaration","scope":5530,"src":"111064:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5515,"name":"bool","nodeType":"ElementaryTypeName","src":"111064:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"111036:36:0"},"returnParameters":{"id":5518,"nodeType":"ParameterList","parameters":[],"src":"111087:0:0"},"scope":12159,"src":"111024:157:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5549,"nodeType":"Block","src":"111253:97:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c6164647265737329","id":5542,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"111303:26:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_932bbb385d479707ff387e3bb2d8968a7b4115e938510c531aa15b50507fc27f","typeString":"literal_string \"log(string,bool,address)\""},"value":"log(string,bool,address)"},{"id":5543,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5532,"src":"111331:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5544,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5534,"src":"111335:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":5545,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5536,"src":"111339:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_932bbb385d479707ff387e3bb2d8968a7b4115e938510c531aa15b50507fc27f","typeString":"literal_string \"log(string,bool,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5540,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"111279:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5541,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"111283:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"111279:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"111279:63:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5539,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"111263:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"111263:80:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5548,"nodeType":"ExpressionStatement","src":"111263:80:0"}]},"id":5550,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"111196:3:0","nodeType":"FunctionDefinition","parameters":{"id":5537,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5532,"mutability":"mutable","name":"p0","nameLocation":"111214:2:0","nodeType":"VariableDeclaration","scope":5550,"src":"111200:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5531,"name":"string","nodeType":"ElementaryTypeName","src":"111200:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5534,"mutability":"mutable","name":"p1","nameLocation":"111223:2:0","nodeType":"VariableDeclaration","scope":5550,"src":"111218:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5533,"name":"bool","nodeType":"ElementaryTypeName","src":"111218:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5536,"mutability":"mutable","name":"p2","nameLocation":"111235:2:0","nodeType":"VariableDeclaration","scope":5550,"src":"111227:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5535,"name":"address","nodeType":"ElementaryTypeName","src":"111227:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"111199:39:0"},"returnParameters":{"id":5538,"nodeType":"ParameterList","parameters":[],"src":"111253:0:0"},"scope":12159,"src":"111187:163:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5569,"nodeType":"Block","src":"111422:97:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c75696e7429","id":5562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"111472:26:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_07c81217b9c48682941345dce61bbd916a12dd883642c9077891090a71c93a13","typeString":"literal_string \"log(string,address,uint)\""},"value":"log(string,address,uint)"},{"id":5563,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"111500:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5564,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5554,"src":"111504:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5565,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5556,"src":"111508:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_07c81217b9c48682941345dce61bbd916a12dd883642c9077891090a71c93a13","typeString":"literal_string \"log(string,address,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5560,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"111448:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5561,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"111452:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"111448:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"111448:63:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5559,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"111432:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"111432:80:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5568,"nodeType":"ExpressionStatement","src":"111432:80:0"}]},"id":5570,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"111365:3:0","nodeType":"FunctionDefinition","parameters":{"id":5557,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5552,"mutability":"mutable","name":"p0","nameLocation":"111383:2:0","nodeType":"VariableDeclaration","scope":5570,"src":"111369:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5551,"name":"string","nodeType":"ElementaryTypeName","src":"111369:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5554,"mutability":"mutable","name":"p1","nameLocation":"111395:2:0","nodeType":"VariableDeclaration","scope":5570,"src":"111387:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5553,"name":"address","nodeType":"ElementaryTypeName","src":"111387:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5556,"mutability":"mutable","name":"p2","nameLocation":"111404:2:0","nodeType":"VariableDeclaration","scope":5570,"src":"111399:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5555,"name":"uint","nodeType":"ElementaryTypeName","src":"111399:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"111368:39:0"},"returnParameters":{"id":5558,"nodeType":"ParameterList","parameters":[],"src":"111422:0:0"},"scope":12159,"src":"111356:163:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5589,"nodeType":"Block","src":"111600:99:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c737472696e6729","id":5582,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"111650:28:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e0e9ad4f87059a51cce5555e129ca819f7e5d52e9c65a4e175882207ee47d634","typeString":"literal_string \"log(string,address,string)\""},"value":"log(string,address,string)"},{"id":5583,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5572,"src":"111680:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5584,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5574,"src":"111684:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5585,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5576,"src":"111688:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e0e9ad4f87059a51cce5555e129ca819f7e5d52e9c65a4e175882207ee47d634","typeString":"literal_string \"log(string,address,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":5580,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"111626:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5581,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"111630:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"111626:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"111626:65:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5579,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"111610:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"111610:82:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5588,"nodeType":"ExpressionStatement","src":"111610:82:0"}]},"id":5590,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"111534:3:0","nodeType":"FunctionDefinition","parameters":{"id":5577,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5572,"mutability":"mutable","name":"p0","nameLocation":"111552:2:0","nodeType":"VariableDeclaration","scope":5590,"src":"111538:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5571,"name":"string","nodeType":"ElementaryTypeName","src":"111538:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5574,"mutability":"mutable","name":"p1","nameLocation":"111564:2:0","nodeType":"VariableDeclaration","scope":5590,"src":"111556:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5573,"name":"address","nodeType":"ElementaryTypeName","src":"111556:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5576,"mutability":"mutable","name":"p2","nameLocation":"111582:2:0","nodeType":"VariableDeclaration","scope":5590,"src":"111568:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5575,"name":"string","nodeType":"ElementaryTypeName","src":"111568:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"111537:48:0"},"returnParameters":{"id":5578,"nodeType":"ParameterList","parameters":[],"src":"111600:0:0"},"scope":12159,"src":"111525:174:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5609,"nodeType":"Block","src":"111771:97:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c626f6f6c29","id":5602,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"111821:26:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_c91d5ed4480e0b3323f998bcee9594aa98173c7324b015a4713a7c8429afd0b8","typeString":"literal_string \"log(string,address,bool)\""},"value":"log(string,address,bool)"},{"id":5603,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5592,"src":"111849:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5604,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5594,"src":"111853:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5605,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5596,"src":"111857:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c91d5ed4480e0b3323f998bcee9594aa98173c7324b015a4713a7c8429afd0b8","typeString":"literal_string \"log(string,address,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":5600,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"111797:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5601,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"111801:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"111797:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"111797:63:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5599,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"111781:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"111781:80:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5608,"nodeType":"ExpressionStatement","src":"111781:80:0"}]},"id":5610,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"111714:3:0","nodeType":"FunctionDefinition","parameters":{"id":5597,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5592,"mutability":"mutable","name":"p0","nameLocation":"111732:2:0","nodeType":"VariableDeclaration","scope":5610,"src":"111718:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5591,"name":"string","nodeType":"ElementaryTypeName","src":"111718:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5594,"mutability":"mutable","name":"p1","nameLocation":"111744:2:0","nodeType":"VariableDeclaration","scope":5610,"src":"111736:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5593,"name":"address","nodeType":"ElementaryTypeName","src":"111736:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5596,"mutability":"mutable","name":"p2","nameLocation":"111753:2:0","nodeType":"VariableDeclaration","scope":5610,"src":"111748:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5595,"name":"bool","nodeType":"ElementaryTypeName","src":"111748:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"111717:39:0"},"returnParameters":{"id":5598,"nodeType":"ParameterList","parameters":[],"src":"111771:0:0"},"scope":12159,"src":"111705:163:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5629,"nodeType":"Block","src":"111943:100:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c6164647265737329","id":5622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"111993:29:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_fcec75e0902c9d61eded5d9f2eed16d5b0f2cd255fe6fa77733f59e1063823e8","typeString":"literal_string \"log(string,address,address)\""},"value":"log(string,address,address)"},{"id":5623,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5612,"src":"112024:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5624,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5614,"src":"112028:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5625,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5616,"src":"112032:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fcec75e0902c9d61eded5d9f2eed16d5b0f2cd255fe6fa77733f59e1063823e8","typeString":"literal_string \"log(string,address,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5620,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"111969:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5621,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"111973:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"111969:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"111969:66:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5619,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"111953:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"111953:83:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5628,"nodeType":"ExpressionStatement","src":"111953:83:0"}]},"id":5630,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"111883:3:0","nodeType":"FunctionDefinition","parameters":{"id":5617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5612,"mutability":"mutable","name":"p0","nameLocation":"111901:2:0","nodeType":"VariableDeclaration","scope":5630,"src":"111887:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5611,"name":"string","nodeType":"ElementaryTypeName","src":"111887:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5614,"mutability":"mutable","name":"p1","nameLocation":"111913:2:0","nodeType":"VariableDeclaration","scope":5630,"src":"111905:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5613,"name":"address","nodeType":"ElementaryTypeName","src":"111905:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5616,"mutability":"mutable","name":"p2","nameLocation":"111925:2:0","nodeType":"VariableDeclaration","scope":5630,"src":"111917:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5615,"name":"address","nodeType":"ElementaryTypeName","src":"111917:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"111886:42:0"},"returnParameters":{"id":5618,"nodeType":"ParameterList","parameters":[],"src":"111943:0:0"},"scope":12159,"src":"111874:169:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5649,"nodeType":"Block","src":"112103:92:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e742c75696e7429","id":5642,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"112153:21:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_3b5c03e061c862e366b964ce1ef4845511d610b73a90137eb2b2afa3099b1a4e","typeString":"literal_string \"log(bool,uint,uint)\""},"value":"log(bool,uint,uint)"},{"id":5643,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5632,"src":"112176:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":5644,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5634,"src":"112180:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5645,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5636,"src":"112184:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3b5c03e061c862e366b964ce1ef4845511d610b73a90137eb2b2afa3099b1a4e","typeString":"literal_string \"log(bool,uint,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5640,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"112129:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5641,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"112133:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"112129:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"112129:58:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5639,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"112113:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"112113:75:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5648,"nodeType":"ExpressionStatement","src":"112113:75:0"}]},"id":5650,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"112058:3:0","nodeType":"FunctionDefinition","parameters":{"id":5637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5632,"mutability":"mutable","name":"p0","nameLocation":"112067:2:0","nodeType":"VariableDeclaration","scope":5650,"src":"112062:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5631,"name":"bool","nodeType":"ElementaryTypeName","src":"112062:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5634,"mutability":"mutable","name":"p1","nameLocation":"112076:2:0","nodeType":"VariableDeclaration","scope":5650,"src":"112071:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5633,"name":"uint","nodeType":"ElementaryTypeName","src":"112071:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5636,"mutability":"mutable","name":"p2","nameLocation":"112085:2:0","nodeType":"VariableDeclaration","scope":5650,"src":"112080:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5635,"name":"uint","nodeType":"ElementaryTypeName","src":"112080:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"112061:27:0"},"returnParameters":{"id":5638,"nodeType":"ParameterList","parameters":[],"src":"112103:0:0"},"scope":12159,"src":"112049:146:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5669,"nodeType":"Block","src":"112264:94:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e742c737472696e6729","id":5662,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"112314:23:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_c8397eb0de34bc3ec2853d625c1649c0c0abb20941c30ba650cc738adade018f","typeString":"literal_string \"log(bool,uint,string)\""},"value":"log(bool,uint,string)"},{"id":5663,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5652,"src":"112339:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":5664,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5654,"src":"112343:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5665,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5656,"src":"112347:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c8397eb0de34bc3ec2853d625c1649c0c0abb20941c30ba650cc738adade018f","typeString":"literal_string \"log(bool,uint,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":5660,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"112290:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5661,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"112294:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"112290:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"112290:60:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5659,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"112274:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"112274:77:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5668,"nodeType":"ExpressionStatement","src":"112274:77:0"}]},"id":5670,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"112210:3:0","nodeType":"FunctionDefinition","parameters":{"id":5657,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5652,"mutability":"mutable","name":"p0","nameLocation":"112219:2:0","nodeType":"VariableDeclaration","scope":5670,"src":"112214:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5651,"name":"bool","nodeType":"ElementaryTypeName","src":"112214:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5654,"mutability":"mutable","name":"p1","nameLocation":"112228:2:0","nodeType":"VariableDeclaration","scope":5670,"src":"112223:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5653,"name":"uint","nodeType":"ElementaryTypeName","src":"112223:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5656,"mutability":"mutable","name":"p2","nameLocation":"112246:2:0","nodeType":"VariableDeclaration","scope":5670,"src":"112232:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5655,"name":"string","nodeType":"ElementaryTypeName","src":"112232:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"112213:36:0"},"returnParameters":{"id":5658,"nodeType":"ParameterList","parameters":[],"src":"112264:0:0"},"scope":12159,"src":"112201:157:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5689,"nodeType":"Block","src":"112418:92:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e742c626f6f6c29","id":5682,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"112468:21:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_1badc9eb6813ec769c33a3918f278565b7e2e9ed34d2ae2d50d951cc0f602ae0","typeString":"literal_string \"log(bool,uint,bool)\""},"value":"log(bool,uint,bool)"},{"id":5683,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5672,"src":"112491:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":5684,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5674,"src":"112495:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5685,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5676,"src":"112499:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1badc9eb6813ec769c33a3918f278565b7e2e9ed34d2ae2d50d951cc0f602ae0","typeString":"literal_string \"log(bool,uint,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":5680,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"112444:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5681,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"112448:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"112444:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"112444:58:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5679,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"112428:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"112428:75:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5688,"nodeType":"ExpressionStatement","src":"112428:75:0"}]},"id":5690,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"112373:3:0","nodeType":"FunctionDefinition","parameters":{"id":5677,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5672,"mutability":"mutable","name":"p0","nameLocation":"112382:2:0","nodeType":"VariableDeclaration","scope":5690,"src":"112377:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5671,"name":"bool","nodeType":"ElementaryTypeName","src":"112377:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5674,"mutability":"mutable","name":"p1","nameLocation":"112391:2:0","nodeType":"VariableDeclaration","scope":5690,"src":"112386:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5673,"name":"uint","nodeType":"ElementaryTypeName","src":"112386:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5676,"mutability":"mutable","name":"p2","nameLocation":"112400:2:0","nodeType":"VariableDeclaration","scope":5690,"src":"112395:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5675,"name":"bool","nodeType":"ElementaryTypeName","src":"112395:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"112376:27:0"},"returnParameters":{"id":5678,"nodeType":"ParameterList","parameters":[],"src":"112418:0:0"},"scope":12159,"src":"112364:146:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5709,"nodeType":"Block","src":"112573:95:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e742c6164647265737329","id":5702,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"112623:24:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_c4d23507f52009aec241457bf26dc51305bd2896aa08c5b47f04709554b39440","typeString":"literal_string \"log(bool,uint,address)\""},"value":"log(bool,uint,address)"},{"id":5703,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5692,"src":"112649:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":5704,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5694,"src":"112653:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5705,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5696,"src":"112657:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c4d23507f52009aec241457bf26dc51305bd2896aa08c5b47f04709554b39440","typeString":"literal_string \"log(bool,uint,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5700,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"112599:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5701,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"112603:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"112599:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"112599:61:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5699,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"112583:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"112583:78:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5708,"nodeType":"ExpressionStatement","src":"112583:78:0"}]},"id":5710,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"112525:3:0","nodeType":"FunctionDefinition","parameters":{"id":5697,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5692,"mutability":"mutable","name":"p0","nameLocation":"112534:2:0","nodeType":"VariableDeclaration","scope":5710,"src":"112529:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5691,"name":"bool","nodeType":"ElementaryTypeName","src":"112529:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5694,"mutability":"mutable","name":"p1","nameLocation":"112543:2:0","nodeType":"VariableDeclaration","scope":5710,"src":"112538:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5693,"name":"uint","nodeType":"ElementaryTypeName","src":"112538:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5696,"mutability":"mutable","name":"p2","nameLocation":"112555:2:0","nodeType":"VariableDeclaration","scope":5710,"src":"112547:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5695,"name":"address","nodeType":"ElementaryTypeName","src":"112547:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"112528:30:0"},"returnParameters":{"id":5698,"nodeType":"ParameterList","parameters":[],"src":"112573:0:0"},"scope":12159,"src":"112516:152:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5729,"nodeType":"Block","src":"112737:94:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c75696e7429","id":5722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"112787:23:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_c0382aac3e9b237c9c8f246cdb8152d44351aaafa72d99e3640be65f754ac807","typeString":"literal_string \"log(bool,string,uint)\""},"value":"log(bool,string,uint)"},{"id":5723,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5712,"src":"112812:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":5724,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5714,"src":"112816:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5725,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5716,"src":"112820:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c0382aac3e9b237c9c8f246cdb8152d44351aaafa72d99e3640be65f754ac807","typeString":"literal_string \"log(bool,string,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5720,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"112763:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5721,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"112767:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"112763:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"112763:60:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5719,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"112747:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"112747:77:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5728,"nodeType":"ExpressionStatement","src":"112747:77:0"}]},"id":5730,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"112683:3:0","nodeType":"FunctionDefinition","parameters":{"id":5717,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5712,"mutability":"mutable","name":"p0","nameLocation":"112692:2:0","nodeType":"VariableDeclaration","scope":5730,"src":"112687:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5711,"name":"bool","nodeType":"ElementaryTypeName","src":"112687:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5714,"mutability":"mutable","name":"p1","nameLocation":"112710:2:0","nodeType":"VariableDeclaration","scope":5730,"src":"112696:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5713,"name":"string","nodeType":"ElementaryTypeName","src":"112696:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5716,"mutability":"mutable","name":"p2","nameLocation":"112719:2:0","nodeType":"VariableDeclaration","scope":5730,"src":"112714:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5715,"name":"uint","nodeType":"ElementaryTypeName","src":"112714:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"112686:36:0"},"returnParameters":{"id":5718,"nodeType":"ParameterList","parameters":[],"src":"112737:0:0"},"scope":12159,"src":"112674:157:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5749,"nodeType":"Block","src":"112909:96:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c737472696e6729","id":5742,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"112959:25:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_b076847f8b4aee0cfbf46ec501532f9f3c85a581aff135287ff8e917c0a39102","typeString":"literal_string \"log(bool,string,string)\""},"value":"log(bool,string,string)"},{"id":5743,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5732,"src":"112986:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":5744,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5734,"src":"112990:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5745,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5736,"src":"112994:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b076847f8b4aee0cfbf46ec501532f9f3c85a581aff135287ff8e917c0a39102","typeString":"literal_string \"log(bool,string,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":5740,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"112935:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5741,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"112939:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"112935:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"112935:62:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5739,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"112919:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"112919:79:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5748,"nodeType":"ExpressionStatement","src":"112919:79:0"}]},"id":5750,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"112846:3:0","nodeType":"FunctionDefinition","parameters":{"id":5737,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5732,"mutability":"mutable","name":"p0","nameLocation":"112855:2:0","nodeType":"VariableDeclaration","scope":5750,"src":"112850:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5731,"name":"bool","nodeType":"ElementaryTypeName","src":"112850:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5734,"mutability":"mutable","name":"p1","nameLocation":"112873:2:0","nodeType":"VariableDeclaration","scope":5750,"src":"112859:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5733,"name":"string","nodeType":"ElementaryTypeName","src":"112859:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5736,"mutability":"mutable","name":"p2","nameLocation":"112891:2:0","nodeType":"VariableDeclaration","scope":5750,"src":"112877:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5735,"name":"string","nodeType":"ElementaryTypeName","src":"112877:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"112849:45:0"},"returnParameters":{"id":5738,"nodeType":"ParameterList","parameters":[],"src":"112909:0:0"},"scope":12159,"src":"112837:168:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5769,"nodeType":"Block","src":"113074:94:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c626f6f6c29","id":5762,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"113124:23:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_dbb4c2477dacc98e0e5b96fd6ca6bf0ae1f82dd042439d9f53f8d963bef43eaa","typeString":"literal_string \"log(bool,string,bool)\""},"value":"log(bool,string,bool)"},{"id":5763,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5752,"src":"113149:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":5764,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5754,"src":"113153:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5765,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5756,"src":"113157:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_dbb4c2477dacc98e0e5b96fd6ca6bf0ae1f82dd042439d9f53f8d963bef43eaa","typeString":"literal_string \"log(bool,string,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":5760,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"113100:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5761,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"113104:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"113100:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"113100:60:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5759,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"113084:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"113084:77:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5768,"nodeType":"ExpressionStatement","src":"113084:77:0"}]},"id":5770,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"113020:3:0","nodeType":"FunctionDefinition","parameters":{"id":5757,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5752,"mutability":"mutable","name":"p0","nameLocation":"113029:2:0","nodeType":"VariableDeclaration","scope":5770,"src":"113024:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5751,"name":"bool","nodeType":"ElementaryTypeName","src":"113024:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5754,"mutability":"mutable","name":"p1","nameLocation":"113047:2:0","nodeType":"VariableDeclaration","scope":5770,"src":"113033:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5753,"name":"string","nodeType":"ElementaryTypeName","src":"113033:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5756,"mutability":"mutable","name":"p2","nameLocation":"113056:2:0","nodeType":"VariableDeclaration","scope":5770,"src":"113051:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5755,"name":"bool","nodeType":"ElementaryTypeName","src":"113051:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"113023:36:0"},"returnParameters":{"id":5758,"nodeType":"ParameterList","parameters":[],"src":"113074:0:0"},"scope":12159,"src":"113011:157:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5789,"nodeType":"Block","src":"113240:97:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c6164647265737329","id":5782,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"113290:26:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_9591b953c9b1d0af9d1e3bc0f6ea9aa5b0e1af8c702f85b36e21b9b2d7e4da79","typeString":"literal_string \"log(bool,string,address)\""},"value":"log(bool,string,address)"},{"id":5783,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5772,"src":"113318:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":5784,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5774,"src":"113322:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5785,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5776,"src":"113326:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9591b953c9b1d0af9d1e3bc0f6ea9aa5b0e1af8c702f85b36e21b9b2d7e4da79","typeString":"literal_string \"log(bool,string,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5780,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"113266:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5781,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"113270:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"113266:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"113266:63:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5779,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"113250:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"113250:80:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5788,"nodeType":"ExpressionStatement","src":"113250:80:0"}]},"id":5790,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"113183:3:0","nodeType":"FunctionDefinition","parameters":{"id":5777,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5772,"mutability":"mutable","name":"p0","nameLocation":"113192:2:0","nodeType":"VariableDeclaration","scope":5790,"src":"113187:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5771,"name":"bool","nodeType":"ElementaryTypeName","src":"113187:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5774,"mutability":"mutable","name":"p1","nameLocation":"113210:2:0","nodeType":"VariableDeclaration","scope":5790,"src":"113196:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5773,"name":"string","nodeType":"ElementaryTypeName","src":"113196:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5776,"mutability":"mutable","name":"p2","nameLocation":"113222:2:0","nodeType":"VariableDeclaration","scope":5790,"src":"113214:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5775,"name":"address","nodeType":"ElementaryTypeName","src":"113214:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"113186:39:0"},"returnParameters":{"id":5778,"nodeType":"ParameterList","parameters":[],"src":"113240:0:0"},"scope":12159,"src":"113174:163:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5809,"nodeType":"Block","src":"113397:92:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c75696e7429","id":5802,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"113447:21:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_b01365bbae43503e22260bcc9cf23ffef37ffc9f6c1580737fe2489955065877","typeString":"literal_string \"log(bool,bool,uint)\""},"value":"log(bool,bool,uint)"},{"id":5803,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5792,"src":"113470:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":5804,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5794,"src":"113474:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":5805,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5796,"src":"113478:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b01365bbae43503e22260bcc9cf23ffef37ffc9f6c1580737fe2489955065877","typeString":"literal_string \"log(bool,bool,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5800,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"113423:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5801,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"113427:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"113423:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"113423:58:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5799,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"113407:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"113407:75:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5808,"nodeType":"ExpressionStatement","src":"113407:75:0"}]},"id":5810,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"113352:3:0","nodeType":"FunctionDefinition","parameters":{"id":5797,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5792,"mutability":"mutable","name":"p0","nameLocation":"113361:2:0","nodeType":"VariableDeclaration","scope":5810,"src":"113356:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5791,"name":"bool","nodeType":"ElementaryTypeName","src":"113356:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5794,"mutability":"mutable","name":"p1","nameLocation":"113370:2:0","nodeType":"VariableDeclaration","scope":5810,"src":"113365:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5793,"name":"bool","nodeType":"ElementaryTypeName","src":"113365:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5796,"mutability":"mutable","name":"p2","nameLocation":"113379:2:0","nodeType":"VariableDeclaration","scope":5810,"src":"113374:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5795,"name":"uint","nodeType":"ElementaryTypeName","src":"113374:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"113355:27:0"},"returnParameters":{"id":5798,"nodeType":"ParameterList","parameters":[],"src":"113397:0:0"},"scope":12159,"src":"113343:146:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5829,"nodeType":"Block","src":"113558:94:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c737472696e6729","id":5822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"113608:23:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_2555fa465662416fc443b21c515f245dc550a66f7c658773f7bd7ad91c82f2cc","typeString":"literal_string \"log(bool,bool,string)\""},"value":"log(bool,bool,string)"},{"id":5823,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5812,"src":"113633:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":5824,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5814,"src":"113637:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":5825,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5816,"src":"113641:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2555fa465662416fc443b21c515f245dc550a66f7c658773f7bd7ad91c82f2cc","typeString":"literal_string \"log(bool,bool,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":5820,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"113584:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5821,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"113588:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"113584:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5826,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"113584:60:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5819,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"113568:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5827,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"113568:77:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5828,"nodeType":"ExpressionStatement","src":"113568:77:0"}]},"id":5830,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"113504:3:0","nodeType":"FunctionDefinition","parameters":{"id":5817,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5812,"mutability":"mutable","name":"p0","nameLocation":"113513:2:0","nodeType":"VariableDeclaration","scope":5830,"src":"113508:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5811,"name":"bool","nodeType":"ElementaryTypeName","src":"113508:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5814,"mutability":"mutable","name":"p1","nameLocation":"113522:2:0","nodeType":"VariableDeclaration","scope":5830,"src":"113517:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5813,"name":"bool","nodeType":"ElementaryTypeName","src":"113517:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5816,"mutability":"mutable","name":"p2","nameLocation":"113540:2:0","nodeType":"VariableDeclaration","scope":5830,"src":"113526:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5815,"name":"string","nodeType":"ElementaryTypeName","src":"113526:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"113507:36:0"},"returnParameters":{"id":5818,"nodeType":"ParameterList","parameters":[],"src":"113558:0:0"},"scope":12159,"src":"113495:157:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5849,"nodeType":"Block","src":"113712:92:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c626f6f6c29","id":5842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"113762:21:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_50709698278bb02f656e4ac53a2ae8ef0ec4064d340360a5fa4d933e9a742590","typeString":"literal_string \"log(bool,bool,bool)\""},"value":"log(bool,bool,bool)"},{"id":5843,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5832,"src":"113785:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":5844,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5834,"src":"113789:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":5845,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5836,"src":"113793:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_50709698278bb02f656e4ac53a2ae8ef0ec4064d340360a5fa4d933e9a742590","typeString":"literal_string \"log(bool,bool,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":5840,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"113738:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5841,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"113742:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"113738:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5846,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"113738:58:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5839,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"113722:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"113722:75:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5848,"nodeType":"ExpressionStatement","src":"113722:75:0"}]},"id":5850,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"113667:3:0","nodeType":"FunctionDefinition","parameters":{"id":5837,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5832,"mutability":"mutable","name":"p0","nameLocation":"113676:2:0","nodeType":"VariableDeclaration","scope":5850,"src":"113671:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5831,"name":"bool","nodeType":"ElementaryTypeName","src":"113671:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5834,"mutability":"mutable","name":"p1","nameLocation":"113685:2:0","nodeType":"VariableDeclaration","scope":5850,"src":"113680:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5833,"name":"bool","nodeType":"ElementaryTypeName","src":"113680:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5836,"mutability":"mutable","name":"p2","nameLocation":"113694:2:0","nodeType":"VariableDeclaration","scope":5850,"src":"113689:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5835,"name":"bool","nodeType":"ElementaryTypeName","src":"113689:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"113670:27:0"},"returnParameters":{"id":5838,"nodeType":"ParameterList","parameters":[],"src":"113712:0:0"},"scope":12159,"src":"113658:146:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5869,"nodeType":"Block","src":"113867:95:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c6164647265737329","id":5862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"113917:24:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_1078f68da6ddbbe80f829fe8d54d1f2c6347e1ee4ec5a2a7a3a330ada9eccf81","typeString":"literal_string \"log(bool,bool,address)\""},"value":"log(bool,bool,address)"},{"id":5863,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5852,"src":"113943:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":5864,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5854,"src":"113947:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":5865,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5856,"src":"113951:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1078f68da6ddbbe80f829fe8d54d1f2c6347e1ee4ec5a2a7a3a330ada9eccf81","typeString":"literal_string \"log(bool,bool,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5860,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"113893:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5861,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"113897:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"113893:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"113893:61:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5859,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"113877:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"113877:78:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5868,"nodeType":"ExpressionStatement","src":"113877:78:0"}]},"id":5870,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"113819:3:0","nodeType":"FunctionDefinition","parameters":{"id":5857,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5852,"mutability":"mutable","name":"p0","nameLocation":"113828:2:0","nodeType":"VariableDeclaration","scope":5870,"src":"113823:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5851,"name":"bool","nodeType":"ElementaryTypeName","src":"113823:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5854,"mutability":"mutable","name":"p1","nameLocation":"113837:2:0","nodeType":"VariableDeclaration","scope":5870,"src":"113832:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5853,"name":"bool","nodeType":"ElementaryTypeName","src":"113832:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5856,"mutability":"mutable","name":"p2","nameLocation":"113849:2:0","nodeType":"VariableDeclaration","scope":5870,"src":"113841:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5855,"name":"address","nodeType":"ElementaryTypeName","src":"113841:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"113822:30:0"},"returnParameters":{"id":5858,"nodeType":"ParameterList","parameters":[],"src":"113867:0:0"},"scope":12159,"src":"113810:152:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5889,"nodeType":"Block","src":"114025:95:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c75696e7429","id":5882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"114075:24:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb704bafbd89369a907d48394b6acdacf482ae42cc2aaedd1cc37e89b4054b3d","typeString":"literal_string \"log(bool,address,uint)\""},"value":"log(bool,address,uint)"},{"id":5883,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5872,"src":"114101:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":5884,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5874,"src":"114105:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5885,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5876,"src":"114109:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_eb704bafbd89369a907d48394b6acdacf482ae42cc2aaedd1cc37e89b4054b3d","typeString":"literal_string \"log(bool,address,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5880,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"114051:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5881,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"114055:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"114051:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"114051:61:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5879,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"114035:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"114035:78:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5888,"nodeType":"ExpressionStatement","src":"114035:78:0"}]},"id":5890,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"113977:3:0","nodeType":"FunctionDefinition","parameters":{"id":5877,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5872,"mutability":"mutable","name":"p0","nameLocation":"113986:2:0","nodeType":"VariableDeclaration","scope":5890,"src":"113981:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5871,"name":"bool","nodeType":"ElementaryTypeName","src":"113981:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5874,"mutability":"mutable","name":"p1","nameLocation":"113998:2:0","nodeType":"VariableDeclaration","scope":5890,"src":"113990:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5873,"name":"address","nodeType":"ElementaryTypeName","src":"113990:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5876,"mutability":"mutable","name":"p2","nameLocation":"114007:2:0","nodeType":"VariableDeclaration","scope":5890,"src":"114002:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5875,"name":"uint","nodeType":"ElementaryTypeName","src":"114002:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"113980:30:0"},"returnParameters":{"id":5878,"nodeType":"ParameterList","parameters":[],"src":"114025:0:0"},"scope":12159,"src":"113968:152:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5909,"nodeType":"Block","src":"114192:97:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c737472696e6729","id":5902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"114242:26:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_de9a927090b15ed84eefc0c471675a23ce67fd75011b1652fe17ca2dd0dcd06d","typeString":"literal_string \"log(bool,address,string)\""},"value":"log(bool,address,string)"},{"id":5903,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5892,"src":"114270:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":5904,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5894,"src":"114274:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5905,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5896,"src":"114278:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_de9a927090b15ed84eefc0c471675a23ce67fd75011b1652fe17ca2dd0dcd06d","typeString":"literal_string \"log(bool,address,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":5900,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"114218:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5901,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"114222:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"114218:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"114218:63:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5899,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"114202:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"114202:80:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5908,"nodeType":"ExpressionStatement","src":"114202:80:0"}]},"id":5910,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"114135:3:0","nodeType":"FunctionDefinition","parameters":{"id":5897,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5892,"mutability":"mutable","name":"p0","nameLocation":"114144:2:0","nodeType":"VariableDeclaration","scope":5910,"src":"114139:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5891,"name":"bool","nodeType":"ElementaryTypeName","src":"114139:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5894,"mutability":"mutable","name":"p1","nameLocation":"114156:2:0","nodeType":"VariableDeclaration","scope":5910,"src":"114148:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5893,"name":"address","nodeType":"ElementaryTypeName","src":"114148:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5896,"mutability":"mutable","name":"p2","nameLocation":"114174:2:0","nodeType":"VariableDeclaration","scope":5910,"src":"114160:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5895,"name":"string","nodeType":"ElementaryTypeName","src":"114160:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"114138:39:0"},"returnParameters":{"id":5898,"nodeType":"ParameterList","parameters":[],"src":"114192:0:0"},"scope":12159,"src":"114126:163:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5929,"nodeType":"Block","src":"114352:95:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c626f6f6c29","id":5922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"114402:24:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_18c9c746c9d0e38e4dc234ee76e678bbaa4e473eca3dce0969637d7f01e4a908","typeString":"literal_string \"log(bool,address,bool)\""},"value":"log(bool,address,bool)"},{"id":5923,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5912,"src":"114428:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":5924,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5914,"src":"114432:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5925,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5916,"src":"114436:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_18c9c746c9d0e38e4dc234ee76e678bbaa4e473eca3dce0969637d7f01e4a908","typeString":"literal_string \"log(bool,address,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":5920,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"114378:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5921,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"114382:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"114378:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"114378:61:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5919,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"114362:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"114362:78:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5928,"nodeType":"ExpressionStatement","src":"114362:78:0"}]},"id":5930,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"114304:3:0","nodeType":"FunctionDefinition","parameters":{"id":5917,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5912,"mutability":"mutable","name":"p0","nameLocation":"114313:2:0","nodeType":"VariableDeclaration","scope":5930,"src":"114308:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5911,"name":"bool","nodeType":"ElementaryTypeName","src":"114308:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5914,"mutability":"mutable","name":"p1","nameLocation":"114325:2:0","nodeType":"VariableDeclaration","scope":5930,"src":"114317:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5913,"name":"address","nodeType":"ElementaryTypeName","src":"114317:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5916,"mutability":"mutable","name":"p2","nameLocation":"114334:2:0","nodeType":"VariableDeclaration","scope":5930,"src":"114329:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5915,"name":"bool","nodeType":"ElementaryTypeName","src":"114329:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"114307:30:0"},"returnParameters":{"id":5918,"nodeType":"ParameterList","parameters":[],"src":"114352:0:0"},"scope":12159,"src":"114295:152:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5949,"nodeType":"Block","src":"114513:98:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c6164647265737329","id":5942,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"114563:27:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_d2763667477f08a6a3f8ce84e1cc1aeb5e67ee2996f5f36e8939da2b8b8f0265","typeString":"literal_string \"log(bool,address,address)\""},"value":"log(bool,address,address)"},{"id":5943,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5932,"src":"114592:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":5944,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5934,"src":"114596:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5945,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5936,"src":"114600:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d2763667477f08a6a3f8ce84e1cc1aeb5e67ee2996f5f36e8939da2b8b8f0265","typeString":"literal_string \"log(bool,address,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5940,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"114539:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5941,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"114543:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"114539:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"114539:64:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5939,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"114523:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"114523:81:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5948,"nodeType":"ExpressionStatement","src":"114523:81:0"}]},"id":5950,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"114462:3:0","nodeType":"FunctionDefinition","parameters":{"id":5937,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5932,"mutability":"mutable","name":"p0","nameLocation":"114471:2:0","nodeType":"VariableDeclaration","scope":5950,"src":"114466:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5931,"name":"bool","nodeType":"ElementaryTypeName","src":"114466:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5934,"mutability":"mutable","name":"p1","nameLocation":"114483:2:0","nodeType":"VariableDeclaration","scope":5950,"src":"114475:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5933,"name":"address","nodeType":"ElementaryTypeName","src":"114475:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5936,"mutability":"mutable","name":"p2","nameLocation":"114495:2:0","nodeType":"VariableDeclaration","scope":5950,"src":"114487:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5935,"name":"address","nodeType":"ElementaryTypeName","src":"114487:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"114465:33:0"},"returnParameters":{"id":5938,"nodeType":"ParameterList","parameters":[],"src":"114513:0:0"},"scope":12159,"src":"114453:158:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5969,"nodeType":"Block","src":"114674:95:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e742c75696e7429","id":5962,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"114724:24:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_8786135eae1a8e4736031518026bd3bd30886c3cc8d3e8bdedd6faea426de5ea","typeString":"literal_string \"log(address,uint,uint)\""},"value":"log(address,uint,uint)"},{"id":5963,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5952,"src":"114750:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5964,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5954,"src":"114754:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5965,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5956,"src":"114758:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8786135eae1a8e4736031518026bd3bd30886c3cc8d3e8bdedd6faea426de5ea","typeString":"literal_string \"log(address,uint,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5960,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"114700:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5961,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"114704:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"114700:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5966,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"114700:61:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5959,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"114684:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"114684:78:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5968,"nodeType":"ExpressionStatement","src":"114684:78:0"}]},"id":5970,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"114626:3:0","nodeType":"FunctionDefinition","parameters":{"id":5957,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5952,"mutability":"mutable","name":"p0","nameLocation":"114638:2:0","nodeType":"VariableDeclaration","scope":5970,"src":"114630:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5951,"name":"address","nodeType":"ElementaryTypeName","src":"114630:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5954,"mutability":"mutable","name":"p1","nameLocation":"114647:2:0","nodeType":"VariableDeclaration","scope":5970,"src":"114642:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5953,"name":"uint","nodeType":"ElementaryTypeName","src":"114642:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5956,"mutability":"mutable","name":"p2","nameLocation":"114656:2:0","nodeType":"VariableDeclaration","scope":5970,"src":"114651:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5955,"name":"uint","nodeType":"ElementaryTypeName","src":"114651:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"114629:30:0"},"returnParameters":{"id":5958,"nodeType":"ParameterList","parameters":[],"src":"114674:0:0"},"scope":12159,"src":"114617:152:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5989,"nodeType":"Block","src":"114841:97:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e742c737472696e6729","id":5982,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"114891:26:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_baf968498a2094de432bd16841b992056c14db9f313a6b44c3156c2b5f1dc2b4","typeString":"literal_string \"log(address,uint,string)\""},"value":"log(address,uint,string)"},{"id":5983,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5972,"src":"114919:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5984,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5974,"src":"114923:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5985,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5976,"src":"114927:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_baf968498a2094de432bd16841b992056c14db9f313a6b44c3156c2b5f1dc2b4","typeString":"literal_string \"log(address,uint,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":5980,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"114867:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5981,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"114871:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"114867:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5986,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"114867:63:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5979,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"114851:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"114851:80:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5988,"nodeType":"ExpressionStatement","src":"114851:80:0"}]},"id":5990,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"114784:3:0","nodeType":"FunctionDefinition","parameters":{"id":5977,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5972,"mutability":"mutable","name":"p0","nameLocation":"114796:2:0","nodeType":"VariableDeclaration","scope":5990,"src":"114788:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5971,"name":"address","nodeType":"ElementaryTypeName","src":"114788:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5974,"mutability":"mutable","name":"p1","nameLocation":"114805:2:0","nodeType":"VariableDeclaration","scope":5990,"src":"114800:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5973,"name":"uint","nodeType":"ElementaryTypeName","src":"114800:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5976,"mutability":"mutable","name":"p2","nameLocation":"114823:2:0","nodeType":"VariableDeclaration","scope":5990,"src":"114809:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5975,"name":"string","nodeType":"ElementaryTypeName","src":"114809:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"114787:39:0"},"returnParameters":{"id":5978,"nodeType":"ParameterList","parameters":[],"src":"114841:0:0"},"scope":12159,"src":"114775:163:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6009,"nodeType":"Block","src":"115001:95:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e742c626f6f6c29","id":6002,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"115051:24:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e54ae1445cd51f09e801fc5885e33c709102997417d3d9b6f543f7724468b4e4","typeString":"literal_string \"log(address,uint,bool)\""},"value":"log(address,uint,bool)"},{"id":6003,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5992,"src":"115077:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6004,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5994,"src":"115081:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6005,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5996,"src":"115085:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e54ae1445cd51f09e801fc5885e33c709102997417d3d9b6f543f7724468b4e4","typeString":"literal_string \"log(address,uint,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":6000,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"115027:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6001,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"115031:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"115027:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"115027:61:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5999,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"115011:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6007,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"115011:78:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6008,"nodeType":"ExpressionStatement","src":"115011:78:0"}]},"id":6010,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"114953:3:0","nodeType":"FunctionDefinition","parameters":{"id":5997,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5992,"mutability":"mutable","name":"p0","nameLocation":"114965:2:0","nodeType":"VariableDeclaration","scope":6010,"src":"114957:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5991,"name":"address","nodeType":"ElementaryTypeName","src":"114957:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5994,"mutability":"mutable","name":"p1","nameLocation":"114974:2:0","nodeType":"VariableDeclaration","scope":6010,"src":"114969:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5993,"name":"uint","nodeType":"ElementaryTypeName","src":"114969:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5996,"mutability":"mutable","name":"p2","nameLocation":"114983:2:0","nodeType":"VariableDeclaration","scope":6010,"src":"114978:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5995,"name":"bool","nodeType":"ElementaryTypeName","src":"114978:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"114956:30:0"},"returnParameters":{"id":5998,"nodeType":"ParameterList","parameters":[],"src":"115001:0:0"},"scope":12159,"src":"114944:152:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6029,"nodeType":"Block","src":"115162:98:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e742c6164647265737329","id":6022,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"115212:27:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_97eca3948a309251ff02cc4a3cb96f84ac4b6b4bdc56e86c9f0131c9b70c6259","typeString":"literal_string \"log(address,uint,address)\""},"value":"log(address,uint,address)"},{"id":6023,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6012,"src":"115241:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6024,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6014,"src":"115245:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6025,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6016,"src":"115249:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_97eca3948a309251ff02cc4a3cb96f84ac4b6b4bdc56e86c9f0131c9b70c6259","typeString":"literal_string \"log(address,uint,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6020,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"115188:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6021,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"115192:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"115188:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"115188:64:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6019,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"115172:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"115172:81:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6028,"nodeType":"ExpressionStatement","src":"115172:81:0"}]},"id":6030,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"115111:3:0","nodeType":"FunctionDefinition","parameters":{"id":6017,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6012,"mutability":"mutable","name":"p0","nameLocation":"115123:2:0","nodeType":"VariableDeclaration","scope":6030,"src":"115115:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6011,"name":"address","nodeType":"ElementaryTypeName","src":"115115:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6014,"mutability":"mutable","name":"p1","nameLocation":"115132:2:0","nodeType":"VariableDeclaration","scope":6030,"src":"115127:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6013,"name":"uint","nodeType":"ElementaryTypeName","src":"115127:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6016,"mutability":"mutable","name":"p2","nameLocation":"115144:2:0","nodeType":"VariableDeclaration","scope":6030,"src":"115136:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6015,"name":"address","nodeType":"ElementaryTypeName","src":"115136:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"115114:33:0"},"returnParameters":{"id":6018,"nodeType":"ParameterList","parameters":[],"src":"115162:0:0"},"scope":12159,"src":"115102:158:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6049,"nodeType":"Block","src":"115332:97:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c75696e7429","id":6042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"115382:26:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_1cdaf28a630ff01c83e1629295cea6793da60638603e831a5c07be53dbee3597","typeString":"literal_string \"log(address,string,uint)\""},"value":"log(address,string,uint)"},{"id":6043,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6032,"src":"115410:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6044,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6034,"src":"115414:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6045,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6036,"src":"115418:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1cdaf28a630ff01c83e1629295cea6793da60638603e831a5c07be53dbee3597","typeString":"literal_string \"log(address,string,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6040,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"115358:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6041,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"115362:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"115358:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"115358:63:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6039,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"115342:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"115342:80:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6048,"nodeType":"ExpressionStatement","src":"115342:80:0"}]},"id":6050,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"115275:3:0","nodeType":"FunctionDefinition","parameters":{"id":6037,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6032,"mutability":"mutable","name":"p0","nameLocation":"115287:2:0","nodeType":"VariableDeclaration","scope":6050,"src":"115279:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6031,"name":"address","nodeType":"ElementaryTypeName","src":"115279:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6034,"mutability":"mutable","name":"p1","nameLocation":"115305:2:0","nodeType":"VariableDeclaration","scope":6050,"src":"115291:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6033,"name":"string","nodeType":"ElementaryTypeName","src":"115291:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6036,"mutability":"mutable","name":"p2","nameLocation":"115314:2:0","nodeType":"VariableDeclaration","scope":6050,"src":"115309:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6035,"name":"uint","nodeType":"ElementaryTypeName","src":"115309:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"115278:39:0"},"returnParameters":{"id":6038,"nodeType":"ParameterList","parameters":[],"src":"115332:0:0"},"scope":12159,"src":"115266:163:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6069,"nodeType":"Block","src":"115510:99:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c737472696e6729","id":6062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"115560:28:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_fb77226597c11cd0c52945168d7176a06b9af41edea6a51823db111f35573158","typeString":"literal_string \"log(address,string,string)\""},"value":"log(address,string,string)"},{"id":6063,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6052,"src":"115590:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6064,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6054,"src":"115594:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6065,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6056,"src":"115598:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fb77226597c11cd0c52945168d7176a06b9af41edea6a51823db111f35573158","typeString":"literal_string \"log(address,string,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6060,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"115536:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6061,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"115540:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"115536:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"115536:65:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6059,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"115520:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"115520:82:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6068,"nodeType":"ExpressionStatement","src":"115520:82:0"}]},"id":6070,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"115444:3:0","nodeType":"FunctionDefinition","parameters":{"id":6057,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6052,"mutability":"mutable","name":"p0","nameLocation":"115456:2:0","nodeType":"VariableDeclaration","scope":6070,"src":"115448:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6051,"name":"address","nodeType":"ElementaryTypeName","src":"115448:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6054,"mutability":"mutable","name":"p1","nameLocation":"115474:2:0","nodeType":"VariableDeclaration","scope":6070,"src":"115460:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6053,"name":"string","nodeType":"ElementaryTypeName","src":"115460:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6056,"mutability":"mutable","name":"p2","nameLocation":"115492:2:0","nodeType":"VariableDeclaration","scope":6070,"src":"115478:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6055,"name":"string","nodeType":"ElementaryTypeName","src":"115478:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"115447:48:0"},"returnParameters":{"id":6058,"nodeType":"ParameterList","parameters":[],"src":"115510:0:0"},"scope":12159,"src":"115435:174:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6089,"nodeType":"Block","src":"115681:97:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c626f6f6c29","id":6082,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"115731:26:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_cf020fb14f49566c5748de1f455c699a10a4ed1d7cf32f9adb28d22878df1b96","typeString":"literal_string \"log(address,string,bool)\""},"value":"log(address,string,bool)"},{"id":6083,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6072,"src":"115759:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6084,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6074,"src":"115763:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6085,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6076,"src":"115767:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cf020fb14f49566c5748de1f455c699a10a4ed1d7cf32f9adb28d22878df1b96","typeString":"literal_string \"log(address,string,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":6080,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"115707:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6081,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"115711:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"115707:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"115707:63:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6079,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"115691:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"115691:80:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6088,"nodeType":"ExpressionStatement","src":"115691:80:0"}]},"id":6090,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"115624:3:0","nodeType":"FunctionDefinition","parameters":{"id":6077,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6072,"mutability":"mutable","name":"p0","nameLocation":"115636:2:0","nodeType":"VariableDeclaration","scope":6090,"src":"115628:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6071,"name":"address","nodeType":"ElementaryTypeName","src":"115628:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6074,"mutability":"mutable","name":"p1","nameLocation":"115654:2:0","nodeType":"VariableDeclaration","scope":6090,"src":"115640:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6073,"name":"string","nodeType":"ElementaryTypeName","src":"115640:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6076,"mutability":"mutable","name":"p2","nameLocation":"115663:2:0","nodeType":"VariableDeclaration","scope":6090,"src":"115658:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6075,"name":"bool","nodeType":"ElementaryTypeName","src":"115658:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"115627:39:0"},"returnParameters":{"id":6078,"nodeType":"ParameterList","parameters":[],"src":"115681:0:0"},"scope":12159,"src":"115615:163:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6109,"nodeType":"Block","src":"115853:100:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c6164647265737329","id":6102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"115903:29:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_f08744e82875525f1ef885a48453f58e96cac98a5d32bd6d8c38e4977aede231","typeString":"literal_string \"log(address,string,address)\""},"value":"log(address,string,address)"},{"id":6103,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6092,"src":"115934:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6104,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6094,"src":"115938:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6105,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6096,"src":"115942:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f08744e82875525f1ef885a48453f58e96cac98a5d32bd6d8c38e4977aede231","typeString":"literal_string \"log(address,string,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6100,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"115879:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6101,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"115883:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"115879:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"115879:66:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6099,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"115863:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"115863:83:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6108,"nodeType":"ExpressionStatement","src":"115863:83:0"}]},"id":6110,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"115793:3:0","nodeType":"FunctionDefinition","parameters":{"id":6097,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6092,"mutability":"mutable","name":"p0","nameLocation":"115805:2:0","nodeType":"VariableDeclaration","scope":6110,"src":"115797:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6091,"name":"address","nodeType":"ElementaryTypeName","src":"115797:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6094,"mutability":"mutable","name":"p1","nameLocation":"115823:2:0","nodeType":"VariableDeclaration","scope":6110,"src":"115809:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6093,"name":"string","nodeType":"ElementaryTypeName","src":"115809:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6096,"mutability":"mutable","name":"p2","nameLocation":"115835:2:0","nodeType":"VariableDeclaration","scope":6110,"src":"115827:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6095,"name":"address","nodeType":"ElementaryTypeName","src":"115827:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"115796:42:0"},"returnParameters":{"id":6098,"nodeType":"ParameterList","parameters":[],"src":"115853:0:0"},"scope":12159,"src":"115784:169:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6129,"nodeType":"Block","src":"116016:95:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c75696e7429","id":6122,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"116066:24:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c468d157d9cb3bd4f3bc977d201b067de313f8e774b0377d5c5b2b5c9426095","typeString":"literal_string \"log(address,bool,uint)\""},"value":"log(address,bool,uint)"},{"id":6123,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6112,"src":"116092:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6124,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6114,"src":"116096:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6125,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6116,"src":"116100:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2c468d157d9cb3bd4f3bc977d201b067de313f8e774b0377d5c5b2b5c9426095","typeString":"literal_string \"log(address,bool,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6120,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"116042:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6121,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"116046:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"116042:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"116042:61:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6119,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"116026:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"116026:78:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6128,"nodeType":"ExpressionStatement","src":"116026:78:0"}]},"id":6130,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"115968:3:0","nodeType":"FunctionDefinition","parameters":{"id":6117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6112,"mutability":"mutable","name":"p0","nameLocation":"115980:2:0","nodeType":"VariableDeclaration","scope":6130,"src":"115972:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6111,"name":"address","nodeType":"ElementaryTypeName","src":"115972:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6114,"mutability":"mutable","name":"p1","nameLocation":"115989:2:0","nodeType":"VariableDeclaration","scope":6130,"src":"115984:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6113,"name":"bool","nodeType":"ElementaryTypeName","src":"115984:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6116,"mutability":"mutable","name":"p2","nameLocation":"115998:2:0","nodeType":"VariableDeclaration","scope":6130,"src":"115993:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6115,"name":"uint","nodeType":"ElementaryTypeName","src":"115993:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"115971:30:0"},"returnParameters":{"id":6118,"nodeType":"ParameterList","parameters":[],"src":"116016:0:0"},"scope":12159,"src":"115959:152:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6149,"nodeType":"Block","src":"116183:97:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c737472696e6729","id":6142,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"116233:26:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_212255cc5ff4a2d867f69451c60f51c24e41784276f4ceffe8ec3af322690750","typeString":"literal_string \"log(address,bool,string)\""},"value":"log(address,bool,string)"},{"id":6143,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6132,"src":"116261:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6144,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6134,"src":"116265:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6145,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6136,"src":"116269:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_212255cc5ff4a2d867f69451c60f51c24e41784276f4ceffe8ec3af322690750","typeString":"literal_string \"log(address,bool,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6140,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"116209:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6141,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"116213:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"116209:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"116209:63:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6139,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"116193:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"116193:80:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6148,"nodeType":"ExpressionStatement","src":"116193:80:0"}]},"id":6150,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"116126:3:0","nodeType":"FunctionDefinition","parameters":{"id":6137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6132,"mutability":"mutable","name":"p0","nameLocation":"116138:2:0","nodeType":"VariableDeclaration","scope":6150,"src":"116130:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6131,"name":"address","nodeType":"ElementaryTypeName","src":"116130:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6134,"mutability":"mutable","name":"p1","nameLocation":"116147:2:0","nodeType":"VariableDeclaration","scope":6150,"src":"116142:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6133,"name":"bool","nodeType":"ElementaryTypeName","src":"116142:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6136,"mutability":"mutable","name":"p2","nameLocation":"116165:2:0","nodeType":"VariableDeclaration","scope":6150,"src":"116151:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6135,"name":"string","nodeType":"ElementaryTypeName","src":"116151:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"116129:39:0"},"returnParameters":{"id":6138,"nodeType":"ParameterList","parameters":[],"src":"116183:0:0"},"scope":12159,"src":"116117:163:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6169,"nodeType":"Block","src":"116343:95:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c626f6f6c29","id":6162,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"116393:24:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb830c92a079b46f3abcb83e519f578cffe7387941b6885067265feec096d279","typeString":"literal_string \"log(address,bool,bool)\""},"value":"log(address,bool,bool)"},{"id":6163,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6152,"src":"116419:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6164,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6154,"src":"116423:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6165,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6156,"src":"116427:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_eb830c92a079b46f3abcb83e519f578cffe7387941b6885067265feec096d279","typeString":"literal_string \"log(address,bool,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":6160,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"116369:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6161,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"116373:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"116369:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"116369:61:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6159,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"116353:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"116353:78:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6168,"nodeType":"ExpressionStatement","src":"116353:78:0"}]},"id":6170,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"116295:3:0","nodeType":"FunctionDefinition","parameters":{"id":6157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6152,"mutability":"mutable","name":"p0","nameLocation":"116307:2:0","nodeType":"VariableDeclaration","scope":6170,"src":"116299:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6151,"name":"address","nodeType":"ElementaryTypeName","src":"116299:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6154,"mutability":"mutable","name":"p1","nameLocation":"116316:2:0","nodeType":"VariableDeclaration","scope":6170,"src":"116311:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6153,"name":"bool","nodeType":"ElementaryTypeName","src":"116311:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6156,"mutability":"mutable","name":"p2","nameLocation":"116325:2:0","nodeType":"VariableDeclaration","scope":6170,"src":"116320:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6155,"name":"bool","nodeType":"ElementaryTypeName","src":"116320:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"116298:30:0"},"returnParameters":{"id":6158,"nodeType":"ParameterList","parameters":[],"src":"116343:0:0"},"scope":12159,"src":"116286:152:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6189,"nodeType":"Block","src":"116504:98:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c6164647265737329","id":6182,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"116554:27:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_f11699ed537119f000a51ba9fbd5bb55b3990a1a718acbe99659bd1bc84dc18d","typeString":"literal_string \"log(address,bool,address)\""},"value":"log(address,bool,address)"},{"id":6183,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6172,"src":"116583:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6184,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6174,"src":"116587:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6185,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6176,"src":"116591:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f11699ed537119f000a51ba9fbd5bb55b3990a1a718acbe99659bd1bc84dc18d","typeString":"literal_string \"log(address,bool,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6180,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"116530:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6181,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"116534:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"116530:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"116530:64:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6179,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"116514:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"116514:81:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6188,"nodeType":"ExpressionStatement","src":"116514:81:0"}]},"id":6190,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"116453:3:0","nodeType":"FunctionDefinition","parameters":{"id":6177,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6172,"mutability":"mutable","name":"p0","nameLocation":"116465:2:0","nodeType":"VariableDeclaration","scope":6190,"src":"116457:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6171,"name":"address","nodeType":"ElementaryTypeName","src":"116457:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6174,"mutability":"mutable","name":"p1","nameLocation":"116474:2:0","nodeType":"VariableDeclaration","scope":6190,"src":"116469:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6173,"name":"bool","nodeType":"ElementaryTypeName","src":"116469:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6176,"mutability":"mutable","name":"p2","nameLocation":"116486:2:0","nodeType":"VariableDeclaration","scope":6190,"src":"116478:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6175,"name":"address","nodeType":"ElementaryTypeName","src":"116478:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"116456:33:0"},"returnParameters":{"id":6178,"nodeType":"ParameterList","parameters":[],"src":"116504:0:0"},"scope":12159,"src":"116444:158:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6209,"nodeType":"Block","src":"116668:98:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c75696e7429","id":6202,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"116718:27:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_6c366d7295b93bbfacc4df0ea28f0eef60efacfffd447f8f2823cbe5b2fedb07","typeString":"literal_string \"log(address,address,uint)\""},"value":"log(address,address,uint)"},{"id":6203,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6192,"src":"116747:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6204,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6194,"src":"116751:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6205,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6196,"src":"116755:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6c366d7295b93bbfacc4df0ea28f0eef60efacfffd447f8f2823cbe5b2fedb07","typeString":"literal_string \"log(address,address,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6200,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"116694:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6201,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"116698:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"116694:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"116694:64:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6199,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"116678:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"116678:81:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6208,"nodeType":"ExpressionStatement","src":"116678:81:0"}]},"id":6210,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"116617:3:0","nodeType":"FunctionDefinition","parameters":{"id":6197,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6192,"mutability":"mutable","name":"p0","nameLocation":"116629:2:0","nodeType":"VariableDeclaration","scope":6210,"src":"116621:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6191,"name":"address","nodeType":"ElementaryTypeName","src":"116621:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6194,"mutability":"mutable","name":"p1","nameLocation":"116641:2:0","nodeType":"VariableDeclaration","scope":6210,"src":"116633:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6193,"name":"address","nodeType":"ElementaryTypeName","src":"116633:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6196,"mutability":"mutable","name":"p2","nameLocation":"116650:2:0","nodeType":"VariableDeclaration","scope":6210,"src":"116645:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6195,"name":"uint","nodeType":"ElementaryTypeName","src":"116645:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"116620:33:0"},"returnParameters":{"id":6198,"nodeType":"ParameterList","parameters":[],"src":"116668:0:0"},"scope":12159,"src":"116608:158:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6229,"nodeType":"Block","src":"116841:100:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c737472696e6729","id":6222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"116891:29:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_007150be50a4671a6be318012e9cd2eabb1e1bc8869b45c34abbaa04d81c8eee","typeString":"literal_string \"log(address,address,string)\""},"value":"log(address,address,string)"},{"id":6223,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6212,"src":"116922:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6224,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6214,"src":"116926:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6225,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6216,"src":"116930:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_007150be50a4671a6be318012e9cd2eabb1e1bc8869b45c34abbaa04d81c8eee","typeString":"literal_string \"log(address,address,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6220,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"116867:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6221,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"116871:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"116867:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6226,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"116867:66:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6219,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"116851:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"116851:83:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6228,"nodeType":"ExpressionStatement","src":"116851:83:0"}]},"id":6230,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"116781:3:0","nodeType":"FunctionDefinition","parameters":{"id":6217,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6212,"mutability":"mutable","name":"p0","nameLocation":"116793:2:0","nodeType":"VariableDeclaration","scope":6230,"src":"116785:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6211,"name":"address","nodeType":"ElementaryTypeName","src":"116785:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6214,"mutability":"mutable","name":"p1","nameLocation":"116805:2:0","nodeType":"VariableDeclaration","scope":6230,"src":"116797:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6213,"name":"address","nodeType":"ElementaryTypeName","src":"116797:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6216,"mutability":"mutable","name":"p2","nameLocation":"116823:2:0","nodeType":"VariableDeclaration","scope":6230,"src":"116809:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6215,"name":"string","nodeType":"ElementaryTypeName","src":"116809:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"116784:42:0"},"returnParameters":{"id":6218,"nodeType":"ParameterList","parameters":[],"src":"116841:0:0"},"scope":12159,"src":"116772:169:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6249,"nodeType":"Block","src":"117007:98:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c626f6f6c29","id":6242,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"117057:27:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_f2a6628622808c8bbef4f3e513ab11e708a8f5073988f2f7988e111aa26586dc","typeString":"literal_string \"log(address,address,bool)\""},"value":"log(address,address,bool)"},{"id":6243,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6232,"src":"117086:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6244,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6234,"src":"117090:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6245,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6236,"src":"117094:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f2a6628622808c8bbef4f3e513ab11e708a8f5073988f2f7988e111aa26586dc","typeString":"literal_string \"log(address,address,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":6240,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"117033:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6241,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"117037:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"117033:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"117033:64:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6239,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"117017:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"117017:81:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6248,"nodeType":"ExpressionStatement","src":"117017:81:0"}]},"id":6250,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"116956:3:0","nodeType":"FunctionDefinition","parameters":{"id":6237,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6232,"mutability":"mutable","name":"p0","nameLocation":"116968:2:0","nodeType":"VariableDeclaration","scope":6250,"src":"116960:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6231,"name":"address","nodeType":"ElementaryTypeName","src":"116960:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6234,"mutability":"mutable","name":"p1","nameLocation":"116980:2:0","nodeType":"VariableDeclaration","scope":6250,"src":"116972:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6233,"name":"address","nodeType":"ElementaryTypeName","src":"116972:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6236,"mutability":"mutable","name":"p2","nameLocation":"116989:2:0","nodeType":"VariableDeclaration","scope":6250,"src":"116984:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6235,"name":"bool","nodeType":"ElementaryTypeName","src":"116984:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"116959:33:0"},"returnParameters":{"id":6238,"nodeType":"ParameterList","parameters":[],"src":"117007:0:0"},"scope":12159,"src":"116947:158:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6269,"nodeType":"Block","src":"117174:101:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c6164647265737329","id":6262,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"117224:30:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_018c84c25fb680b5bcd4e1ab1848682497c9dd3b635564a91c36ce3d1414c830","typeString":"literal_string \"log(address,address,address)\""},"value":"log(address,address,address)"},{"id":6263,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6252,"src":"117256:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6264,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6254,"src":"117260:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6265,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6256,"src":"117264:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_018c84c25fb680b5bcd4e1ab1848682497c9dd3b635564a91c36ce3d1414c830","typeString":"literal_string \"log(address,address,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6260,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"117200:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6261,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"117204:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"117200:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"117200:67:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6259,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"117184:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"117184:84:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6268,"nodeType":"ExpressionStatement","src":"117184:84:0"}]},"id":6270,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"117120:3:0","nodeType":"FunctionDefinition","parameters":{"id":6257,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6252,"mutability":"mutable","name":"p0","nameLocation":"117132:2:0","nodeType":"VariableDeclaration","scope":6270,"src":"117124:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6251,"name":"address","nodeType":"ElementaryTypeName","src":"117124:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6254,"mutability":"mutable","name":"p1","nameLocation":"117144:2:0","nodeType":"VariableDeclaration","scope":6270,"src":"117136:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6253,"name":"address","nodeType":"ElementaryTypeName","src":"117136:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6256,"mutability":"mutable","name":"p2","nameLocation":"117156:2:0","nodeType":"VariableDeclaration","scope":6270,"src":"117148:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6255,"name":"address","nodeType":"ElementaryTypeName","src":"117148:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"117123:36:0"},"returnParameters":{"id":6258,"nodeType":"ParameterList","parameters":[],"src":"117174:0:0"},"scope":12159,"src":"117111:164:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6292,"nodeType":"Block","src":"117344:101:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e742c75696e742c75696e7429","id":6284,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"117394:26:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ca0ad3ec7f731e4661cde447171efd221faf44c50b57eba4cc4965c1f89c0b6","typeString":"literal_string \"log(uint,uint,uint,uint)\""},"value":"log(uint,uint,uint,uint)"},{"id":6285,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6272,"src":"117422:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6286,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6274,"src":"117426:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6287,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6276,"src":"117430:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6288,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6278,"src":"117434:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5ca0ad3ec7f731e4661cde447171efd221faf44c50b57eba4cc4965c1f89c0b6","typeString":"literal_string \"log(uint,uint,uint,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6282,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"117370:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6283,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"117374:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"117370:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"117370:67:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6281,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"117354:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"117354:84:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6291,"nodeType":"ExpressionStatement","src":"117354:84:0"}]},"id":6293,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"117290:3:0","nodeType":"FunctionDefinition","parameters":{"id":6279,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6272,"mutability":"mutable","name":"p0","nameLocation":"117299:2:0","nodeType":"VariableDeclaration","scope":6293,"src":"117294:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6271,"name":"uint","nodeType":"ElementaryTypeName","src":"117294:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6274,"mutability":"mutable","name":"p1","nameLocation":"117308:2:0","nodeType":"VariableDeclaration","scope":6293,"src":"117303:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6273,"name":"uint","nodeType":"ElementaryTypeName","src":"117303:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6276,"mutability":"mutable","name":"p2","nameLocation":"117317:2:0","nodeType":"VariableDeclaration","scope":6293,"src":"117312:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6275,"name":"uint","nodeType":"ElementaryTypeName","src":"117312:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6278,"mutability":"mutable","name":"p3","nameLocation":"117326:2:0","nodeType":"VariableDeclaration","scope":6293,"src":"117321:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6277,"name":"uint","nodeType":"ElementaryTypeName","src":"117321:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"117293:36:0"},"returnParameters":{"id":6280,"nodeType":"ParameterList","parameters":[],"src":"117344:0:0"},"scope":12159,"src":"117281:164:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6315,"nodeType":"Block","src":"117523:103:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e742c75696e742c737472696e6729","id":6307,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"117573:28:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_78ad7a0c8cf57ba0e3b9e892fd6558ba40a5d4c84ef5c8c5e36bfc8d7f23b0c5","typeString":"literal_string \"log(uint,uint,uint,string)\""},"value":"log(uint,uint,uint,string)"},{"id":6308,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6295,"src":"117603:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6309,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6297,"src":"117607:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6310,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6299,"src":"117611:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6311,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6301,"src":"117615:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_78ad7a0c8cf57ba0e3b9e892fd6558ba40a5d4c84ef5c8c5e36bfc8d7f23b0c5","typeString":"literal_string \"log(uint,uint,uint,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6305,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"117549:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6306,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"117553:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"117549:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6312,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"117549:69:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6304,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"117533:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"117533:86:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6314,"nodeType":"ExpressionStatement","src":"117533:86:0"}]},"id":6316,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"117460:3:0","nodeType":"FunctionDefinition","parameters":{"id":6302,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6295,"mutability":"mutable","name":"p0","nameLocation":"117469:2:0","nodeType":"VariableDeclaration","scope":6316,"src":"117464:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6294,"name":"uint","nodeType":"ElementaryTypeName","src":"117464:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6297,"mutability":"mutable","name":"p1","nameLocation":"117478:2:0","nodeType":"VariableDeclaration","scope":6316,"src":"117473:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6296,"name":"uint","nodeType":"ElementaryTypeName","src":"117473:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6299,"mutability":"mutable","name":"p2","nameLocation":"117487:2:0","nodeType":"VariableDeclaration","scope":6316,"src":"117482:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6298,"name":"uint","nodeType":"ElementaryTypeName","src":"117482:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6301,"mutability":"mutable","name":"p3","nameLocation":"117505:2:0","nodeType":"VariableDeclaration","scope":6316,"src":"117491:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6300,"name":"string","nodeType":"ElementaryTypeName","src":"117491:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"117463:45:0"},"returnParameters":{"id":6303,"nodeType":"ParameterList","parameters":[],"src":"117523:0:0"},"scope":12159,"src":"117451:175:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6338,"nodeType":"Block","src":"117695:101:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e742c75696e742c626f6f6c29","id":6330,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"117745:26:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_6452b9cbdf8b8479d7ee301237b2d6dfa173fc92538628ab30d643fb4351918f","typeString":"literal_string \"log(uint,uint,uint,bool)\""},"value":"log(uint,uint,uint,bool)"},{"id":6331,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6318,"src":"117773:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6332,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6320,"src":"117777:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6333,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6322,"src":"117781:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6334,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6324,"src":"117785:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6452b9cbdf8b8479d7ee301237b2d6dfa173fc92538628ab30d643fb4351918f","typeString":"literal_string \"log(uint,uint,uint,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":6328,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"117721:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6329,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"117725:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"117721:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"117721:67:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6327,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"117705:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"117705:84:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6337,"nodeType":"ExpressionStatement","src":"117705:84:0"}]},"id":6339,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"117641:3:0","nodeType":"FunctionDefinition","parameters":{"id":6325,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6318,"mutability":"mutable","name":"p0","nameLocation":"117650:2:0","nodeType":"VariableDeclaration","scope":6339,"src":"117645:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6317,"name":"uint","nodeType":"ElementaryTypeName","src":"117645:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6320,"mutability":"mutable","name":"p1","nameLocation":"117659:2:0","nodeType":"VariableDeclaration","scope":6339,"src":"117654:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6319,"name":"uint","nodeType":"ElementaryTypeName","src":"117654:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6322,"mutability":"mutable","name":"p2","nameLocation":"117668:2:0","nodeType":"VariableDeclaration","scope":6339,"src":"117663:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6321,"name":"uint","nodeType":"ElementaryTypeName","src":"117663:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6324,"mutability":"mutable","name":"p3","nameLocation":"117677:2:0","nodeType":"VariableDeclaration","scope":6339,"src":"117672:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6323,"name":"bool","nodeType":"ElementaryTypeName","src":"117672:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"117644:36:0"},"returnParameters":{"id":6326,"nodeType":"ParameterList","parameters":[],"src":"117695:0:0"},"scope":12159,"src":"117632:164:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6361,"nodeType":"Block","src":"117868:104:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e742c75696e742c6164647265737329","id":6353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"117918:29:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e0853f69a5584c9e0aa87ddae9bd870cf5164166d612d334644e66176c1213ba","typeString":"literal_string \"log(uint,uint,uint,address)\""},"value":"log(uint,uint,uint,address)"},{"id":6354,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6341,"src":"117949:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6355,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6343,"src":"117953:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6356,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6345,"src":"117957:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6357,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6347,"src":"117961:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e0853f69a5584c9e0aa87ddae9bd870cf5164166d612d334644e66176c1213ba","typeString":"literal_string \"log(uint,uint,uint,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6351,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"117894:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6352,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"117898:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"117894:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6358,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"117894:70:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6350,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"117878:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"117878:87:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6360,"nodeType":"ExpressionStatement","src":"117878:87:0"}]},"id":6362,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"117811:3:0","nodeType":"FunctionDefinition","parameters":{"id":6348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6341,"mutability":"mutable","name":"p0","nameLocation":"117820:2:0","nodeType":"VariableDeclaration","scope":6362,"src":"117815:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6340,"name":"uint","nodeType":"ElementaryTypeName","src":"117815:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6343,"mutability":"mutable","name":"p1","nameLocation":"117829:2:0","nodeType":"VariableDeclaration","scope":6362,"src":"117824:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6342,"name":"uint","nodeType":"ElementaryTypeName","src":"117824:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6345,"mutability":"mutable","name":"p2","nameLocation":"117838:2:0","nodeType":"VariableDeclaration","scope":6362,"src":"117833:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6344,"name":"uint","nodeType":"ElementaryTypeName","src":"117833:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6347,"mutability":"mutable","name":"p3","nameLocation":"117850:2:0","nodeType":"VariableDeclaration","scope":6362,"src":"117842:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6346,"name":"address","nodeType":"ElementaryTypeName","src":"117842:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"117814:39:0"},"returnParameters":{"id":6349,"nodeType":"ParameterList","parameters":[],"src":"117868:0:0"},"scope":12159,"src":"117802:170:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6384,"nodeType":"Block","src":"118050:103:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e742c737472696e672c75696e7429","id":6376,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"118100:28:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_3894163d4e8f3eec101fb8e2c1029563bd05d05ee1d1790a46910ebbbdc3072e","typeString":"literal_string \"log(uint,uint,string,uint)\""},"value":"log(uint,uint,string,uint)"},{"id":6377,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6364,"src":"118130:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6378,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6366,"src":"118134:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6379,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6368,"src":"118138:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6380,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6370,"src":"118142:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3894163d4e8f3eec101fb8e2c1029563bd05d05ee1d1790a46910ebbbdc3072e","typeString":"literal_string \"log(uint,uint,string,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6374,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"118076:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6375,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"118080:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"118076:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"118076:69:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6373,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"118060:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"118060:86:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6383,"nodeType":"ExpressionStatement","src":"118060:86:0"}]},"id":6385,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"117987:3:0","nodeType":"FunctionDefinition","parameters":{"id":6371,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6364,"mutability":"mutable","name":"p0","nameLocation":"117996:2:0","nodeType":"VariableDeclaration","scope":6385,"src":"117991:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6363,"name":"uint","nodeType":"ElementaryTypeName","src":"117991:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6366,"mutability":"mutable","name":"p1","nameLocation":"118005:2:0","nodeType":"VariableDeclaration","scope":6385,"src":"118000:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6365,"name":"uint","nodeType":"ElementaryTypeName","src":"118000:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6368,"mutability":"mutable","name":"p2","nameLocation":"118023:2:0","nodeType":"VariableDeclaration","scope":6385,"src":"118009:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6367,"name":"string","nodeType":"ElementaryTypeName","src":"118009:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6370,"mutability":"mutable","name":"p3","nameLocation":"118032:2:0","nodeType":"VariableDeclaration","scope":6385,"src":"118027:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6369,"name":"uint","nodeType":"ElementaryTypeName","src":"118027:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"117990:45:0"},"returnParameters":{"id":6372,"nodeType":"ParameterList","parameters":[],"src":"118050:0:0"},"scope":12159,"src":"117978:175:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6407,"nodeType":"Block","src":"118240:105:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e742c737472696e672c737472696e6729","id":6399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"118290:30:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_7c032a3207958e3d969ab52b045e7a59226129ee4b9e813f7071f9a5e80813f6","typeString":"literal_string \"log(uint,uint,string,string)\""},"value":"log(uint,uint,string,string)"},{"id":6400,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6387,"src":"118322:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6401,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6389,"src":"118326:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6402,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6391,"src":"118330:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6403,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6393,"src":"118334:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7c032a3207958e3d969ab52b045e7a59226129ee4b9e813f7071f9a5e80813f6","typeString":"literal_string \"log(uint,uint,string,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6397,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"118266:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6398,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"118270:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"118266:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"118266:71:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6396,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"118250:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"118250:88:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6406,"nodeType":"ExpressionStatement","src":"118250:88:0"}]},"id":6408,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"118168:3:0","nodeType":"FunctionDefinition","parameters":{"id":6394,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6387,"mutability":"mutable","name":"p0","nameLocation":"118177:2:0","nodeType":"VariableDeclaration","scope":6408,"src":"118172:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6386,"name":"uint","nodeType":"ElementaryTypeName","src":"118172:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6389,"mutability":"mutable","name":"p1","nameLocation":"118186:2:0","nodeType":"VariableDeclaration","scope":6408,"src":"118181:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6388,"name":"uint","nodeType":"ElementaryTypeName","src":"118181:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6391,"mutability":"mutable","name":"p2","nameLocation":"118204:2:0","nodeType":"VariableDeclaration","scope":6408,"src":"118190:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6390,"name":"string","nodeType":"ElementaryTypeName","src":"118190:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6393,"mutability":"mutable","name":"p3","nameLocation":"118222:2:0","nodeType":"VariableDeclaration","scope":6408,"src":"118208:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6392,"name":"string","nodeType":"ElementaryTypeName","src":"118208:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"118171:54:0"},"returnParameters":{"id":6395,"nodeType":"ParameterList","parameters":[],"src":"118240:0:0"},"scope":12159,"src":"118159:186:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6430,"nodeType":"Block","src":"118423:103:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e742c737472696e672c626f6f6c29","id":6422,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"118473:28:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_b22eaf06d72d481cf9b94b8f4d5fb89cf08bbfd924ee166a250ac94617be65b9","typeString":"literal_string \"log(uint,uint,string,bool)\""},"value":"log(uint,uint,string,bool)"},{"id":6423,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6410,"src":"118503:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6424,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6412,"src":"118507:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6425,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6414,"src":"118511:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6426,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6416,"src":"118515:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b22eaf06d72d481cf9b94b8f4d5fb89cf08bbfd924ee166a250ac94617be65b9","typeString":"literal_string \"log(uint,uint,string,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":6420,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"118449:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6421,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"118453:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"118449:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"118449:69:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6419,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"118433:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"118433:86:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6429,"nodeType":"ExpressionStatement","src":"118433:86:0"}]},"id":6431,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"118360:3:0","nodeType":"FunctionDefinition","parameters":{"id":6417,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6410,"mutability":"mutable","name":"p0","nameLocation":"118369:2:0","nodeType":"VariableDeclaration","scope":6431,"src":"118364:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6409,"name":"uint","nodeType":"ElementaryTypeName","src":"118364:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6412,"mutability":"mutable","name":"p1","nameLocation":"118378:2:0","nodeType":"VariableDeclaration","scope":6431,"src":"118373:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6411,"name":"uint","nodeType":"ElementaryTypeName","src":"118373:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6414,"mutability":"mutable","name":"p2","nameLocation":"118396:2:0","nodeType":"VariableDeclaration","scope":6431,"src":"118382:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6413,"name":"string","nodeType":"ElementaryTypeName","src":"118382:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6416,"mutability":"mutable","name":"p3","nameLocation":"118405:2:0","nodeType":"VariableDeclaration","scope":6431,"src":"118400:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6415,"name":"bool","nodeType":"ElementaryTypeName","src":"118400:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"118363:45:0"},"returnParameters":{"id":6418,"nodeType":"ParameterList","parameters":[],"src":"118423:0:0"},"scope":12159,"src":"118351:175:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6453,"nodeType":"Block","src":"118607:106:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e742c737472696e672c6164647265737329","id":6445,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"118657:31:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_433285a23ec6b1f0f76da64682232527561857544109f80e3e5d46b0e16980e7","typeString":"literal_string \"log(uint,uint,string,address)\""},"value":"log(uint,uint,string,address)"},{"id":6446,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6433,"src":"118690:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6447,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6435,"src":"118694:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6448,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6437,"src":"118698:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6449,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6439,"src":"118702:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_433285a23ec6b1f0f76da64682232527561857544109f80e3e5d46b0e16980e7","typeString":"literal_string \"log(uint,uint,string,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6443,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"118633:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6444,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"118637:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"118633:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"118633:72:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6442,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"118617:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"118617:89:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6452,"nodeType":"ExpressionStatement","src":"118617:89:0"}]},"id":6454,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"118541:3:0","nodeType":"FunctionDefinition","parameters":{"id":6440,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6433,"mutability":"mutable","name":"p0","nameLocation":"118550:2:0","nodeType":"VariableDeclaration","scope":6454,"src":"118545:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6432,"name":"uint","nodeType":"ElementaryTypeName","src":"118545:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6435,"mutability":"mutable","name":"p1","nameLocation":"118559:2:0","nodeType":"VariableDeclaration","scope":6454,"src":"118554:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6434,"name":"uint","nodeType":"ElementaryTypeName","src":"118554:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6437,"mutability":"mutable","name":"p2","nameLocation":"118577:2:0","nodeType":"VariableDeclaration","scope":6454,"src":"118563:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6436,"name":"string","nodeType":"ElementaryTypeName","src":"118563:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6439,"mutability":"mutable","name":"p3","nameLocation":"118589:2:0","nodeType":"VariableDeclaration","scope":6454,"src":"118581:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6438,"name":"address","nodeType":"ElementaryTypeName","src":"118581:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"118544:48:0"},"returnParameters":{"id":6441,"nodeType":"ParameterList","parameters":[],"src":"118607:0:0"},"scope":12159,"src":"118532:181:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6476,"nodeType":"Block","src":"118782:101:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e742c626f6f6c2c75696e7429","id":6468,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"118832:26:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_6c647c8c5fed6e02ad4f1c7bfb891e58ba00758f5d6cb92966fd0684c5b3fc8d","typeString":"literal_string \"log(uint,uint,bool,uint)\""},"value":"log(uint,uint,bool,uint)"},{"id":6469,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6456,"src":"118860:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6470,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6458,"src":"118864:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6471,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6460,"src":"118868:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6472,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6462,"src":"118872:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6c647c8c5fed6e02ad4f1c7bfb891e58ba00758f5d6cb92966fd0684c5b3fc8d","typeString":"literal_string \"log(uint,uint,bool,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6466,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"118808:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6467,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"118812:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"118808:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"118808:67:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6465,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"118792:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"118792:84:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6475,"nodeType":"ExpressionStatement","src":"118792:84:0"}]},"id":6477,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"118728:3:0","nodeType":"FunctionDefinition","parameters":{"id":6463,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6456,"mutability":"mutable","name":"p0","nameLocation":"118737:2:0","nodeType":"VariableDeclaration","scope":6477,"src":"118732:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6455,"name":"uint","nodeType":"ElementaryTypeName","src":"118732:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6458,"mutability":"mutable","name":"p1","nameLocation":"118746:2:0","nodeType":"VariableDeclaration","scope":6477,"src":"118741:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6457,"name":"uint","nodeType":"ElementaryTypeName","src":"118741:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6460,"mutability":"mutable","name":"p2","nameLocation":"118755:2:0","nodeType":"VariableDeclaration","scope":6477,"src":"118750:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6459,"name":"bool","nodeType":"ElementaryTypeName","src":"118750:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6462,"mutability":"mutable","name":"p3","nameLocation":"118764:2:0","nodeType":"VariableDeclaration","scope":6477,"src":"118759:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6461,"name":"uint","nodeType":"ElementaryTypeName","src":"118759:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"118731:36:0"},"returnParameters":{"id":6464,"nodeType":"ParameterList","parameters":[],"src":"118782:0:0"},"scope":12159,"src":"118719:164:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6499,"nodeType":"Block","src":"118961:103:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e742c626f6f6c2c737472696e6729","id":6491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"119011:28:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_efd9cbeee79713372dd0a748a26a3fb36cbe4eb4e01a37fbde0cde0e101fc85a","typeString":"literal_string \"log(uint,uint,bool,string)\""},"value":"log(uint,uint,bool,string)"},{"id":6492,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6479,"src":"119041:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6493,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6481,"src":"119045:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6494,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6483,"src":"119049:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6495,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6485,"src":"119053:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_efd9cbeee79713372dd0a748a26a3fb36cbe4eb4e01a37fbde0cde0e101fc85a","typeString":"literal_string \"log(uint,uint,bool,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6489,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"118987:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6490,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"118991:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"118987:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"118987:69:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6488,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"118971:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"118971:86:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6498,"nodeType":"ExpressionStatement","src":"118971:86:0"}]},"id":6500,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"118898:3:0","nodeType":"FunctionDefinition","parameters":{"id":6486,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6479,"mutability":"mutable","name":"p0","nameLocation":"118907:2:0","nodeType":"VariableDeclaration","scope":6500,"src":"118902:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6478,"name":"uint","nodeType":"ElementaryTypeName","src":"118902:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6481,"mutability":"mutable","name":"p1","nameLocation":"118916:2:0","nodeType":"VariableDeclaration","scope":6500,"src":"118911:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6480,"name":"uint","nodeType":"ElementaryTypeName","src":"118911:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6483,"mutability":"mutable","name":"p2","nameLocation":"118925:2:0","nodeType":"VariableDeclaration","scope":6500,"src":"118920:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6482,"name":"bool","nodeType":"ElementaryTypeName","src":"118920:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6485,"mutability":"mutable","name":"p3","nameLocation":"118943:2:0","nodeType":"VariableDeclaration","scope":6500,"src":"118929:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6484,"name":"string","nodeType":"ElementaryTypeName","src":"118929:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"118901:45:0"},"returnParameters":{"id":6487,"nodeType":"ParameterList","parameters":[],"src":"118961:0:0"},"scope":12159,"src":"118889:175:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6522,"nodeType":"Block","src":"119133:101:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e742c626f6f6c2c626f6f6c29","id":6514,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"119183:26:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_94be3bb13e096cdbc5a1999a524e3b6664a32da7e2c2954ae0e2b792a0dd1f41","typeString":"literal_string \"log(uint,uint,bool,bool)\""},"value":"log(uint,uint,bool,bool)"},{"id":6515,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6502,"src":"119211:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6516,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6504,"src":"119215:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6517,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6506,"src":"119219:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6518,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6508,"src":"119223:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_94be3bb13e096cdbc5a1999a524e3b6664a32da7e2c2954ae0e2b792a0dd1f41","typeString":"literal_string \"log(uint,uint,bool,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":6512,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"119159:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6513,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"119163:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"119159:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"119159:67:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6511,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"119143:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6520,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"119143:84:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6521,"nodeType":"ExpressionStatement","src":"119143:84:0"}]},"id":6523,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"119079:3:0","nodeType":"FunctionDefinition","parameters":{"id":6509,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6502,"mutability":"mutable","name":"p0","nameLocation":"119088:2:0","nodeType":"VariableDeclaration","scope":6523,"src":"119083:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6501,"name":"uint","nodeType":"ElementaryTypeName","src":"119083:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6504,"mutability":"mutable","name":"p1","nameLocation":"119097:2:0","nodeType":"VariableDeclaration","scope":6523,"src":"119092:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6503,"name":"uint","nodeType":"ElementaryTypeName","src":"119092:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6506,"mutability":"mutable","name":"p2","nameLocation":"119106:2:0","nodeType":"VariableDeclaration","scope":6523,"src":"119101:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6505,"name":"bool","nodeType":"ElementaryTypeName","src":"119101:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6508,"mutability":"mutable","name":"p3","nameLocation":"119115:2:0","nodeType":"VariableDeclaration","scope":6523,"src":"119110:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6507,"name":"bool","nodeType":"ElementaryTypeName","src":"119110:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"119082:36:0"},"returnParameters":{"id":6510,"nodeType":"ParameterList","parameters":[],"src":"119133:0:0"},"scope":12159,"src":"119070:164:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6545,"nodeType":"Block","src":"119306:104:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e742c626f6f6c2c6164647265737329","id":6537,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"119356:29:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e117744fcc46e4484cabd18d640497b4a9d76b7f775e79fe9a95e42427bd8976","typeString":"literal_string \"log(uint,uint,bool,address)\""},"value":"log(uint,uint,bool,address)"},{"id":6538,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6525,"src":"119387:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6539,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6527,"src":"119391:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6540,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6529,"src":"119395:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6541,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6531,"src":"119399:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e117744fcc46e4484cabd18d640497b4a9d76b7f775e79fe9a95e42427bd8976","typeString":"literal_string \"log(uint,uint,bool,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6535,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"119332:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6536,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"119336:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"119332:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6542,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"119332:70:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6534,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"119316:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"119316:87:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6544,"nodeType":"ExpressionStatement","src":"119316:87:0"}]},"id":6546,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"119249:3:0","nodeType":"FunctionDefinition","parameters":{"id":6532,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6525,"mutability":"mutable","name":"p0","nameLocation":"119258:2:0","nodeType":"VariableDeclaration","scope":6546,"src":"119253:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6524,"name":"uint","nodeType":"ElementaryTypeName","src":"119253:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6527,"mutability":"mutable","name":"p1","nameLocation":"119267:2:0","nodeType":"VariableDeclaration","scope":6546,"src":"119262:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6526,"name":"uint","nodeType":"ElementaryTypeName","src":"119262:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6529,"mutability":"mutable","name":"p2","nameLocation":"119276:2:0","nodeType":"VariableDeclaration","scope":6546,"src":"119271:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6528,"name":"bool","nodeType":"ElementaryTypeName","src":"119271:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6531,"mutability":"mutable","name":"p3","nameLocation":"119288:2:0","nodeType":"VariableDeclaration","scope":6546,"src":"119280:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6530,"name":"address","nodeType":"ElementaryTypeName","src":"119280:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"119252:39:0"},"returnParameters":{"id":6533,"nodeType":"ParameterList","parameters":[],"src":"119306:0:0"},"scope":12159,"src":"119240:170:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6568,"nodeType":"Block","src":"119482:104:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e742c616464726573732c75696e7429","id":6560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"119532:29:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_610ba8c0cae1123f7f8ad76791afd86dc185a4f1fe79a263112118ddb5231e9f","typeString":"literal_string \"log(uint,uint,address,uint)\""},"value":"log(uint,uint,address,uint)"},{"id":6561,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6548,"src":"119563:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6562,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6550,"src":"119567:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6563,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6552,"src":"119571:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6564,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6554,"src":"119575:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_610ba8c0cae1123f7f8ad76791afd86dc185a4f1fe79a263112118ddb5231e9f","typeString":"literal_string \"log(uint,uint,address,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6558,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"119508:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6559,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"119512:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"119508:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"119508:70:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6557,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"119492:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"119492:87:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6567,"nodeType":"ExpressionStatement","src":"119492:87:0"}]},"id":6569,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"119425:3:0","nodeType":"FunctionDefinition","parameters":{"id":6555,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6548,"mutability":"mutable","name":"p0","nameLocation":"119434:2:0","nodeType":"VariableDeclaration","scope":6569,"src":"119429:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6547,"name":"uint","nodeType":"ElementaryTypeName","src":"119429:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6550,"mutability":"mutable","name":"p1","nameLocation":"119443:2:0","nodeType":"VariableDeclaration","scope":6569,"src":"119438:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6549,"name":"uint","nodeType":"ElementaryTypeName","src":"119438:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6552,"mutability":"mutable","name":"p2","nameLocation":"119455:2:0","nodeType":"VariableDeclaration","scope":6569,"src":"119447:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6551,"name":"address","nodeType":"ElementaryTypeName","src":"119447:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6554,"mutability":"mutable","name":"p3","nameLocation":"119464:2:0","nodeType":"VariableDeclaration","scope":6569,"src":"119459:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6553,"name":"uint","nodeType":"ElementaryTypeName","src":"119459:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"119428:39:0"},"returnParameters":{"id":6556,"nodeType":"ParameterList","parameters":[],"src":"119482:0:0"},"scope":12159,"src":"119416:170:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6591,"nodeType":"Block","src":"119667:106:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e742c616464726573732c737472696e6729","id":6583,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"119717:31:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_d6a2d1de1bf5c0a47e82220cd592c8fb4a4a43f17ecab471044861ef70454227","typeString":"literal_string \"log(uint,uint,address,string)\""},"value":"log(uint,uint,address,string)"},{"id":6584,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6571,"src":"119750:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6585,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6573,"src":"119754:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6586,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6575,"src":"119758:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6587,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6577,"src":"119762:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d6a2d1de1bf5c0a47e82220cd592c8fb4a4a43f17ecab471044861ef70454227","typeString":"literal_string \"log(uint,uint,address,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6581,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"119693:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6582,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"119697:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"119693:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6588,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"119693:72:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6580,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"119677:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"119677:89:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6590,"nodeType":"ExpressionStatement","src":"119677:89:0"}]},"id":6592,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"119601:3:0","nodeType":"FunctionDefinition","parameters":{"id":6578,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6571,"mutability":"mutable","name":"p0","nameLocation":"119610:2:0","nodeType":"VariableDeclaration","scope":6592,"src":"119605:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6570,"name":"uint","nodeType":"ElementaryTypeName","src":"119605:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6573,"mutability":"mutable","name":"p1","nameLocation":"119619:2:0","nodeType":"VariableDeclaration","scope":6592,"src":"119614:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6572,"name":"uint","nodeType":"ElementaryTypeName","src":"119614:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6575,"mutability":"mutable","name":"p2","nameLocation":"119631:2:0","nodeType":"VariableDeclaration","scope":6592,"src":"119623:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6574,"name":"address","nodeType":"ElementaryTypeName","src":"119623:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6577,"mutability":"mutable","name":"p3","nameLocation":"119649:2:0","nodeType":"VariableDeclaration","scope":6592,"src":"119635:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6576,"name":"string","nodeType":"ElementaryTypeName","src":"119635:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"119604:48:0"},"returnParameters":{"id":6579,"nodeType":"ParameterList","parameters":[],"src":"119667:0:0"},"scope":12159,"src":"119592:181:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6614,"nodeType":"Block","src":"119845:104:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e742c616464726573732c626f6f6c29","id":6606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"119895:29:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_a8e820ae9dc5fd5a845e5dabf2b296e5588fe5a0d8101de14323ebe3e8e2b6c0","typeString":"literal_string \"log(uint,uint,address,bool)\""},"value":"log(uint,uint,address,bool)"},{"id":6607,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6594,"src":"119926:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6608,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6596,"src":"119930:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6609,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6598,"src":"119934:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6610,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6600,"src":"119938:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a8e820ae9dc5fd5a845e5dabf2b296e5588fe5a0d8101de14323ebe3e8e2b6c0","typeString":"literal_string \"log(uint,uint,address,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":6604,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"119871:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6605,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"119875:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"119871:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"119871:70:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6603,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"119855:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"119855:87:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6613,"nodeType":"ExpressionStatement","src":"119855:87:0"}]},"id":6615,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"119788:3:0","nodeType":"FunctionDefinition","parameters":{"id":6601,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6594,"mutability":"mutable","name":"p0","nameLocation":"119797:2:0","nodeType":"VariableDeclaration","scope":6615,"src":"119792:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6593,"name":"uint","nodeType":"ElementaryTypeName","src":"119792:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6596,"mutability":"mutable","name":"p1","nameLocation":"119806:2:0","nodeType":"VariableDeclaration","scope":6615,"src":"119801:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6595,"name":"uint","nodeType":"ElementaryTypeName","src":"119801:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6598,"mutability":"mutable","name":"p2","nameLocation":"119818:2:0","nodeType":"VariableDeclaration","scope":6615,"src":"119810:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6597,"name":"address","nodeType":"ElementaryTypeName","src":"119810:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6600,"mutability":"mutable","name":"p3","nameLocation":"119827:2:0","nodeType":"VariableDeclaration","scope":6615,"src":"119822:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6599,"name":"bool","nodeType":"ElementaryTypeName","src":"119822:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"119791:39:0"},"returnParameters":{"id":6602,"nodeType":"ParameterList","parameters":[],"src":"119845:0:0"},"scope":12159,"src":"119779:170:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6637,"nodeType":"Block","src":"120024:107:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e742c616464726573732c6164647265737329","id":6629,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"120074:32:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_ca939b20e9284d76bbbc091d0d45d06f650171230ac4f1f35652b8b6e1579811","typeString":"literal_string \"log(uint,uint,address,address)\""},"value":"log(uint,uint,address,address)"},{"id":6630,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6617,"src":"120108:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6631,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6619,"src":"120112:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6632,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6621,"src":"120116:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6633,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6623,"src":"120120:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ca939b20e9284d76bbbc091d0d45d06f650171230ac4f1f35652b8b6e1579811","typeString":"literal_string \"log(uint,uint,address,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6627,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"120050:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6628,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"120054:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"120050:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"120050:73:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6626,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"120034:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"120034:90:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6636,"nodeType":"ExpressionStatement","src":"120034:90:0"}]},"id":6638,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"119964:3:0","nodeType":"FunctionDefinition","parameters":{"id":6624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6617,"mutability":"mutable","name":"p0","nameLocation":"119973:2:0","nodeType":"VariableDeclaration","scope":6638,"src":"119968:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6616,"name":"uint","nodeType":"ElementaryTypeName","src":"119968:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6619,"mutability":"mutable","name":"p1","nameLocation":"119982:2:0","nodeType":"VariableDeclaration","scope":6638,"src":"119977:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6618,"name":"uint","nodeType":"ElementaryTypeName","src":"119977:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6621,"mutability":"mutable","name":"p2","nameLocation":"119994:2:0","nodeType":"VariableDeclaration","scope":6638,"src":"119986:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6620,"name":"address","nodeType":"ElementaryTypeName","src":"119986:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6623,"mutability":"mutable","name":"p3","nameLocation":"120006:2:0","nodeType":"VariableDeclaration","scope":6638,"src":"119998:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6622,"name":"address","nodeType":"ElementaryTypeName","src":"119998:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"119967:42:0"},"returnParameters":{"id":6625,"nodeType":"ParameterList","parameters":[],"src":"120024:0:0"},"scope":12159,"src":"119955:176:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6660,"nodeType":"Block","src":"120209:103:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e672c75696e742c75696e7429","id":6652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"120259:28:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_c0043807b5f951e0375253205c951c6e6a6b19b5de111342e8f6be7c7f284628","typeString":"literal_string \"log(uint,string,uint,uint)\""},"value":"log(uint,string,uint,uint)"},{"id":6653,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6640,"src":"120289:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6654,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6642,"src":"120293:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6655,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6644,"src":"120297:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6656,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6646,"src":"120301:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c0043807b5f951e0375253205c951c6e6a6b19b5de111342e8f6be7c7f284628","typeString":"literal_string \"log(uint,string,uint,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6650,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"120235:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6651,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"120239:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"120235:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"120235:69:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6649,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"120219:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"120219:86:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6659,"nodeType":"ExpressionStatement","src":"120219:86:0"}]},"id":6661,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"120146:3:0","nodeType":"FunctionDefinition","parameters":{"id":6647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6640,"mutability":"mutable","name":"p0","nameLocation":"120155:2:0","nodeType":"VariableDeclaration","scope":6661,"src":"120150:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6639,"name":"uint","nodeType":"ElementaryTypeName","src":"120150:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6642,"mutability":"mutable","name":"p1","nameLocation":"120173:2:0","nodeType":"VariableDeclaration","scope":6661,"src":"120159:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6641,"name":"string","nodeType":"ElementaryTypeName","src":"120159:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6644,"mutability":"mutable","name":"p2","nameLocation":"120182:2:0","nodeType":"VariableDeclaration","scope":6661,"src":"120177:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6643,"name":"uint","nodeType":"ElementaryTypeName","src":"120177:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6646,"mutability":"mutable","name":"p3","nameLocation":"120191:2:0","nodeType":"VariableDeclaration","scope":6661,"src":"120186:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6645,"name":"uint","nodeType":"ElementaryTypeName","src":"120186:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"120149:45:0"},"returnParameters":{"id":6648,"nodeType":"ParameterList","parameters":[],"src":"120209:0:0"},"scope":12159,"src":"120137:175:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6683,"nodeType":"Block","src":"120399:105:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e672c75696e742c737472696e6729","id":6675,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"120449:30:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_a2bc0c99cedfd873182e8eb1e68799dc8925c663b8ce2430858586fba62fe313","typeString":"literal_string \"log(uint,string,uint,string)\""},"value":"log(uint,string,uint,string)"},{"id":6676,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6663,"src":"120481:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6677,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6665,"src":"120485:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6678,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6667,"src":"120489:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6679,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6669,"src":"120493:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a2bc0c99cedfd873182e8eb1e68799dc8925c663b8ce2430858586fba62fe313","typeString":"literal_string \"log(uint,string,uint,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6673,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"120425:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6674,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"120429:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"120425:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"120425:71:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6672,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"120409:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"120409:88:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6682,"nodeType":"ExpressionStatement","src":"120409:88:0"}]},"id":6684,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"120327:3:0","nodeType":"FunctionDefinition","parameters":{"id":6670,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6663,"mutability":"mutable","name":"p0","nameLocation":"120336:2:0","nodeType":"VariableDeclaration","scope":6684,"src":"120331:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6662,"name":"uint","nodeType":"ElementaryTypeName","src":"120331:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6665,"mutability":"mutable","name":"p1","nameLocation":"120354:2:0","nodeType":"VariableDeclaration","scope":6684,"src":"120340:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6664,"name":"string","nodeType":"ElementaryTypeName","src":"120340:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6667,"mutability":"mutable","name":"p2","nameLocation":"120363:2:0","nodeType":"VariableDeclaration","scope":6684,"src":"120358:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6666,"name":"uint","nodeType":"ElementaryTypeName","src":"120358:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6669,"mutability":"mutable","name":"p3","nameLocation":"120381:2:0","nodeType":"VariableDeclaration","scope":6684,"src":"120367:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6668,"name":"string","nodeType":"ElementaryTypeName","src":"120367:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"120330:54:0"},"returnParameters":{"id":6671,"nodeType":"ParameterList","parameters":[],"src":"120399:0:0"},"scope":12159,"src":"120318:186:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6706,"nodeType":"Block","src":"120582:103:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e672c75696e742c626f6f6c29","id":6698,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"120632:28:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_875a6e2ed2444d0d09e264b06717914212d8a793bea0f48b5633e707ac53784d","typeString":"literal_string \"log(uint,string,uint,bool)\""},"value":"log(uint,string,uint,bool)"},{"id":6699,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6686,"src":"120662:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6700,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6688,"src":"120666:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6701,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6690,"src":"120670:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6702,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6692,"src":"120674:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_875a6e2ed2444d0d09e264b06717914212d8a793bea0f48b5633e707ac53784d","typeString":"literal_string \"log(uint,string,uint,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":6696,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"120608:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6697,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"120612:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"120608:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"120608:69:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6695,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"120592:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"120592:86:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6705,"nodeType":"ExpressionStatement","src":"120592:86:0"}]},"id":6707,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"120519:3:0","nodeType":"FunctionDefinition","parameters":{"id":6693,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6686,"mutability":"mutable","name":"p0","nameLocation":"120528:2:0","nodeType":"VariableDeclaration","scope":6707,"src":"120523:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6685,"name":"uint","nodeType":"ElementaryTypeName","src":"120523:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6688,"mutability":"mutable","name":"p1","nameLocation":"120546:2:0","nodeType":"VariableDeclaration","scope":6707,"src":"120532:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6687,"name":"string","nodeType":"ElementaryTypeName","src":"120532:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6690,"mutability":"mutable","name":"p2","nameLocation":"120555:2:0","nodeType":"VariableDeclaration","scope":6707,"src":"120550:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6689,"name":"uint","nodeType":"ElementaryTypeName","src":"120550:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6692,"mutability":"mutable","name":"p3","nameLocation":"120564:2:0","nodeType":"VariableDeclaration","scope":6707,"src":"120559:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6691,"name":"bool","nodeType":"ElementaryTypeName","src":"120559:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"120522:45:0"},"returnParameters":{"id":6694,"nodeType":"ParameterList","parameters":[],"src":"120582:0:0"},"scope":12159,"src":"120510:175:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6729,"nodeType":"Block","src":"120766:106:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e672c75696e742c6164647265737329","id":6721,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"120816:31:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_ab7bd9fd9b149127bbb235a3e1bec9a2e844f3968bdc1f48944c4b1973dacfda","typeString":"literal_string \"log(uint,string,uint,address)\""},"value":"log(uint,string,uint,address)"},{"id":6722,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6709,"src":"120849:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6723,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6711,"src":"120853:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6724,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6713,"src":"120857:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6725,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6715,"src":"120861:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ab7bd9fd9b149127bbb235a3e1bec9a2e844f3968bdc1f48944c4b1973dacfda","typeString":"literal_string \"log(uint,string,uint,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6719,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"120792:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6720,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"120796:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"120792:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"120792:72:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6718,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"120776:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"120776:89:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6728,"nodeType":"ExpressionStatement","src":"120776:89:0"}]},"id":6730,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"120700:3:0","nodeType":"FunctionDefinition","parameters":{"id":6716,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6709,"mutability":"mutable","name":"p0","nameLocation":"120709:2:0","nodeType":"VariableDeclaration","scope":6730,"src":"120704:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6708,"name":"uint","nodeType":"ElementaryTypeName","src":"120704:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6711,"mutability":"mutable","name":"p1","nameLocation":"120727:2:0","nodeType":"VariableDeclaration","scope":6730,"src":"120713:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6710,"name":"string","nodeType":"ElementaryTypeName","src":"120713:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6713,"mutability":"mutable","name":"p2","nameLocation":"120736:2:0","nodeType":"VariableDeclaration","scope":6730,"src":"120731:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6712,"name":"uint","nodeType":"ElementaryTypeName","src":"120731:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6715,"mutability":"mutable","name":"p3","nameLocation":"120748:2:0","nodeType":"VariableDeclaration","scope":6730,"src":"120740:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6714,"name":"address","nodeType":"ElementaryTypeName","src":"120740:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"120703:48:0"},"returnParameters":{"id":6717,"nodeType":"ParameterList","parameters":[],"src":"120766:0:0"},"scope":12159,"src":"120691:181:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6752,"nodeType":"Block","src":"120959:105:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e672c737472696e672c75696e7429","id":6744,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"121009:30:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_76ec635e4702367bf449b895743175fa2654af8170b6d9c20dd183616d0a192b","typeString":"literal_string \"log(uint,string,string,uint)\""},"value":"log(uint,string,string,uint)"},{"id":6745,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6732,"src":"121041:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6746,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6734,"src":"121045:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6747,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6736,"src":"121049:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6748,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6738,"src":"121053:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_76ec635e4702367bf449b895743175fa2654af8170b6d9c20dd183616d0a192b","typeString":"literal_string \"log(uint,string,string,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6742,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"120985:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6743,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"120989:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"120985:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"120985:71:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6741,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"120969:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"120969:88:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6751,"nodeType":"ExpressionStatement","src":"120969:88:0"}]},"id":6753,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"120887:3:0","nodeType":"FunctionDefinition","parameters":{"id":6739,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6732,"mutability":"mutable","name":"p0","nameLocation":"120896:2:0","nodeType":"VariableDeclaration","scope":6753,"src":"120891:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6731,"name":"uint","nodeType":"ElementaryTypeName","src":"120891:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6734,"mutability":"mutable","name":"p1","nameLocation":"120914:2:0","nodeType":"VariableDeclaration","scope":6753,"src":"120900:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6733,"name":"string","nodeType":"ElementaryTypeName","src":"120900:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6736,"mutability":"mutable","name":"p2","nameLocation":"120932:2:0","nodeType":"VariableDeclaration","scope":6753,"src":"120918:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6735,"name":"string","nodeType":"ElementaryTypeName","src":"120918:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6738,"mutability":"mutable","name":"p3","nameLocation":"120941:2:0","nodeType":"VariableDeclaration","scope":6753,"src":"120936:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6737,"name":"uint","nodeType":"ElementaryTypeName","src":"120936:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"120890:54:0"},"returnParameters":{"id":6740,"nodeType":"ParameterList","parameters":[],"src":"120959:0:0"},"scope":12159,"src":"120878:186:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6775,"nodeType":"Block","src":"121160:107:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e672c737472696e672c737472696e6729","id":6767,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"121210:32:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_57dd0a119927787a0c91b48333e191a1b3a4082dcb6efc912e2ba5b047e15156","typeString":"literal_string \"log(uint,string,string,string)\""},"value":"log(uint,string,string,string)"},{"id":6768,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6755,"src":"121244:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6769,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6757,"src":"121248:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6770,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6759,"src":"121252:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6771,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6761,"src":"121256:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_57dd0a119927787a0c91b48333e191a1b3a4082dcb6efc912e2ba5b047e15156","typeString":"literal_string \"log(uint,string,string,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6765,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"121186:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6766,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"121190:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"121186:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"121186:73:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6764,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"121170:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"121170:90:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6774,"nodeType":"ExpressionStatement","src":"121170:90:0"}]},"id":6776,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"121079:3:0","nodeType":"FunctionDefinition","parameters":{"id":6762,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6755,"mutability":"mutable","name":"p0","nameLocation":"121088:2:0","nodeType":"VariableDeclaration","scope":6776,"src":"121083:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6754,"name":"uint","nodeType":"ElementaryTypeName","src":"121083:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6757,"mutability":"mutable","name":"p1","nameLocation":"121106:2:0","nodeType":"VariableDeclaration","scope":6776,"src":"121092:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6756,"name":"string","nodeType":"ElementaryTypeName","src":"121092:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6759,"mutability":"mutable","name":"p2","nameLocation":"121124:2:0","nodeType":"VariableDeclaration","scope":6776,"src":"121110:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6758,"name":"string","nodeType":"ElementaryTypeName","src":"121110:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6761,"mutability":"mutable","name":"p3","nameLocation":"121142:2:0","nodeType":"VariableDeclaration","scope":6776,"src":"121128:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6760,"name":"string","nodeType":"ElementaryTypeName","src":"121128:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"121082:63:0"},"returnParameters":{"id":6763,"nodeType":"ParameterList","parameters":[],"src":"121160:0:0"},"scope":12159,"src":"121070:197:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6798,"nodeType":"Block","src":"121354:105:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e672c737472696e672c626f6f6c29","id":6790,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"121404:30:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_12862b98fdb7950b0e6908443bc9d7894b44d5616424da5cdb6206a848affcbc","typeString":"literal_string \"log(uint,string,string,bool)\""},"value":"log(uint,string,string,bool)"},{"id":6791,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6778,"src":"121436:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6792,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6780,"src":"121440:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6793,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6782,"src":"121444:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6794,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6784,"src":"121448:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_12862b98fdb7950b0e6908443bc9d7894b44d5616424da5cdb6206a848affcbc","typeString":"literal_string \"log(uint,string,string,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":6788,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"121380:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6789,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"121384:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"121380:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"121380:71:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6787,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"121364:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"121364:88:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6797,"nodeType":"ExpressionStatement","src":"121364:88:0"}]},"id":6799,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"121282:3:0","nodeType":"FunctionDefinition","parameters":{"id":6785,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6778,"mutability":"mutable","name":"p0","nameLocation":"121291:2:0","nodeType":"VariableDeclaration","scope":6799,"src":"121286:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6777,"name":"uint","nodeType":"ElementaryTypeName","src":"121286:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6780,"mutability":"mutable","name":"p1","nameLocation":"121309:2:0","nodeType":"VariableDeclaration","scope":6799,"src":"121295:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6779,"name":"string","nodeType":"ElementaryTypeName","src":"121295:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6782,"mutability":"mutable","name":"p2","nameLocation":"121327:2:0","nodeType":"VariableDeclaration","scope":6799,"src":"121313:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6781,"name":"string","nodeType":"ElementaryTypeName","src":"121313:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6784,"mutability":"mutable","name":"p3","nameLocation":"121336:2:0","nodeType":"VariableDeclaration","scope":6799,"src":"121331:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6783,"name":"bool","nodeType":"ElementaryTypeName","src":"121331:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"121285:54:0"},"returnParameters":{"id":6786,"nodeType":"ParameterList","parameters":[],"src":"121354:0:0"},"scope":12159,"src":"121273:186:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6821,"nodeType":"Block","src":"121549:108:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e672c737472696e672c6164647265737329","id":6813,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"121599:33:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_cc988aa0514d1ed8be70a6bf2bdff4972e3f3420811b4adbd40f9b75b873fded","typeString":"literal_string \"log(uint,string,string,address)\""},"value":"log(uint,string,string,address)"},{"id":6814,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6801,"src":"121634:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6815,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6803,"src":"121638:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6816,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6805,"src":"121642:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6817,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6807,"src":"121646:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cc988aa0514d1ed8be70a6bf2bdff4972e3f3420811b4adbd40f9b75b873fded","typeString":"literal_string \"log(uint,string,string,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6811,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"121575:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6812,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"121579:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"121575:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"121575:74:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6810,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"121559:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"121559:91:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6820,"nodeType":"ExpressionStatement","src":"121559:91:0"}]},"id":6822,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"121474:3:0","nodeType":"FunctionDefinition","parameters":{"id":6808,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6801,"mutability":"mutable","name":"p0","nameLocation":"121483:2:0","nodeType":"VariableDeclaration","scope":6822,"src":"121478:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6800,"name":"uint","nodeType":"ElementaryTypeName","src":"121478:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6803,"mutability":"mutable","name":"p1","nameLocation":"121501:2:0","nodeType":"VariableDeclaration","scope":6822,"src":"121487:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6802,"name":"string","nodeType":"ElementaryTypeName","src":"121487:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6805,"mutability":"mutable","name":"p2","nameLocation":"121519:2:0","nodeType":"VariableDeclaration","scope":6822,"src":"121505:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6804,"name":"string","nodeType":"ElementaryTypeName","src":"121505:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6807,"mutability":"mutable","name":"p3","nameLocation":"121531:2:0","nodeType":"VariableDeclaration","scope":6822,"src":"121523:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6806,"name":"address","nodeType":"ElementaryTypeName","src":"121523:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"121477:57:0"},"returnParameters":{"id":6809,"nodeType":"ParameterList","parameters":[],"src":"121549:0:0"},"scope":12159,"src":"121465:192:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6844,"nodeType":"Block","src":"121735:103:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e672c626f6f6c2c75696e7429","id":6836,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"121785:28:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_a4b48a7f4bdefee99950b35e5da7ba9724c3954e445cc3077000bce7a4265081","typeString":"literal_string \"log(uint,string,bool,uint)\""},"value":"log(uint,string,bool,uint)"},{"id":6837,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6824,"src":"121815:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6838,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6826,"src":"121819:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6839,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6828,"src":"121823:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6840,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6830,"src":"121827:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a4b48a7f4bdefee99950b35e5da7ba9724c3954e445cc3077000bce7a4265081","typeString":"literal_string \"log(uint,string,bool,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6834,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"121761:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6835,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"121765:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"121761:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"121761:69:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6833,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"121745:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"121745:86:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6843,"nodeType":"ExpressionStatement","src":"121745:86:0"}]},"id":6845,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"121672:3:0","nodeType":"FunctionDefinition","parameters":{"id":6831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6824,"mutability":"mutable","name":"p0","nameLocation":"121681:2:0","nodeType":"VariableDeclaration","scope":6845,"src":"121676:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6823,"name":"uint","nodeType":"ElementaryTypeName","src":"121676:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6826,"mutability":"mutable","name":"p1","nameLocation":"121699:2:0","nodeType":"VariableDeclaration","scope":6845,"src":"121685:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6825,"name":"string","nodeType":"ElementaryTypeName","src":"121685:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6828,"mutability":"mutable","name":"p2","nameLocation":"121708:2:0","nodeType":"VariableDeclaration","scope":6845,"src":"121703:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6827,"name":"bool","nodeType":"ElementaryTypeName","src":"121703:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6830,"mutability":"mutable","name":"p3","nameLocation":"121717:2:0","nodeType":"VariableDeclaration","scope":6845,"src":"121712:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6829,"name":"uint","nodeType":"ElementaryTypeName","src":"121712:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"121675:45:0"},"returnParameters":{"id":6832,"nodeType":"ParameterList","parameters":[],"src":"121735:0:0"},"scope":12159,"src":"121663:175:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6867,"nodeType":"Block","src":"121925:105:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e672c626f6f6c2c737472696e6729","id":6859,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"121975:30:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_8d489ca064b1083bafb8388fd8f3d44c2255dbe322f7a52abe786a76257d06e4","typeString":"literal_string \"log(uint,string,bool,string)\""},"value":"log(uint,string,bool,string)"},{"id":6860,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6847,"src":"122007:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6861,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6849,"src":"122011:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6862,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6851,"src":"122015:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6863,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6853,"src":"122019:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8d489ca064b1083bafb8388fd8f3d44c2255dbe322f7a52abe786a76257d06e4","typeString":"literal_string \"log(uint,string,bool,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6857,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"121951:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6858,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"121955:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"121951:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"121951:71:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6856,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"121935:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"121935:88:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6866,"nodeType":"ExpressionStatement","src":"121935:88:0"}]},"id":6868,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"121853:3:0","nodeType":"FunctionDefinition","parameters":{"id":6854,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6847,"mutability":"mutable","name":"p0","nameLocation":"121862:2:0","nodeType":"VariableDeclaration","scope":6868,"src":"121857:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6846,"name":"uint","nodeType":"ElementaryTypeName","src":"121857:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6849,"mutability":"mutable","name":"p1","nameLocation":"121880:2:0","nodeType":"VariableDeclaration","scope":6868,"src":"121866:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6848,"name":"string","nodeType":"ElementaryTypeName","src":"121866:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6851,"mutability":"mutable","name":"p2","nameLocation":"121889:2:0","nodeType":"VariableDeclaration","scope":6868,"src":"121884:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6850,"name":"bool","nodeType":"ElementaryTypeName","src":"121884:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6853,"mutability":"mutable","name":"p3","nameLocation":"121907:2:0","nodeType":"VariableDeclaration","scope":6868,"src":"121893:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6852,"name":"string","nodeType":"ElementaryTypeName","src":"121893:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"121856:54:0"},"returnParameters":{"id":6855,"nodeType":"ParameterList","parameters":[],"src":"121925:0:0"},"scope":12159,"src":"121844:186:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6890,"nodeType":"Block","src":"122108:103:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e672c626f6f6c2c626f6f6c29","id":6882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"122158:28:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_51bc2bc161debf765eefa84d88e06440adeb87045d559377a9edb97406168b2a","typeString":"literal_string \"log(uint,string,bool,bool)\""},"value":"log(uint,string,bool,bool)"},{"id":6883,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6870,"src":"122188:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6884,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6872,"src":"122192:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6885,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6874,"src":"122196:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6886,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6876,"src":"122200:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_51bc2bc161debf765eefa84d88e06440adeb87045d559377a9edb97406168b2a","typeString":"literal_string \"log(uint,string,bool,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":6880,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"122134:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6881,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"122138:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"122134:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"122134:69:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6879,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"122118:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"122118:86:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6889,"nodeType":"ExpressionStatement","src":"122118:86:0"}]},"id":6891,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"122045:3:0","nodeType":"FunctionDefinition","parameters":{"id":6877,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6870,"mutability":"mutable","name":"p0","nameLocation":"122054:2:0","nodeType":"VariableDeclaration","scope":6891,"src":"122049:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6869,"name":"uint","nodeType":"ElementaryTypeName","src":"122049:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6872,"mutability":"mutable","name":"p1","nameLocation":"122072:2:0","nodeType":"VariableDeclaration","scope":6891,"src":"122058:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6871,"name":"string","nodeType":"ElementaryTypeName","src":"122058:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6874,"mutability":"mutable","name":"p2","nameLocation":"122081:2:0","nodeType":"VariableDeclaration","scope":6891,"src":"122076:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6873,"name":"bool","nodeType":"ElementaryTypeName","src":"122076:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6876,"mutability":"mutable","name":"p3","nameLocation":"122090:2:0","nodeType":"VariableDeclaration","scope":6891,"src":"122085:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6875,"name":"bool","nodeType":"ElementaryTypeName","src":"122085:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"122048:45:0"},"returnParameters":{"id":6878,"nodeType":"ParameterList","parameters":[],"src":"122108:0:0"},"scope":12159,"src":"122036:175:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6913,"nodeType":"Block","src":"122292:106:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e672c626f6f6c2c6164647265737329","id":6905,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"122342:31:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_796f28a06ededa438107c0866560412d4d4337e29da4c7300f50c49a73c18829","typeString":"literal_string \"log(uint,string,bool,address)\""},"value":"log(uint,string,bool,address)"},{"id":6906,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6893,"src":"122375:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6907,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6895,"src":"122379:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6908,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6897,"src":"122383:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6909,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6899,"src":"122387:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_796f28a06ededa438107c0866560412d4d4337e29da4c7300f50c49a73c18829","typeString":"literal_string \"log(uint,string,bool,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6903,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"122318:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6904,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"122322:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"122318:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"122318:72:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6902,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"122302:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"122302:89:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6912,"nodeType":"ExpressionStatement","src":"122302:89:0"}]},"id":6914,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"122226:3:0","nodeType":"FunctionDefinition","parameters":{"id":6900,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6893,"mutability":"mutable","name":"p0","nameLocation":"122235:2:0","nodeType":"VariableDeclaration","scope":6914,"src":"122230:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6892,"name":"uint","nodeType":"ElementaryTypeName","src":"122230:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6895,"mutability":"mutable","name":"p1","nameLocation":"122253:2:0","nodeType":"VariableDeclaration","scope":6914,"src":"122239:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6894,"name":"string","nodeType":"ElementaryTypeName","src":"122239:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6897,"mutability":"mutable","name":"p2","nameLocation":"122262:2:0","nodeType":"VariableDeclaration","scope":6914,"src":"122257:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6896,"name":"bool","nodeType":"ElementaryTypeName","src":"122257:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6899,"mutability":"mutable","name":"p3","nameLocation":"122274:2:0","nodeType":"VariableDeclaration","scope":6914,"src":"122266:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6898,"name":"address","nodeType":"ElementaryTypeName","src":"122266:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"122229:48:0"},"returnParameters":{"id":6901,"nodeType":"ParameterList","parameters":[],"src":"122292:0:0"},"scope":12159,"src":"122217:181:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6936,"nodeType":"Block","src":"122479:106:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e672c616464726573732c75696e7429","id":6928,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"122529:31:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_98e7f3f3a2c39a91982b0a3ae7f29043579abd563fc10531c052f92c3317af43","typeString":"literal_string \"log(uint,string,address,uint)\""},"value":"log(uint,string,address,uint)"},{"id":6929,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6916,"src":"122562:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6930,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6918,"src":"122566:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6931,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6920,"src":"122570:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6932,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6922,"src":"122574:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_98e7f3f3a2c39a91982b0a3ae7f29043579abd563fc10531c052f92c3317af43","typeString":"literal_string \"log(uint,string,address,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6926,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"122505:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6927,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"122509:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"122505:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6933,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"122505:72:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6925,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"122489:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"122489:89:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6935,"nodeType":"ExpressionStatement","src":"122489:89:0"}]},"id":6937,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"122413:3:0","nodeType":"FunctionDefinition","parameters":{"id":6923,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6916,"mutability":"mutable","name":"p0","nameLocation":"122422:2:0","nodeType":"VariableDeclaration","scope":6937,"src":"122417:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6915,"name":"uint","nodeType":"ElementaryTypeName","src":"122417:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6918,"mutability":"mutable","name":"p1","nameLocation":"122440:2:0","nodeType":"VariableDeclaration","scope":6937,"src":"122426:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6917,"name":"string","nodeType":"ElementaryTypeName","src":"122426:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6920,"mutability":"mutable","name":"p2","nameLocation":"122452:2:0","nodeType":"VariableDeclaration","scope":6937,"src":"122444:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6919,"name":"address","nodeType":"ElementaryTypeName","src":"122444:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6922,"mutability":"mutable","name":"p3","nameLocation":"122461:2:0","nodeType":"VariableDeclaration","scope":6937,"src":"122456:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6921,"name":"uint","nodeType":"ElementaryTypeName","src":"122456:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"122416:48:0"},"returnParameters":{"id":6924,"nodeType":"ParameterList","parameters":[],"src":"122479:0:0"},"scope":12159,"src":"122404:181:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6959,"nodeType":"Block","src":"122675:108:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e672c616464726573732c737472696e6729","id":6951,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"122725:33:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_f898577fdc87bf80b54b2b838f8b58bf5a74554c7beeb61b98f3c2b7d59f31e2","typeString":"literal_string \"log(uint,string,address,string)\""},"value":"log(uint,string,address,string)"},{"id":6952,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6939,"src":"122760:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6953,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6941,"src":"122764:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6954,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6943,"src":"122768:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6955,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6945,"src":"122772:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f898577fdc87bf80b54b2b838f8b58bf5a74554c7beeb61b98f3c2b7d59f31e2","typeString":"literal_string \"log(uint,string,address,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6949,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"122701:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6950,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"122705:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"122701:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"122701:74:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6948,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"122685:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"122685:91:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6958,"nodeType":"ExpressionStatement","src":"122685:91:0"}]},"id":6960,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"122600:3:0","nodeType":"FunctionDefinition","parameters":{"id":6946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6939,"mutability":"mutable","name":"p0","nameLocation":"122609:2:0","nodeType":"VariableDeclaration","scope":6960,"src":"122604:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6938,"name":"uint","nodeType":"ElementaryTypeName","src":"122604:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6941,"mutability":"mutable","name":"p1","nameLocation":"122627:2:0","nodeType":"VariableDeclaration","scope":6960,"src":"122613:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6940,"name":"string","nodeType":"ElementaryTypeName","src":"122613:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6943,"mutability":"mutable","name":"p2","nameLocation":"122639:2:0","nodeType":"VariableDeclaration","scope":6960,"src":"122631:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6942,"name":"address","nodeType":"ElementaryTypeName","src":"122631:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6945,"mutability":"mutable","name":"p3","nameLocation":"122657:2:0","nodeType":"VariableDeclaration","scope":6960,"src":"122643:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6944,"name":"string","nodeType":"ElementaryTypeName","src":"122643:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"122603:57:0"},"returnParameters":{"id":6947,"nodeType":"ParameterList","parameters":[],"src":"122675:0:0"},"scope":12159,"src":"122591:192:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6982,"nodeType":"Block","src":"122864:106:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e672c616464726573732c626f6f6c29","id":6974,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"122914:31:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_f93fff378483bab1a84a8ae346090ff91e793863821a5430c45153390c3262e1","typeString":"literal_string \"log(uint,string,address,bool)\""},"value":"log(uint,string,address,bool)"},{"id":6975,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6962,"src":"122947:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6976,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6964,"src":"122951:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6977,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6966,"src":"122955:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6978,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6968,"src":"122959:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f93fff378483bab1a84a8ae346090ff91e793863821a5430c45153390c3262e1","typeString":"literal_string \"log(uint,string,address,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":6972,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"122890:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6973,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"122894:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"122890:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"122890:72:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6971,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"122874:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"122874:89:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6981,"nodeType":"ExpressionStatement","src":"122874:89:0"}]},"id":6983,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"122798:3:0","nodeType":"FunctionDefinition","parameters":{"id":6969,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6962,"mutability":"mutable","name":"p0","nameLocation":"122807:2:0","nodeType":"VariableDeclaration","scope":6983,"src":"122802:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6961,"name":"uint","nodeType":"ElementaryTypeName","src":"122802:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6964,"mutability":"mutable","name":"p1","nameLocation":"122825:2:0","nodeType":"VariableDeclaration","scope":6983,"src":"122811:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6963,"name":"string","nodeType":"ElementaryTypeName","src":"122811:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6966,"mutability":"mutable","name":"p2","nameLocation":"122837:2:0","nodeType":"VariableDeclaration","scope":6983,"src":"122829:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6965,"name":"address","nodeType":"ElementaryTypeName","src":"122829:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6968,"mutability":"mutable","name":"p3","nameLocation":"122846:2:0","nodeType":"VariableDeclaration","scope":6983,"src":"122841:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6967,"name":"bool","nodeType":"ElementaryTypeName","src":"122841:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"122801:48:0"},"returnParameters":{"id":6970,"nodeType":"ParameterList","parameters":[],"src":"122864:0:0"},"scope":12159,"src":"122789:181:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7005,"nodeType":"Block","src":"123054:109:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e672c616464726573732c6164647265737329","id":6997,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"123104:34:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_7fa5458bb859a8b444c46f9915b7879afe7e200298580a00c5813ecf5c0a77cb","typeString":"literal_string \"log(uint,string,address,address)\""},"value":"log(uint,string,address,address)"},{"id":6998,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6985,"src":"123140:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6999,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6987,"src":"123144:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7000,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6989,"src":"123148:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7001,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6991,"src":"123152:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7fa5458bb859a8b444c46f9915b7879afe7e200298580a00c5813ecf5c0a77cb","typeString":"literal_string \"log(uint,string,address,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6995,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"123080:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6996,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"123084:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"123080:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"123080:75:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6994,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"123064:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7003,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"123064:92:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7004,"nodeType":"ExpressionStatement","src":"123064:92:0"}]},"id":7006,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"122985:3:0","nodeType":"FunctionDefinition","parameters":{"id":6992,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6985,"mutability":"mutable","name":"p0","nameLocation":"122994:2:0","nodeType":"VariableDeclaration","scope":7006,"src":"122989:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6984,"name":"uint","nodeType":"ElementaryTypeName","src":"122989:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6987,"mutability":"mutable","name":"p1","nameLocation":"123012:2:0","nodeType":"VariableDeclaration","scope":7006,"src":"122998:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6986,"name":"string","nodeType":"ElementaryTypeName","src":"122998:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6989,"mutability":"mutable","name":"p2","nameLocation":"123024:2:0","nodeType":"VariableDeclaration","scope":7006,"src":"123016:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6988,"name":"address","nodeType":"ElementaryTypeName","src":"123016:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6991,"mutability":"mutable","name":"p3","nameLocation":"123036:2:0","nodeType":"VariableDeclaration","scope":7006,"src":"123028:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6990,"name":"address","nodeType":"ElementaryTypeName","src":"123028:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"122988:51:0"},"returnParameters":{"id":6993,"nodeType":"ParameterList","parameters":[],"src":"123054:0:0"},"scope":12159,"src":"122976:187:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7028,"nodeType":"Block","src":"123232:101:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c2c75696e742c75696e7429","id":7020,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"123282:26:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_56828da42a6ecdc94480e6d223af96b676cdc4ca9a00b1d88a7646ef1e12541e","typeString":"literal_string \"log(uint,bool,uint,uint)\""},"value":"log(uint,bool,uint,uint)"},{"id":7021,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7008,"src":"123310:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7022,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7010,"src":"123314:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7023,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7012,"src":"123318:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7024,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7014,"src":"123322:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_56828da42a6ecdc94480e6d223af96b676cdc4ca9a00b1d88a7646ef1e12541e","typeString":"literal_string \"log(uint,bool,uint,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7018,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"123258:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7019,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"123262:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"123258:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"123258:67:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7017,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"123242:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"123242:84:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7027,"nodeType":"ExpressionStatement","src":"123242:84:0"}]},"id":7029,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"123178:3:0","nodeType":"FunctionDefinition","parameters":{"id":7015,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7008,"mutability":"mutable","name":"p0","nameLocation":"123187:2:0","nodeType":"VariableDeclaration","scope":7029,"src":"123182:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7007,"name":"uint","nodeType":"ElementaryTypeName","src":"123182:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7010,"mutability":"mutable","name":"p1","nameLocation":"123196:2:0","nodeType":"VariableDeclaration","scope":7029,"src":"123191:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7009,"name":"bool","nodeType":"ElementaryTypeName","src":"123191:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7012,"mutability":"mutable","name":"p2","nameLocation":"123205:2:0","nodeType":"VariableDeclaration","scope":7029,"src":"123200:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7011,"name":"uint","nodeType":"ElementaryTypeName","src":"123200:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7014,"mutability":"mutable","name":"p3","nameLocation":"123214:2:0","nodeType":"VariableDeclaration","scope":7029,"src":"123209:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7013,"name":"uint","nodeType":"ElementaryTypeName","src":"123209:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"123181:36:0"},"returnParameters":{"id":7016,"nodeType":"ParameterList","parameters":[],"src":"123232:0:0"},"scope":12159,"src":"123169:164:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7051,"nodeType":"Block","src":"123411:103:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c2c75696e742c737472696e6729","id":7043,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"123461:28:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e8ddbc56b4712607102717eb35a3ee6aa0309358d07a4257a282d4a44ceb2f63","typeString":"literal_string \"log(uint,bool,uint,string)\""},"value":"log(uint,bool,uint,string)"},{"id":7044,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7031,"src":"123491:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7045,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7033,"src":"123495:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7046,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7035,"src":"123499:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7047,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7037,"src":"123503:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e8ddbc56b4712607102717eb35a3ee6aa0309358d07a4257a282d4a44ceb2f63","typeString":"literal_string \"log(uint,bool,uint,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":7041,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"123437:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7042,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"123441:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"123437:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"123437:69:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7040,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"123421:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"123421:86:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7050,"nodeType":"ExpressionStatement","src":"123421:86:0"}]},"id":7052,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"123348:3:0","nodeType":"FunctionDefinition","parameters":{"id":7038,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7031,"mutability":"mutable","name":"p0","nameLocation":"123357:2:0","nodeType":"VariableDeclaration","scope":7052,"src":"123352:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7030,"name":"uint","nodeType":"ElementaryTypeName","src":"123352:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7033,"mutability":"mutable","name":"p1","nameLocation":"123366:2:0","nodeType":"VariableDeclaration","scope":7052,"src":"123361:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7032,"name":"bool","nodeType":"ElementaryTypeName","src":"123361:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7035,"mutability":"mutable","name":"p2","nameLocation":"123375:2:0","nodeType":"VariableDeclaration","scope":7052,"src":"123370:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7034,"name":"uint","nodeType":"ElementaryTypeName","src":"123370:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7037,"mutability":"mutable","name":"p3","nameLocation":"123393:2:0","nodeType":"VariableDeclaration","scope":7052,"src":"123379:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7036,"name":"string","nodeType":"ElementaryTypeName","src":"123379:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"123351:45:0"},"returnParameters":{"id":7039,"nodeType":"ParameterList","parameters":[],"src":"123411:0:0"},"scope":12159,"src":"123339:175:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7074,"nodeType":"Block","src":"123583:101:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c2c75696e742c626f6f6c29","id":7066,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"123633:26:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_d2abc4fdef6f35f3785755f2ca3a26416b52c0c4c5ad8b27342fc84a56532f2f","typeString":"literal_string \"log(uint,bool,uint,bool)\""},"value":"log(uint,bool,uint,bool)"},{"id":7067,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7054,"src":"123661:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7068,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7056,"src":"123665:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7069,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7058,"src":"123669:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7070,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7060,"src":"123673:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d2abc4fdef6f35f3785755f2ca3a26416b52c0c4c5ad8b27342fc84a56532f2f","typeString":"literal_string \"log(uint,bool,uint,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":7064,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"123609:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7065,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"123613:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"123609:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"123609:67:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7063,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"123593:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"123593:84:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7073,"nodeType":"ExpressionStatement","src":"123593:84:0"}]},"id":7075,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"123529:3:0","nodeType":"FunctionDefinition","parameters":{"id":7061,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7054,"mutability":"mutable","name":"p0","nameLocation":"123538:2:0","nodeType":"VariableDeclaration","scope":7075,"src":"123533:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7053,"name":"uint","nodeType":"ElementaryTypeName","src":"123533:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7056,"mutability":"mutable","name":"p1","nameLocation":"123547:2:0","nodeType":"VariableDeclaration","scope":7075,"src":"123542:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7055,"name":"bool","nodeType":"ElementaryTypeName","src":"123542:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7058,"mutability":"mutable","name":"p2","nameLocation":"123556:2:0","nodeType":"VariableDeclaration","scope":7075,"src":"123551:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7057,"name":"uint","nodeType":"ElementaryTypeName","src":"123551:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7060,"mutability":"mutable","name":"p3","nameLocation":"123565:2:0","nodeType":"VariableDeclaration","scope":7075,"src":"123560:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7059,"name":"bool","nodeType":"ElementaryTypeName","src":"123560:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"123532:36:0"},"returnParameters":{"id":7062,"nodeType":"ParameterList","parameters":[],"src":"123583:0:0"},"scope":12159,"src":"123520:164:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7097,"nodeType":"Block","src":"123756:104:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c2c75696e742c6164647265737329","id":7089,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"123806:29:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_4f40058ea8927b23c60661eeb28f54d3ce10f5f6cdd8e3ce445d34409ceb50a3","typeString":"literal_string \"log(uint,bool,uint,address)\""},"value":"log(uint,bool,uint,address)"},{"id":7090,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7077,"src":"123837:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7091,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7079,"src":"123841:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7092,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7081,"src":"123845:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7093,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7083,"src":"123849:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4f40058ea8927b23c60661eeb28f54d3ce10f5f6cdd8e3ce445d34409ceb50a3","typeString":"literal_string \"log(uint,bool,uint,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7087,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"123782:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7088,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"123786:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"123782:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7094,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"123782:70:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7086,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"123766:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"123766:87:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7096,"nodeType":"ExpressionStatement","src":"123766:87:0"}]},"id":7098,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"123699:3:0","nodeType":"FunctionDefinition","parameters":{"id":7084,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7077,"mutability":"mutable","name":"p0","nameLocation":"123708:2:0","nodeType":"VariableDeclaration","scope":7098,"src":"123703:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7076,"name":"uint","nodeType":"ElementaryTypeName","src":"123703:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7079,"mutability":"mutable","name":"p1","nameLocation":"123717:2:0","nodeType":"VariableDeclaration","scope":7098,"src":"123712:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7078,"name":"bool","nodeType":"ElementaryTypeName","src":"123712:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7081,"mutability":"mutable","name":"p2","nameLocation":"123726:2:0","nodeType":"VariableDeclaration","scope":7098,"src":"123721:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7080,"name":"uint","nodeType":"ElementaryTypeName","src":"123721:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7083,"mutability":"mutable","name":"p3","nameLocation":"123738:2:0","nodeType":"VariableDeclaration","scope":7098,"src":"123730:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7082,"name":"address","nodeType":"ElementaryTypeName","src":"123730:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"123702:39:0"},"returnParameters":{"id":7085,"nodeType":"ParameterList","parameters":[],"src":"123756:0:0"},"scope":12159,"src":"123690:170:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7120,"nodeType":"Block","src":"123938:103:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c2c737472696e672c75696e7429","id":7112,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"123988:28:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_915fdb28841654f5e04882ad0aa4f5de28bd90db1a700dae8b1eb5e67e36a012","typeString":"literal_string \"log(uint,bool,string,uint)\""},"value":"log(uint,bool,string,uint)"},{"id":7113,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7100,"src":"124018:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7114,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7102,"src":"124022:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7115,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7104,"src":"124026:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7116,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7106,"src":"124030:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_915fdb28841654f5e04882ad0aa4f5de28bd90db1a700dae8b1eb5e67e36a012","typeString":"literal_string \"log(uint,bool,string,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7110,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"123964:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7111,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"123968:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"123964:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"123964:69:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7109,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"123948:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"123948:86:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7119,"nodeType":"ExpressionStatement","src":"123948:86:0"}]},"id":7121,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"123875:3:0","nodeType":"FunctionDefinition","parameters":{"id":7107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7100,"mutability":"mutable","name":"p0","nameLocation":"123884:2:0","nodeType":"VariableDeclaration","scope":7121,"src":"123879:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7099,"name":"uint","nodeType":"ElementaryTypeName","src":"123879:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7102,"mutability":"mutable","name":"p1","nameLocation":"123893:2:0","nodeType":"VariableDeclaration","scope":7121,"src":"123888:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7101,"name":"bool","nodeType":"ElementaryTypeName","src":"123888:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7104,"mutability":"mutable","name":"p2","nameLocation":"123911:2:0","nodeType":"VariableDeclaration","scope":7121,"src":"123897:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7103,"name":"string","nodeType":"ElementaryTypeName","src":"123897:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7106,"mutability":"mutable","name":"p3","nameLocation":"123920:2:0","nodeType":"VariableDeclaration","scope":7121,"src":"123915:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7105,"name":"uint","nodeType":"ElementaryTypeName","src":"123915:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"123878:45:0"},"returnParameters":{"id":7108,"nodeType":"ParameterList","parameters":[],"src":"123938:0:0"},"scope":12159,"src":"123866:175:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7143,"nodeType":"Block","src":"124128:105:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c2c737472696e672c737472696e6729","id":7135,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"124178:30:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_a433fcfd538cd0e077747fbb2c5a6453c1804c6ad4af653273e0d14ab4a0566a","typeString":"literal_string \"log(uint,bool,string,string)\""},"value":"log(uint,bool,string,string)"},{"id":7136,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7123,"src":"124210:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7137,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7125,"src":"124214:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7138,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7127,"src":"124218:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7139,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7129,"src":"124222:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a433fcfd538cd0e077747fbb2c5a6453c1804c6ad4af653273e0d14ab4a0566a","typeString":"literal_string \"log(uint,bool,string,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":7133,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"124154:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7134,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"124158:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"124154:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"124154:71:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7132,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"124138:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"124138:88:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7142,"nodeType":"ExpressionStatement","src":"124138:88:0"}]},"id":7144,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"124056:3:0","nodeType":"FunctionDefinition","parameters":{"id":7130,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7123,"mutability":"mutable","name":"p0","nameLocation":"124065:2:0","nodeType":"VariableDeclaration","scope":7144,"src":"124060:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7122,"name":"uint","nodeType":"ElementaryTypeName","src":"124060:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7125,"mutability":"mutable","name":"p1","nameLocation":"124074:2:0","nodeType":"VariableDeclaration","scope":7144,"src":"124069:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7124,"name":"bool","nodeType":"ElementaryTypeName","src":"124069:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7127,"mutability":"mutable","name":"p2","nameLocation":"124092:2:0","nodeType":"VariableDeclaration","scope":7144,"src":"124078:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7126,"name":"string","nodeType":"ElementaryTypeName","src":"124078:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7129,"mutability":"mutable","name":"p3","nameLocation":"124110:2:0","nodeType":"VariableDeclaration","scope":7144,"src":"124096:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7128,"name":"string","nodeType":"ElementaryTypeName","src":"124096:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"124059:54:0"},"returnParameters":{"id":7131,"nodeType":"ParameterList","parameters":[],"src":"124128:0:0"},"scope":12159,"src":"124047:186:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7166,"nodeType":"Block","src":"124311:103:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c2c737472696e672c626f6f6c29","id":7158,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"124361:28:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_346eb8c74221bcb2c0a69b8dde628b7e6175c4f090782c8f07996b251212e22d","typeString":"literal_string \"log(uint,bool,string,bool)\""},"value":"log(uint,bool,string,bool)"},{"id":7159,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7146,"src":"124391:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7160,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7148,"src":"124395:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7161,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7150,"src":"124399:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7162,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7152,"src":"124403:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_346eb8c74221bcb2c0a69b8dde628b7e6175c4f090782c8f07996b251212e22d","typeString":"literal_string \"log(uint,bool,string,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":7156,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"124337:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7157,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"124341:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"124337:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"124337:69:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7155,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"124321:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"124321:86:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7165,"nodeType":"ExpressionStatement","src":"124321:86:0"}]},"id":7167,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"124248:3:0","nodeType":"FunctionDefinition","parameters":{"id":7153,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7146,"mutability":"mutable","name":"p0","nameLocation":"124257:2:0","nodeType":"VariableDeclaration","scope":7167,"src":"124252:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7145,"name":"uint","nodeType":"ElementaryTypeName","src":"124252:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7148,"mutability":"mutable","name":"p1","nameLocation":"124266:2:0","nodeType":"VariableDeclaration","scope":7167,"src":"124261:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7147,"name":"bool","nodeType":"ElementaryTypeName","src":"124261:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7150,"mutability":"mutable","name":"p2","nameLocation":"124284:2:0","nodeType":"VariableDeclaration","scope":7167,"src":"124270:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7149,"name":"string","nodeType":"ElementaryTypeName","src":"124270:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7152,"mutability":"mutable","name":"p3","nameLocation":"124293:2:0","nodeType":"VariableDeclaration","scope":7167,"src":"124288:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7151,"name":"bool","nodeType":"ElementaryTypeName","src":"124288:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"124251:45:0"},"returnParameters":{"id":7154,"nodeType":"ParameterList","parameters":[],"src":"124311:0:0"},"scope":12159,"src":"124239:175:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7189,"nodeType":"Block","src":"124495:106:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c2c737472696e672c6164647265737329","id":7181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"124545:31:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_496e2bb45f5cdd3680c3e807c53955b9de163e898851c7844433c0a9c91dcd9d","typeString":"literal_string \"log(uint,bool,string,address)\""},"value":"log(uint,bool,string,address)"},{"id":7182,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7169,"src":"124578:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7183,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7171,"src":"124582:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7184,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7173,"src":"124586:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7185,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7175,"src":"124590:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_496e2bb45f5cdd3680c3e807c53955b9de163e898851c7844433c0a9c91dcd9d","typeString":"literal_string \"log(uint,bool,string,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7179,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"124521:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7180,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"124525:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"124521:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"124521:72:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7178,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"124505:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"124505:89:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7188,"nodeType":"ExpressionStatement","src":"124505:89:0"}]},"id":7190,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"124429:3:0","nodeType":"FunctionDefinition","parameters":{"id":7176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7169,"mutability":"mutable","name":"p0","nameLocation":"124438:2:0","nodeType":"VariableDeclaration","scope":7190,"src":"124433:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7168,"name":"uint","nodeType":"ElementaryTypeName","src":"124433:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7171,"mutability":"mutable","name":"p1","nameLocation":"124447:2:0","nodeType":"VariableDeclaration","scope":7190,"src":"124442:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7170,"name":"bool","nodeType":"ElementaryTypeName","src":"124442:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7173,"mutability":"mutable","name":"p2","nameLocation":"124465:2:0","nodeType":"VariableDeclaration","scope":7190,"src":"124451:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7172,"name":"string","nodeType":"ElementaryTypeName","src":"124451:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7175,"mutability":"mutable","name":"p3","nameLocation":"124477:2:0","nodeType":"VariableDeclaration","scope":7190,"src":"124469:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7174,"name":"address","nodeType":"ElementaryTypeName","src":"124469:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"124432:48:0"},"returnParameters":{"id":7177,"nodeType":"ParameterList","parameters":[],"src":"124495:0:0"},"scope":12159,"src":"124420:181:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7212,"nodeType":"Block","src":"124670:101:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c2c626f6f6c2c75696e7429","id":7204,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"124720:26:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_bd25ad5987e2f3e90d5ff2c9e0dad802782e9040e45e823722ccf598278cf7ed","typeString":"literal_string \"log(uint,bool,bool,uint)\""},"value":"log(uint,bool,bool,uint)"},{"id":7205,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7192,"src":"124748:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7206,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7194,"src":"124752:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7207,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7196,"src":"124756:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7208,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7198,"src":"124760:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_bd25ad5987e2f3e90d5ff2c9e0dad802782e9040e45e823722ccf598278cf7ed","typeString":"literal_string \"log(uint,bool,bool,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7202,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"124696:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7203,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"124700:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"124696:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"124696:67:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7201,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"124680:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"124680:84:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7211,"nodeType":"ExpressionStatement","src":"124680:84:0"}]},"id":7213,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"124616:3:0","nodeType":"FunctionDefinition","parameters":{"id":7199,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7192,"mutability":"mutable","name":"p0","nameLocation":"124625:2:0","nodeType":"VariableDeclaration","scope":7213,"src":"124620:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7191,"name":"uint","nodeType":"ElementaryTypeName","src":"124620:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7194,"mutability":"mutable","name":"p1","nameLocation":"124634:2:0","nodeType":"VariableDeclaration","scope":7213,"src":"124629:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7193,"name":"bool","nodeType":"ElementaryTypeName","src":"124629:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7196,"mutability":"mutable","name":"p2","nameLocation":"124643:2:0","nodeType":"VariableDeclaration","scope":7213,"src":"124638:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7195,"name":"bool","nodeType":"ElementaryTypeName","src":"124638:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7198,"mutability":"mutable","name":"p3","nameLocation":"124652:2:0","nodeType":"VariableDeclaration","scope":7213,"src":"124647:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7197,"name":"uint","nodeType":"ElementaryTypeName","src":"124647:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"124619:36:0"},"returnParameters":{"id":7200,"nodeType":"ParameterList","parameters":[],"src":"124670:0:0"},"scope":12159,"src":"124607:164:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7235,"nodeType":"Block","src":"124849:103:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c2c626f6f6c2c737472696e6729","id":7227,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"124899:28:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_318ae59b506d4efe5cd02b34be9f24009f0134ab1136defc4789a09e425a8861","typeString":"literal_string \"log(uint,bool,bool,string)\""},"value":"log(uint,bool,bool,string)"},{"id":7228,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7215,"src":"124929:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7229,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7217,"src":"124933:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7230,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7219,"src":"124937:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7231,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7221,"src":"124941:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_318ae59b506d4efe5cd02b34be9f24009f0134ab1136defc4789a09e425a8861","typeString":"literal_string \"log(uint,bool,bool,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":7225,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"124875:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7226,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"124879:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"124875:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"124875:69:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7224,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"124859:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7233,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"124859:86:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7234,"nodeType":"ExpressionStatement","src":"124859:86:0"}]},"id":7236,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"124786:3:0","nodeType":"FunctionDefinition","parameters":{"id":7222,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7215,"mutability":"mutable","name":"p0","nameLocation":"124795:2:0","nodeType":"VariableDeclaration","scope":7236,"src":"124790:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7214,"name":"uint","nodeType":"ElementaryTypeName","src":"124790:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7217,"mutability":"mutable","name":"p1","nameLocation":"124804:2:0","nodeType":"VariableDeclaration","scope":7236,"src":"124799:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7216,"name":"bool","nodeType":"ElementaryTypeName","src":"124799:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7219,"mutability":"mutable","name":"p2","nameLocation":"124813:2:0","nodeType":"VariableDeclaration","scope":7236,"src":"124808:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7218,"name":"bool","nodeType":"ElementaryTypeName","src":"124808:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7221,"mutability":"mutable","name":"p3","nameLocation":"124831:2:0","nodeType":"VariableDeclaration","scope":7236,"src":"124817:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7220,"name":"string","nodeType":"ElementaryTypeName","src":"124817:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"124789:45:0"},"returnParameters":{"id":7223,"nodeType":"ParameterList","parameters":[],"src":"124849:0:0"},"scope":12159,"src":"124777:175:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7258,"nodeType":"Block","src":"125021:101:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c2c626f6f6c2c626f6f6c29","id":7250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"125071:26:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_4e6c5315e6998332ba87ae2545bc72447c94349a51e999446a98bfab04167b32","typeString":"literal_string \"log(uint,bool,bool,bool)\""},"value":"log(uint,bool,bool,bool)"},{"id":7251,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7238,"src":"125099:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7252,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7240,"src":"125103:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7253,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7242,"src":"125107:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7254,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7244,"src":"125111:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4e6c5315e6998332ba87ae2545bc72447c94349a51e999446a98bfab04167b32","typeString":"literal_string \"log(uint,bool,bool,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":7248,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"125047:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7249,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"125051:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"125047:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"125047:67:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7247,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"125031:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7256,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"125031:84:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7257,"nodeType":"ExpressionStatement","src":"125031:84:0"}]},"id":7259,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"124967:3:0","nodeType":"FunctionDefinition","parameters":{"id":7245,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7238,"mutability":"mutable","name":"p0","nameLocation":"124976:2:0","nodeType":"VariableDeclaration","scope":7259,"src":"124971:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7237,"name":"uint","nodeType":"ElementaryTypeName","src":"124971:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7240,"mutability":"mutable","name":"p1","nameLocation":"124985:2:0","nodeType":"VariableDeclaration","scope":7259,"src":"124980:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7239,"name":"bool","nodeType":"ElementaryTypeName","src":"124980:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7242,"mutability":"mutable","name":"p2","nameLocation":"124994:2:0","nodeType":"VariableDeclaration","scope":7259,"src":"124989:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7241,"name":"bool","nodeType":"ElementaryTypeName","src":"124989:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7244,"mutability":"mutable","name":"p3","nameLocation":"125003:2:0","nodeType":"VariableDeclaration","scope":7259,"src":"124998:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7243,"name":"bool","nodeType":"ElementaryTypeName","src":"124998:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"124970:36:0"},"returnParameters":{"id":7246,"nodeType":"ParameterList","parameters":[],"src":"125021:0:0"},"scope":12159,"src":"124958:164:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7281,"nodeType":"Block","src":"125194:104:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c2c626f6f6c2c6164647265737329","id":7273,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"125244:29:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_5306225d3f6a0c340e12a634d8571b24a659d0fdcb96dd45e3bd062feb68355b","typeString":"literal_string \"log(uint,bool,bool,address)\""},"value":"log(uint,bool,bool,address)"},{"id":7274,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7261,"src":"125275:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7275,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7263,"src":"125279:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7276,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7265,"src":"125283:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7277,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7267,"src":"125287:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5306225d3f6a0c340e12a634d8571b24a659d0fdcb96dd45e3bd062feb68355b","typeString":"literal_string \"log(uint,bool,bool,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7271,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"125220:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7272,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"125224:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"125220:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"125220:70:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7270,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"125204:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"125204:87:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7280,"nodeType":"ExpressionStatement","src":"125204:87:0"}]},"id":7282,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"125137:3:0","nodeType":"FunctionDefinition","parameters":{"id":7268,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7261,"mutability":"mutable","name":"p0","nameLocation":"125146:2:0","nodeType":"VariableDeclaration","scope":7282,"src":"125141:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7260,"name":"uint","nodeType":"ElementaryTypeName","src":"125141:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7263,"mutability":"mutable","name":"p1","nameLocation":"125155:2:0","nodeType":"VariableDeclaration","scope":7282,"src":"125150:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7262,"name":"bool","nodeType":"ElementaryTypeName","src":"125150:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7265,"mutability":"mutable","name":"p2","nameLocation":"125164:2:0","nodeType":"VariableDeclaration","scope":7282,"src":"125159:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7264,"name":"bool","nodeType":"ElementaryTypeName","src":"125159:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7267,"mutability":"mutable","name":"p3","nameLocation":"125176:2:0","nodeType":"VariableDeclaration","scope":7282,"src":"125168:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7266,"name":"address","nodeType":"ElementaryTypeName","src":"125168:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"125140:39:0"},"returnParameters":{"id":7269,"nodeType":"ParameterList","parameters":[],"src":"125194:0:0"},"scope":12159,"src":"125128:170:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7304,"nodeType":"Block","src":"125370:104:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c2c616464726573732c75696e7429","id":7296,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"125420:29:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_41b5ef3bc57cb6072d9bbab757f04e68fb78a6a8b29741a7b963761abce32fb1","typeString":"literal_string \"log(uint,bool,address,uint)\""},"value":"log(uint,bool,address,uint)"},{"id":7297,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7284,"src":"125451:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7298,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7286,"src":"125455:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7299,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7288,"src":"125459:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7300,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7290,"src":"125463:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_41b5ef3bc57cb6072d9bbab757f04e68fb78a6a8b29741a7b963761abce32fb1","typeString":"literal_string \"log(uint,bool,address,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7294,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"125396:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7295,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"125400:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"125396:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"125396:70:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7293,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"125380:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"125380:87:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7303,"nodeType":"ExpressionStatement","src":"125380:87:0"}]},"id":7305,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"125313:3:0","nodeType":"FunctionDefinition","parameters":{"id":7291,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7284,"mutability":"mutable","name":"p0","nameLocation":"125322:2:0","nodeType":"VariableDeclaration","scope":7305,"src":"125317:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7283,"name":"uint","nodeType":"ElementaryTypeName","src":"125317:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7286,"mutability":"mutable","name":"p1","nameLocation":"125331:2:0","nodeType":"VariableDeclaration","scope":7305,"src":"125326:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7285,"name":"bool","nodeType":"ElementaryTypeName","src":"125326:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7288,"mutability":"mutable","name":"p2","nameLocation":"125343:2:0","nodeType":"VariableDeclaration","scope":7305,"src":"125335:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7287,"name":"address","nodeType":"ElementaryTypeName","src":"125335:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7290,"mutability":"mutable","name":"p3","nameLocation":"125352:2:0","nodeType":"VariableDeclaration","scope":7305,"src":"125347:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7289,"name":"uint","nodeType":"ElementaryTypeName","src":"125347:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"125316:39:0"},"returnParameters":{"id":7292,"nodeType":"ParameterList","parameters":[],"src":"125370:0:0"},"scope":12159,"src":"125304:170:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7327,"nodeType":"Block","src":"125555:106:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c2c616464726573732c737472696e6729","id":7319,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"125605:31:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_a230761e3811ae33e11d91e6667cf79e7e0ce8023ec276bdd69859f68587933c","typeString":"literal_string \"log(uint,bool,address,string)\""},"value":"log(uint,bool,address,string)"},{"id":7320,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7307,"src":"125638:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7321,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7309,"src":"125642:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7322,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7311,"src":"125646:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7323,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7313,"src":"125650:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a230761e3811ae33e11d91e6667cf79e7e0ce8023ec276bdd69859f68587933c","typeString":"literal_string \"log(uint,bool,address,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":7317,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"125581:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7318,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"125585:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"125581:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"125581:72:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7316,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"125565:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"125565:89:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7326,"nodeType":"ExpressionStatement","src":"125565:89:0"}]},"id":7328,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"125489:3:0","nodeType":"FunctionDefinition","parameters":{"id":7314,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7307,"mutability":"mutable","name":"p0","nameLocation":"125498:2:0","nodeType":"VariableDeclaration","scope":7328,"src":"125493:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7306,"name":"uint","nodeType":"ElementaryTypeName","src":"125493:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7309,"mutability":"mutable","name":"p1","nameLocation":"125507:2:0","nodeType":"VariableDeclaration","scope":7328,"src":"125502:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7308,"name":"bool","nodeType":"ElementaryTypeName","src":"125502:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7311,"mutability":"mutable","name":"p2","nameLocation":"125519:2:0","nodeType":"VariableDeclaration","scope":7328,"src":"125511:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7310,"name":"address","nodeType":"ElementaryTypeName","src":"125511:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7313,"mutability":"mutable","name":"p3","nameLocation":"125537:2:0","nodeType":"VariableDeclaration","scope":7328,"src":"125523:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7312,"name":"string","nodeType":"ElementaryTypeName","src":"125523:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"125492:48:0"},"returnParameters":{"id":7315,"nodeType":"ParameterList","parameters":[],"src":"125555:0:0"},"scope":12159,"src":"125480:181:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7350,"nodeType":"Block","src":"125733:104:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c2c616464726573732c626f6f6c29","id":7342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"125783:29:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_91fb124272873b32f25c28f6935451e3d46ffd78ac8ebaaa0e096a7942db5445","typeString":"literal_string \"log(uint,bool,address,bool)\""},"value":"log(uint,bool,address,bool)"},{"id":7343,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7330,"src":"125814:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7344,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7332,"src":"125818:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7345,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7334,"src":"125822:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7346,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7336,"src":"125826:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_91fb124272873b32f25c28f6935451e3d46ffd78ac8ebaaa0e096a7942db5445","typeString":"literal_string \"log(uint,bool,address,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":7340,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"125759:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7341,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"125763:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"125759:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"125759:70:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7339,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"125743:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"125743:87:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7349,"nodeType":"ExpressionStatement","src":"125743:87:0"}]},"id":7351,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"125676:3:0","nodeType":"FunctionDefinition","parameters":{"id":7337,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7330,"mutability":"mutable","name":"p0","nameLocation":"125685:2:0","nodeType":"VariableDeclaration","scope":7351,"src":"125680:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7329,"name":"uint","nodeType":"ElementaryTypeName","src":"125680:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7332,"mutability":"mutable","name":"p1","nameLocation":"125694:2:0","nodeType":"VariableDeclaration","scope":7351,"src":"125689:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7331,"name":"bool","nodeType":"ElementaryTypeName","src":"125689:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7334,"mutability":"mutable","name":"p2","nameLocation":"125706:2:0","nodeType":"VariableDeclaration","scope":7351,"src":"125698:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7333,"name":"address","nodeType":"ElementaryTypeName","src":"125698:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7336,"mutability":"mutable","name":"p3","nameLocation":"125715:2:0","nodeType":"VariableDeclaration","scope":7351,"src":"125710:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7335,"name":"bool","nodeType":"ElementaryTypeName","src":"125710:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"125679:39:0"},"returnParameters":{"id":7338,"nodeType":"ParameterList","parameters":[],"src":"125733:0:0"},"scope":12159,"src":"125667:170:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7373,"nodeType":"Block","src":"125912:107:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c2c616464726573732c6164647265737329","id":7365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"125962:32:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_86edc10cd85187c3b3f180e68e570c794e768808cdffe5158045d6f841ae33f2","typeString":"literal_string \"log(uint,bool,address,address)\""},"value":"log(uint,bool,address,address)"},{"id":7366,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7353,"src":"125996:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7367,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7355,"src":"126000:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7368,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7357,"src":"126004:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7369,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7359,"src":"126008:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_86edc10cd85187c3b3f180e68e570c794e768808cdffe5158045d6f841ae33f2","typeString":"literal_string \"log(uint,bool,address,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7363,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"125938:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7364,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"125942:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"125938:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"125938:73:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7362,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"125922:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"125922:90:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7372,"nodeType":"ExpressionStatement","src":"125922:90:0"}]},"id":7374,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"125852:3:0","nodeType":"FunctionDefinition","parameters":{"id":7360,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7353,"mutability":"mutable","name":"p0","nameLocation":"125861:2:0","nodeType":"VariableDeclaration","scope":7374,"src":"125856:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7352,"name":"uint","nodeType":"ElementaryTypeName","src":"125856:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7355,"mutability":"mutable","name":"p1","nameLocation":"125870:2:0","nodeType":"VariableDeclaration","scope":7374,"src":"125865:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7354,"name":"bool","nodeType":"ElementaryTypeName","src":"125865:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7357,"mutability":"mutable","name":"p2","nameLocation":"125882:2:0","nodeType":"VariableDeclaration","scope":7374,"src":"125874:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7356,"name":"address","nodeType":"ElementaryTypeName","src":"125874:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7359,"mutability":"mutable","name":"p3","nameLocation":"125894:2:0","nodeType":"VariableDeclaration","scope":7374,"src":"125886:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7358,"name":"address","nodeType":"ElementaryTypeName","src":"125886:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"125855:42:0"},"returnParameters":{"id":7361,"nodeType":"ParameterList","parameters":[],"src":"125912:0:0"},"scope":12159,"src":"125843:176:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7396,"nodeType":"Block","src":"126091:104:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c616464726573732c75696e742c75696e7429","id":7388,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"126141:29:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_ca9a3eb4a61979ee5cc1814fa8df2504ab7831148afaa3d4c17622578eab7412","typeString":"literal_string \"log(uint,address,uint,uint)\""},"value":"log(uint,address,uint,uint)"},{"id":7389,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7376,"src":"126172:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7390,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7378,"src":"126176:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7391,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7380,"src":"126180:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7392,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7382,"src":"126184:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ca9a3eb4a61979ee5cc1814fa8df2504ab7831148afaa3d4c17622578eab7412","typeString":"literal_string \"log(uint,address,uint,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7386,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"126117:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7387,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"126121:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"126117:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"126117:70:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7385,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"126101:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"126101:87:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7395,"nodeType":"ExpressionStatement","src":"126101:87:0"}]},"id":7397,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"126034:3:0","nodeType":"FunctionDefinition","parameters":{"id":7383,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7376,"mutability":"mutable","name":"p0","nameLocation":"126043:2:0","nodeType":"VariableDeclaration","scope":7397,"src":"126038:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7375,"name":"uint","nodeType":"ElementaryTypeName","src":"126038:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7378,"mutability":"mutable","name":"p1","nameLocation":"126055:2:0","nodeType":"VariableDeclaration","scope":7397,"src":"126047:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7377,"name":"address","nodeType":"ElementaryTypeName","src":"126047:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7380,"mutability":"mutable","name":"p2","nameLocation":"126064:2:0","nodeType":"VariableDeclaration","scope":7397,"src":"126059:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7379,"name":"uint","nodeType":"ElementaryTypeName","src":"126059:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7382,"mutability":"mutable","name":"p3","nameLocation":"126073:2:0","nodeType":"VariableDeclaration","scope":7397,"src":"126068:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7381,"name":"uint","nodeType":"ElementaryTypeName","src":"126068:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"126037:39:0"},"returnParameters":{"id":7384,"nodeType":"ParameterList","parameters":[],"src":"126091:0:0"},"scope":12159,"src":"126025:170:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7419,"nodeType":"Block","src":"126276:106:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c616464726573732c75696e742c737472696e6729","id":7411,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"126326:31:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_3ed3bd282d1a27244fa4d3668aff783448c1a1864ff920057fa9f1c8144bb10b","typeString":"literal_string \"log(uint,address,uint,string)\""},"value":"log(uint,address,uint,string)"},{"id":7412,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7399,"src":"126359:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7413,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7401,"src":"126363:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7414,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7403,"src":"126367:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7415,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7405,"src":"126371:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3ed3bd282d1a27244fa4d3668aff783448c1a1864ff920057fa9f1c8144bb10b","typeString":"literal_string \"log(uint,address,uint,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":7409,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"126302:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7410,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"126306:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"126302:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"126302:72:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7408,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"126286:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"126286:89:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7418,"nodeType":"ExpressionStatement","src":"126286:89:0"}]},"id":7420,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"126210:3:0","nodeType":"FunctionDefinition","parameters":{"id":7406,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7399,"mutability":"mutable","name":"p0","nameLocation":"126219:2:0","nodeType":"VariableDeclaration","scope":7420,"src":"126214:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7398,"name":"uint","nodeType":"ElementaryTypeName","src":"126214:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7401,"mutability":"mutable","name":"p1","nameLocation":"126231:2:0","nodeType":"VariableDeclaration","scope":7420,"src":"126223:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7400,"name":"address","nodeType":"ElementaryTypeName","src":"126223:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7403,"mutability":"mutable","name":"p2","nameLocation":"126240:2:0","nodeType":"VariableDeclaration","scope":7420,"src":"126235:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7402,"name":"uint","nodeType":"ElementaryTypeName","src":"126235:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7405,"mutability":"mutable","name":"p3","nameLocation":"126258:2:0","nodeType":"VariableDeclaration","scope":7420,"src":"126244:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7404,"name":"string","nodeType":"ElementaryTypeName","src":"126244:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"126213:48:0"},"returnParameters":{"id":7407,"nodeType":"ParameterList","parameters":[],"src":"126276:0:0"},"scope":12159,"src":"126201:181:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7442,"nodeType":"Block","src":"126454:104:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c616464726573732c75696e742c626f6f6c29","id":7434,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"126504:29:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_19f67369d42bc0582d07ae744348ad46b79a6c16f354e3d3fb3c6bff2ecfa9f8","typeString":"literal_string \"log(uint,address,uint,bool)\""},"value":"log(uint,address,uint,bool)"},{"id":7435,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7422,"src":"126535:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7436,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7424,"src":"126539:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7437,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7426,"src":"126543:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7438,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7428,"src":"126547:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_19f67369d42bc0582d07ae744348ad46b79a6c16f354e3d3fb3c6bff2ecfa9f8","typeString":"literal_string \"log(uint,address,uint,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":7432,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"126480:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7433,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"126484:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"126480:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"126480:70:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7431,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"126464:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7440,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"126464:87:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7441,"nodeType":"ExpressionStatement","src":"126464:87:0"}]},"id":7443,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"126397:3:0","nodeType":"FunctionDefinition","parameters":{"id":7429,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7422,"mutability":"mutable","name":"p0","nameLocation":"126406:2:0","nodeType":"VariableDeclaration","scope":7443,"src":"126401:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7421,"name":"uint","nodeType":"ElementaryTypeName","src":"126401:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7424,"mutability":"mutable","name":"p1","nameLocation":"126418:2:0","nodeType":"VariableDeclaration","scope":7443,"src":"126410:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7423,"name":"address","nodeType":"ElementaryTypeName","src":"126410:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7426,"mutability":"mutable","name":"p2","nameLocation":"126427:2:0","nodeType":"VariableDeclaration","scope":7443,"src":"126422:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7425,"name":"uint","nodeType":"ElementaryTypeName","src":"126422:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7428,"mutability":"mutable","name":"p3","nameLocation":"126436:2:0","nodeType":"VariableDeclaration","scope":7443,"src":"126431:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7427,"name":"bool","nodeType":"ElementaryTypeName","src":"126431:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"126400:39:0"},"returnParameters":{"id":7430,"nodeType":"ParameterList","parameters":[],"src":"126454:0:0"},"scope":12159,"src":"126388:170:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7465,"nodeType":"Block","src":"126633:107:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c616464726573732c75696e742c6164647265737329","id":7457,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"126683:32:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_fdb2ecd415c75df8f66285a054607fa1335126fb1d8930dfc21744a3de7298e3","typeString":"literal_string \"log(uint,address,uint,address)\""},"value":"log(uint,address,uint,address)"},{"id":7458,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7445,"src":"126717:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7459,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7447,"src":"126721:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7460,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7449,"src":"126725:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7461,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7451,"src":"126729:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fdb2ecd415c75df8f66285a054607fa1335126fb1d8930dfc21744a3de7298e3","typeString":"literal_string \"log(uint,address,uint,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7455,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"126659:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7456,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"126663:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"126659:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"126659:73:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7454,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"126643:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"126643:90:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7464,"nodeType":"ExpressionStatement","src":"126643:90:0"}]},"id":7466,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"126573:3:0","nodeType":"FunctionDefinition","parameters":{"id":7452,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7445,"mutability":"mutable","name":"p0","nameLocation":"126582:2:0","nodeType":"VariableDeclaration","scope":7466,"src":"126577:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7444,"name":"uint","nodeType":"ElementaryTypeName","src":"126577:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7447,"mutability":"mutable","name":"p1","nameLocation":"126594:2:0","nodeType":"VariableDeclaration","scope":7466,"src":"126586:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7446,"name":"address","nodeType":"ElementaryTypeName","src":"126586:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7449,"mutability":"mutable","name":"p2","nameLocation":"126603:2:0","nodeType":"VariableDeclaration","scope":7466,"src":"126598:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7448,"name":"uint","nodeType":"ElementaryTypeName","src":"126598:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7451,"mutability":"mutable","name":"p3","nameLocation":"126615:2:0","nodeType":"VariableDeclaration","scope":7466,"src":"126607:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7450,"name":"address","nodeType":"ElementaryTypeName","src":"126607:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"126576:42:0"},"returnParameters":{"id":7453,"nodeType":"ParameterList","parameters":[],"src":"126633:0:0"},"scope":12159,"src":"126564:176:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7488,"nodeType":"Block","src":"126821:106:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c616464726573732c737472696e672c75696e7429","id":7480,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"126871:31:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_a0c414e8ba2ea65b865dd0bf68b2357e81261b47f237c68a4a8a63051bbef2eb","typeString":"literal_string \"log(uint,address,string,uint)\""},"value":"log(uint,address,string,uint)"},{"id":7481,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7468,"src":"126904:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7482,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7470,"src":"126908:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7483,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7472,"src":"126912:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7484,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7474,"src":"126916:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a0c414e8ba2ea65b865dd0bf68b2357e81261b47f237c68a4a8a63051bbef2eb","typeString":"literal_string \"log(uint,address,string,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7478,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"126847:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7479,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"126851:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"126847:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"126847:72:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7477,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"126831:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"126831:89:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7487,"nodeType":"ExpressionStatement","src":"126831:89:0"}]},"id":7489,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"126755:3:0","nodeType":"FunctionDefinition","parameters":{"id":7475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7468,"mutability":"mutable","name":"p0","nameLocation":"126764:2:0","nodeType":"VariableDeclaration","scope":7489,"src":"126759:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7467,"name":"uint","nodeType":"ElementaryTypeName","src":"126759:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7470,"mutability":"mutable","name":"p1","nameLocation":"126776:2:0","nodeType":"VariableDeclaration","scope":7489,"src":"126768:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7469,"name":"address","nodeType":"ElementaryTypeName","src":"126768:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7472,"mutability":"mutable","name":"p2","nameLocation":"126794:2:0","nodeType":"VariableDeclaration","scope":7489,"src":"126780:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7471,"name":"string","nodeType":"ElementaryTypeName","src":"126780:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7474,"mutability":"mutable","name":"p3","nameLocation":"126803:2:0","nodeType":"VariableDeclaration","scope":7489,"src":"126798:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7473,"name":"uint","nodeType":"ElementaryTypeName","src":"126798:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"126758:48:0"},"returnParameters":{"id":7476,"nodeType":"ParameterList","parameters":[],"src":"126821:0:0"},"scope":12159,"src":"126746:181:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7511,"nodeType":"Block","src":"127017:108:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c616464726573732c737472696e672c737472696e6729","id":7503,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"127067:33:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_8d778624e1d83269ce0415864bb54677b540f778c6b8503cf9035bc7517326f1","typeString":"literal_string \"log(uint,address,string,string)\""},"value":"log(uint,address,string,string)"},{"id":7504,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7491,"src":"127102:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7505,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7493,"src":"127106:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7506,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7495,"src":"127110:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7507,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7497,"src":"127114:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8d778624e1d83269ce0415864bb54677b540f778c6b8503cf9035bc7517326f1","typeString":"literal_string \"log(uint,address,string,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":7501,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"127043:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7502,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"127047:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"127043:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"127043:74:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7500,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"127027:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"127027:91:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7510,"nodeType":"ExpressionStatement","src":"127027:91:0"}]},"id":7512,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"126942:3:0","nodeType":"FunctionDefinition","parameters":{"id":7498,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7491,"mutability":"mutable","name":"p0","nameLocation":"126951:2:0","nodeType":"VariableDeclaration","scope":7512,"src":"126946:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7490,"name":"uint","nodeType":"ElementaryTypeName","src":"126946:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7493,"mutability":"mutable","name":"p1","nameLocation":"126963:2:0","nodeType":"VariableDeclaration","scope":7512,"src":"126955:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7492,"name":"address","nodeType":"ElementaryTypeName","src":"126955:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7495,"mutability":"mutable","name":"p2","nameLocation":"126981:2:0","nodeType":"VariableDeclaration","scope":7512,"src":"126967:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7494,"name":"string","nodeType":"ElementaryTypeName","src":"126967:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7497,"mutability":"mutable","name":"p3","nameLocation":"126999:2:0","nodeType":"VariableDeclaration","scope":7512,"src":"126985:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7496,"name":"string","nodeType":"ElementaryTypeName","src":"126985:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"126945:57:0"},"returnParameters":{"id":7499,"nodeType":"ParameterList","parameters":[],"src":"127017:0:0"},"scope":12159,"src":"126933:192:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7534,"nodeType":"Block","src":"127206:106:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c616464726573732c737472696e672c626f6f6c29","id":7526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"127256:31:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_22a479a660b74b7598155f369ed227a5a93527fbdb04ff6f78fbf35fa23aacbf","typeString":"literal_string \"log(uint,address,string,bool)\""},"value":"log(uint,address,string,bool)"},{"id":7527,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7514,"src":"127289:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7528,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7516,"src":"127293:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7529,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7518,"src":"127297:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7530,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7520,"src":"127301:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_22a479a660b74b7598155f369ed227a5a93527fbdb04ff6f78fbf35fa23aacbf","typeString":"literal_string \"log(uint,address,string,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":7524,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"127232:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7525,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"127236:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"127232:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"127232:72:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7523,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"127216:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"127216:89:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7533,"nodeType":"ExpressionStatement","src":"127216:89:0"}]},"id":7535,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"127140:3:0","nodeType":"FunctionDefinition","parameters":{"id":7521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7514,"mutability":"mutable","name":"p0","nameLocation":"127149:2:0","nodeType":"VariableDeclaration","scope":7535,"src":"127144:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7513,"name":"uint","nodeType":"ElementaryTypeName","src":"127144:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7516,"mutability":"mutable","name":"p1","nameLocation":"127161:2:0","nodeType":"VariableDeclaration","scope":7535,"src":"127153:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7515,"name":"address","nodeType":"ElementaryTypeName","src":"127153:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7518,"mutability":"mutable","name":"p2","nameLocation":"127179:2:0","nodeType":"VariableDeclaration","scope":7535,"src":"127165:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7517,"name":"string","nodeType":"ElementaryTypeName","src":"127165:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7520,"mutability":"mutable","name":"p3","nameLocation":"127188:2:0","nodeType":"VariableDeclaration","scope":7535,"src":"127183:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7519,"name":"bool","nodeType":"ElementaryTypeName","src":"127183:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"127143:48:0"},"returnParameters":{"id":7522,"nodeType":"ParameterList","parameters":[],"src":"127206:0:0"},"scope":12159,"src":"127131:181:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7557,"nodeType":"Block","src":"127396:109:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c616464726573732c737472696e672c6164647265737329","id":7549,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"127446:34:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_cbe58efddc067d74914c3479914810966ae688ac66ca2bbcae69cd9d0395796f","typeString":"literal_string \"log(uint,address,string,address)\""},"value":"log(uint,address,string,address)"},{"id":7550,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7537,"src":"127482:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7551,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7539,"src":"127486:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7552,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7541,"src":"127490:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7553,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7543,"src":"127494:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cbe58efddc067d74914c3479914810966ae688ac66ca2bbcae69cd9d0395796f","typeString":"literal_string \"log(uint,address,string,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7547,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"127422:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7548,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"127426:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"127422:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"127422:75:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7546,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"127406:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"127406:92:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7556,"nodeType":"ExpressionStatement","src":"127406:92:0"}]},"id":7558,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"127327:3:0","nodeType":"FunctionDefinition","parameters":{"id":7544,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7537,"mutability":"mutable","name":"p0","nameLocation":"127336:2:0","nodeType":"VariableDeclaration","scope":7558,"src":"127331:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7536,"name":"uint","nodeType":"ElementaryTypeName","src":"127331:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7539,"mutability":"mutable","name":"p1","nameLocation":"127348:2:0","nodeType":"VariableDeclaration","scope":7558,"src":"127340:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7538,"name":"address","nodeType":"ElementaryTypeName","src":"127340:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7541,"mutability":"mutable","name":"p2","nameLocation":"127366:2:0","nodeType":"VariableDeclaration","scope":7558,"src":"127352:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7540,"name":"string","nodeType":"ElementaryTypeName","src":"127352:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7543,"mutability":"mutable","name":"p3","nameLocation":"127378:2:0","nodeType":"VariableDeclaration","scope":7558,"src":"127370:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7542,"name":"address","nodeType":"ElementaryTypeName","src":"127370:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"127330:51:0"},"returnParameters":{"id":7545,"nodeType":"ParameterList","parameters":[],"src":"127396:0:0"},"scope":12159,"src":"127318:187:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7580,"nodeType":"Block","src":"127577:104:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c616464726573732c626f6f6c2c75696e7429","id":7572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"127627:29:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_7b08e8ebd6be8a04c54551194ba5143f1a555d43fe60d53843383a9915eeccb2","typeString":"literal_string \"log(uint,address,bool,uint)\""},"value":"log(uint,address,bool,uint)"},{"id":7573,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7560,"src":"127658:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7574,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7562,"src":"127662:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7575,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7564,"src":"127666:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7576,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7566,"src":"127670:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7b08e8ebd6be8a04c54551194ba5143f1a555d43fe60d53843383a9915eeccb2","typeString":"literal_string \"log(uint,address,bool,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7570,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"127603:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7571,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"127607:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"127603:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"127603:70:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7569,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"127587:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"127587:87:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7579,"nodeType":"ExpressionStatement","src":"127587:87:0"}]},"id":7581,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"127520:3:0","nodeType":"FunctionDefinition","parameters":{"id":7567,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7560,"mutability":"mutable","name":"p0","nameLocation":"127529:2:0","nodeType":"VariableDeclaration","scope":7581,"src":"127524:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7559,"name":"uint","nodeType":"ElementaryTypeName","src":"127524:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7562,"mutability":"mutable","name":"p1","nameLocation":"127541:2:0","nodeType":"VariableDeclaration","scope":7581,"src":"127533:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7561,"name":"address","nodeType":"ElementaryTypeName","src":"127533:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7564,"mutability":"mutable","name":"p2","nameLocation":"127550:2:0","nodeType":"VariableDeclaration","scope":7581,"src":"127545:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7563,"name":"bool","nodeType":"ElementaryTypeName","src":"127545:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7566,"mutability":"mutable","name":"p3","nameLocation":"127559:2:0","nodeType":"VariableDeclaration","scope":7581,"src":"127554:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7565,"name":"uint","nodeType":"ElementaryTypeName","src":"127554:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"127523:39:0"},"returnParameters":{"id":7568,"nodeType":"ParameterList","parameters":[],"src":"127577:0:0"},"scope":12159,"src":"127511:170:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7603,"nodeType":"Block","src":"127762:106:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c616464726573732c626f6f6c2c737472696e6729","id":7595,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"127812:31:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_63f0e24221aeb6c531ea500a191ac35497bf48695fb29864fe57726a12d605c6","typeString":"literal_string \"log(uint,address,bool,string)\""},"value":"log(uint,address,bool,string)"},{"id":7596,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7583,"src":"127845:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7597,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7585,"src":"127849:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7598,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7587,"src":"127853:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7599,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7589,"src":"127857:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_63f0e24221aeb6c531ea500a191ac35497bf48695fb29864fe57726a12d605c6","typeString":"literal_string \"log(uint,address,bool,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":7593,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"127788:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7594,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"127792:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"127788:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"127788:72:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7592,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"127772:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"127772:89:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7602,"nodeType":"ExpressionStatement","src":"127772:89:0"}]},"id":7604,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"127696:3:0","nodeType":"FunctionDefinition","parameters":{"id":7590,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7583,"mutability":"mutable","name":"p0","nameLocation":"127705:2:0","nodeType":"VariableDeclaration","scope":7604,"src":"127700:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7582,"name":"uint","nodeType":"ElementaryTypeName","src":"127700:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7585,"mutability":"mutable","name":"p1","nameLocation":"127717:2:0","nodeType":"VariableDeclaration","scope":7604,"src":"127709:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7584,"name":"address","nodeType":"ElementaryTypeName","src":"127709:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7587,"mutability":"mutable","name":"p2","nameLocation":"127726:2:0","nodeType":"VariableDeclaration","scope":7604,"src":"127721:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7586,"name":"bool","nodeType":"ElementaryTypeName","src":"127721:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7589,"mutability":"mutable","name":"p3","nameLocation":"127744:2:0","nodeType":"VariableDeclaration","scope":7604,"src":"127730:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7588,"name":"string","nodeType":"ElementaryTypeName","src":"127730:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"127699:48:0"},"returnParameters":{"id":7591,"nodeType":"ParameterList","parameters":[],"src":"127762:0:0"},"scope":12159,"src":"127687:181:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7626,"nodeType":"Block","src":"127940:104:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c616464726573732c626f6f6c2c626f6f6c29","id":7618,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"127990:29:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_7e27410dc86ab22a92f2a269c9cf538b707bde3ac248f933df1f4d0b76947d32","typeString":"literal_string \"log(uint,address,bool,bool)\""},"value":"log(uint,address,bool,bool)"},{"id":7619,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7606,"src":"128021:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7620,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7608,"src":"128025:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7621,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7610,"src":"128029:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7622,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7612,"src":"128033:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7e27410dc86ab22a92f2a269c9cf538b707bde3ac248f933df1f4d0b76947d32","typeString":"literal_string \"log(uint,address,bool,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":7616,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"127966:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7617,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"127970:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"127966:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"127966:70:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7615,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"127950:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"127950:87:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7625,"nodeType":"ExpressionStatement","src":"127950:87:0"}]},"id":7627,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"127883:3:0","nodeType":"FunctionDefinition","parameters":{"id":7613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7606,"mutability":"mutable","name":"p0","nameLocation":"127892:2:0","nodeType":"VariableDeclaration","scope":7627,"src":"127887:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7605,"name":"uint","nodeType":"ElementaryTypeName","src":"127887:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7608,"mutability":"mutable","name":"p1","nameLocation":"127904:2:0","nodeType":"VariableDeclaration","scope":7627,"src":"127896:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7607,"name":"address","nodeType":"ElementaryTypeName","src":"127896:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7610,"mutability":"mutable","name":"p2","nameLocation":"127913:2:0","nodeType":"VariableDeclaration","scope":7627,"src":"127908:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7609,"name":"bool","nodeType":"ElementaryTypeName","src":"127908:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7612,"mutability":"mutable","name":"p3","nameLocation":"127922:2:0","nodeType":"VariableDeclaration","scope":7627,"src":"127917:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7611,"name":"bool","nodeType":"ElementaryTypeName","src":"127917:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"127886:39:0"},"returnParameters":{"id":7614,"nodeType":"ParameterList","parameters":[],"src":"127940:0:0"},"scope":12159,"src":"127874:170:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7649,"nodeType":"Block","src":"128119:107:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c616464726573732c626f6f6c2c6164647265737329","id":7641,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"128169:32:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_b6313094a820841f3156e32d271c63cceded7f62875d471e1e87ef33ec252789","typeString":"literal_string \"log(uint,address,bool,address)\""},"value":"log(uint,address,bool,address)"},{"id":7642,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7629,"src":"128203:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7643,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7631,"src":"128207:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7644,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7633,"src":"128211:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7645,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7635,"src":"128215:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b6313094a820841f3156e32d271c63cceded7f62875d471e1e87ef33ec252789","typeString":"literal_string \"log(uint,address,bool,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7639,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"128145:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7640,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"128149:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"128145:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"128145:73:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7638,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"128129:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"128129:90:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7648,"nodeType":"ExpressionStatement","src":"128129:90:0"}]},"id":7650,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"128059:3:0","nodeType":"FunctionDefinition","parameters":{"id":7636,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7629,"mutability":"mutable","name":"p0","nameLocation":"128068:2:0","nodeType":"VariableDeclaration","scope":7650,"src":"128063:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7628,"name":"uint","nodeType":"ElementaryTypeName","src":"128063:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7631,"mutability":"mutable","name":"p1","nameLocation":"128080:2:0","nodeType":"VariableDeclaration","scope":7650,"src":"128072:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7630,"name":"address","nodeType":"ElementaryTypeName","src":"128072:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7633,"mutability":"mutable","name":"p2","nameLocation":"128089:2:0","nodeType":"VariableDeclaration","scope":7650,"src":"128084:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7632,"name":"bool","nodeType":"ElementaryTypeName","src":"128084:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7635,"mutability":"mutable","name":"p3","nameLocation":"128101:2:0","nodeType":"VariableDeclaration","scope":7650,"src":"128093:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7634,"name":"address","nodeType":"ElementaryTypeName","src":"128093:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"128062:42:0"},"returnParameters":{"id":7637,"nodeType":"ParameterList","parameters":[],"src":"128119:0:0"},"scope":12159,"src":"128050:176:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7672,"nodeType":"Block","src":"128301:107:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c616464726573732c616464726573732c75696e7429","id":7664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"128351:32:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_9a3cbf9603c94c357c6f62b7a32789d9ca5caa81518d1277c9ca986a5650734b","typeString":"literal_string \"log(uint,address,address,uint)\""},"value":"log(uint,address,address,uint)"},{"id":7665,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7652,"src":"128385:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7666,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7654,"src":"128389:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7667,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7656,"src":"128393:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7668,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7658,"src":"128397:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9a3cbf9603c94c357c6f62b7a32789d9ca5caa81518d1277c9ca986a5650734b","typeString":"literal_string \"log(uint,address,address,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7662,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"128327:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7663,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"128331:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"128327:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"128327:73:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7661,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"128311:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"128311:90:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7671,"nodeType":"ExpressionStatement","src":"128311:90:0"}]},"id":7673,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"128241:3:0","nodeType":"FunctionDefinition","parameters":{"id":7659,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7652,"mutability":"mutable","name":"p0","nameLocation":"128250:2:0","nodeType":"VariableDeclaration","scope":7673,"src":"128245:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7651,"name":"uint","nodeType":"ElementaryTypeName","src":"128245:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7654,"mutability":"mutable","name":"p1","nameLocation":"128262:2:0","nodeType":"VariableDeclaration","scope":7673,"src":"128254:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7653,"name":"address","nodeType":"ElementaryTypeName","src":"128254:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7656,"mutability":"mutable","name":"p2","nameLocation":"128274:2:0","nodeType":"VariableDeclaration","scope":7673,"src":"128266:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7655,"name":"address","nodeType":"ElementaryTypeName","src":"128266:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7658,"mutability":"mutable","name":"p3","nameLocation":"128283:2:0","nodeType":"VariableDeclaration","scope":7673,"src":"128278:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7657,"name":"uint","nodeType":"ElementaryTypeName","src":"128278:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"128244:42:0"},"returnParameters":{"id":7660,"nodeType":"ParameterList","parameters":[],"src":"128301:0:0"},"scope":12159,"src":"128232:176:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7695,"nodeType":"Block","src":"128492:109:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c616464726573732c616464726573732c737472696e6729","id":7687,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"128542:34:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_7943dc6627d308affd474fe50b563bcfbf09518236383b806f11730459213622","typeString":"literal_string \"log(uint,address,address,string)\""},"value":"log(uint,address,address,string)"},{"id":7688,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7675,"src":"128578:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7689,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7677,"src":"128582:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7690,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7679,"src":"128586:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7691,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7681,"src":"128590:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7943dc6627d308affd474fe50b563bcfbf09518236383b806f11730459213622","typeString":"literal_string \"log(uint,address,address,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":7685,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"128518:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7686,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"128522:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"128518:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"128518:75:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7684,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"128502:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"128502:92:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7694,"nodeType":"ExpressionStatement","src":"128502:92:0"}]},"id":7696,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"128423:3:0","nodeType":"FunctionDefinition","parameters":{"id":7682,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7675,"mutability":"mutable","name":"p0","nameLocation":"128432:2:0","nodeType":"VariableDeclaration","scope":7696,"src":"128427:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7674,"name":"uint","nodeType":"ElementaryTypeName","src":"128427:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7677,"mutability":"mutable","name":"p1","nameLocation":"128444:2:0","nodeType":"VariableDeclaration","scope":7696,"src":"128436:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7676,"name":"address","nodeType":"ElementaryTypeName","src":"128436:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7679,"mutability":"mutable","name":"p2","nameLocation":"128456:2:0","nodeType":"VariableDeclaration","scope":7696,"src":"128448:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7678,"name":"address","nodeType":"ElementaryTypeName","src":"128448:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7681,"mutability":"mutable","name":"p3","nameLocation":"128474:2:0","nodeType":"VariableDeclaration","scope":7696,"src":"128460:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7680,"name":"string","nodeType":"ElementaryTypeName","src":"128460:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"128426:51:0"},"returnParameters":{"id":7683,"nodeType":"ParameterList","parameters":[],"src":"128492:0:0"},"scope":12159,"src":"128414:187:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7718,"nodeType":"Block","src":"128676:107:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c616464726573732c616464726573732c626f6f6c29","id":7710,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"128726:32:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_01550b04ea9916da7bc495d1b5ca5c4bd8d92ef3a98e2cca5a948cec5011f38c","typeString":"literal_string \"log(uint,address,address,bool)\""},"value":"log(uint,address,address,bool)"},{"id":7711,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7698,"src":"128760:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7712,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7700,"src":"128764:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7713,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7702,"src":"128768:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7714,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7704,"src":"128772:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_01550b04ea9916da7bc495d1b5ca5c4bd8d92ef3a98e2cca5a948cec5011f38c","typeString":"literal_string \"log(uint,address,address,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":7708,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"128702:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7709,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"128706:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"128702:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"128702:73:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7707,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"128686:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"128686:90:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7717,"nodeType":"ExpressionStatement","src":"128686:90:0"}]},"id":7719,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"128616:3:0","nodeType":"FunctionDefinition","parameters":{"id":7705,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7698,"mutability":"mutable","name":"p0","nameLocation":"128625:2:0","nodeType":"VariableDeclaration","scope":7719,"src":"128620:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7697,"name":"uint","nodeType":"ElementaryTypeName","src":"128620:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7700,"mutability":"mutable","name":"p1","nameLocation":"128637:2:0","nodeType":"VariableDeclaration","scope":7719,"src":"128629:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7699,"name":"address","nodeType":"ElementaryTypeName","src":"128629:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7702,"mutability":"mutable","name":"p2","nameLocation":"128649:2:0","nodeType":"VariableDeclaration","scope":7719,"src":"128641:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7701,"name":"address","nodeType":"ElementaryTypeName","src":"128641:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7704,"mutability":"mutable","name":"p3","nameLocation":"128658:2:0","nodeType":"VariableDeclaration","scope":7719,"src":"128653:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7703,"name":"bool","nodeType":"ElementaryTypeName","src":"128653:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"128619:42:0"},"returnParameters":{"id":7706,"nodeType":"ParameterList","parameters":[],"src":"128676:0:0"},"scope":12159,"src":"128607:176:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7741,"nodeType":"Block","src":"128861:110:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c616464726573732c616464726573732c6164647265737329","id":7733,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"128911:35:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_554745f9e6550eea6000ea2febc94de95d453100d5d60359e62cd398b366bfc4","typeString":"literal_string \"log(uint,address,address,address)\""},"value":"log(uint,address,address,address)"},{"id":7734,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7721,"src":"128948:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7735,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7723,"src":"128952:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7736,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7725,"src":"128956:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7737,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7727,"src":"128960:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_554745f9e6550eea6000ea2febc94de95d453100d5d60359e62cd398b366bfc4","typeString":"literal_string \"log(uint,address,address,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7731,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"128887:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7732,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"128891:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"128887:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"128887:76:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7730,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"128871:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"128871:93:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7740,"nodeType":"ExpressionStatement","src":"128871:93:0"}]},"id":7742,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"128798:3:0","nodeType":"FunctionDefinition","parameters":{"id":7728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7721,"mutability":"mutable","name":"p0","nameLocation":"128807:2:0","nodeType":"VariableDeclaration","scope":7742,"src":"128802:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7720,"name":"uint","nodeType":"ElementaryTypeName","src":"128802:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7723,"mutability":"mutable","name":"p1","nameLocation":"128819:2:0","nodeType":"VariableDeclaration","scope":7742,"src":"128811:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7722,"name":"address","nodeType":"ElementaryTypeName","src":"128811:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7725,"mutability":"mutable","name":"p2","nameLocation":"128831:2:0","nodeType":"VariableDeclaration","scope":7742,"src":"128823:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7724,"name":"address","nodeType":"ElementaryTypeName","src":"128823:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7727,"mutability":"mutable","name":"p3","nameLocation":"128843:2:0","nodeType":"VariableDeclaration","scope":7742,"src":"128835:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7726,"name":"address","nodeType":"ElementaryTypeName","src":"128835:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"128801:45:0"},"returnParameters":{"id":7729,"nodeType":"ParameterList","parameters":[],"src":"128861:0:0"},"scope":12159,"src":"128789:182:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7764,"nodeType":"Block","src":"129049:103:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e742c75696e742c75696e7429","id":7756,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"129099:28:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_08ee5666d6bd329d27af528e563bb238dedf631fe471effe31c7123dcb5164f2","typeString":"literal_string \"log(string,uint,uint,uint)\""},"value":"log(string,uint,uint,uint)"},{"id":7757,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7744,"src":"129129:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7758,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7746,"src":"129133:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7759,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7748,"src":"129137:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7760,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7750,"src":"129141:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_08ee5666d6bd329d27af528e563bb238dedf631fe471effe31c7123dcb5164f2","typeString":"literal_string \"log(string,uint,uint,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7754,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"129075:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7755,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"129079:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"129075:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"129075:69:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7753,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"129059:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"129059:86:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7763,"nodeType":"ExpressionStatement","src":"129059:86:0"}]},"id":7765,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"128986:3:0","nodeType":"FunctionDefinition","parameters":{"id":7751,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7744,"mutability":"mutable","name":"p0","nameLocation":"129004:2:0","nodeType":"VariableDeclaration","scope":7765,"src":"128990:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7743,"name":"string","nodeType":"ElementaryTypeName","src":"128990:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7746,"mutability":"mutable","name":"p1","nameLocation":"129013:2:0","nodeType":"VariableDeclaration","scope":7765,"src":"129008:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7745,"name":"uint","nodeType":"ElementaryTypeName","src":"129008:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7748,"mutability":"mutable","name":"p2","nameLocation":"129022:2:0","nodeType":"VariableDeclaration","scope":7765,"src":"129017:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7747,"name":"uint","nodeType":"ElementaryTypeName","src":"129017:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7750,"mutability":"mutable","name":"p3","nameLocation":"129031:2:0","nodeType":"VariableDeclaration","scope":7765,"src":"129026:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7749,"name":"uint","nodeType":"ElementaryTypeName","src":"129026:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"128989:45:0"},"returnParameters":{"id":7752,"nodeType":"ParameterList","parameters":[],"src":"129049:0:0"},"scope":12159,"src":"128977:175:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7787,"nodeType":"Block","src":"129239:105:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e742c75696e742c737472696e6729","id":7779,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"129289:30:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_a54ed4bdd39588715cd10f1b9730ac9f0db064013c8dc11e216fa2ef3a5948b8","typeString":"literal_string \"log(string,uint,uint,string)\""},"value":"log(string,uint,uint,string)"},{"id":7780,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7767,"src":"129321:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7781,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7769,"src":"129325:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7782,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7771,"src":"129329:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7783,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7773,"src":"129333:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a54ed4bdd39588715cd10f1b9730ac9f0db064013c8dc11e216fa2ef3a5948b8","typeString":"literal_string \"log(string,uint,uint,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":7777,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"129265:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7778,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"129269:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"129265:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"129265:71:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7776,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"129249:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"129249:88:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7786,"nodeType":"ExpressionStatement","src":"129249:88:0"}]},"id":7788,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"129167:3:0","nodeType":"FunctionDefinition","parameters":{"id":7774,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7767,"mutability":"mutable","name":"p0","nameLocation":"129185:2:0","nodeType":"VariableDeclaration","scope":7788,"src":"129171:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7766,"name":"string","nodeType":"ElementaryTypeName","src":"129171:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7769,"mutability":"mutable","name":"p1","nameLocation":"129194:2:0","nodeType":"VariableDeclaration","scope":7788,"src":"129189:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7768,"name":"uint","nodeType":"ElementaryTypeName","src":"129189:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7771,"mutability":"mutable","name":"p2","nameLocation":"129203:2:0","nodeType":"VariableDeclaration","scope":7788,"src":"129198:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7770,"name":"uint","nodeType":"ElementaryTypeName","src":"129198:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7773,"mutability":"mutable","name":"p3","nameLocation":"129221:2:0","nodeType":"VariableDeclaration","scope":7788,"src":"129207:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7772,"name":"string","nodeType":"ElementaryTypeName","src":"129207:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"129170:54:0"},"returnParameters":{"id":7775,"nodeType":"ParameterList","parameters":[],"src":"129239:0:0"},"scope":12159,"src":"129158:186:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7810,"nodeType":"Block","src":"129422:103:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e742c75696e742c626f6f6c29","id":7802,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"129472:28:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_f73c7e3dc5b5cecd5787e08e359612e609c17649291b138c8f184ee441526f2d","typeString":"literal_string \"log(string,uint,uint,bool)\""},"value":"log(string,uint,uint,bool)"},{"id":7803,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7790,"src":"129502:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7804,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7792,"src":"129506:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7805,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7794,"src":"129510:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7806,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7796,"src":"129514:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f73c7e3dc5b5cecd5787e08e359612e609c17649291b138c8f184ee441526f2d","typeString":"literal_string \"log(string,uint,uint,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":7800,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"129448:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7801,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"129452:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"129448:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"129448:69:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7799,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"129432:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"129432:86:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7809,"nodeType":"ExpressionStatement","src":"129432:86:0"}]},"id":7811,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"129359:3:0","nodeType":"FunctionDefinition","parameters":{"id":7797,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7790,"mutability":"mutable","name":"p0","nameLocation":"129377:2:0","nodeType":"VariableDeclaration","scope":7811,"src":"129363:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7789,"name":"string","nodeType":"ElementaryTypeName","src":"129363:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7792,"mutability":"mutable","name":"p1","nameLocation":"129386:2:0","nodeType":"VariableDeclaration","scope":7811,"src":"129381:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7791,"name":"uint","nodeType":"ElementaryTypeName","src":"129381:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7794,"mutability":"mutable","name":"p2","nameLocation":"129395:2:0","nodeType":"VariableDeclaration","scope":7811,"src":"129390:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7793,"name":"uint","nodeType":"ElementaryTypeName","src":"129390:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7796,"mutability":"mutable","name":"p3","nameLocation":"129404:2:0","nodeType":"VariableDeclaration","scope":7811,"src":"129399:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7795,"name":"bool","nodeType":"ElementaryTypeName","src":"129399:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"129362:45:0"},"returnParameters":{"id":7798,"nodeType":"ParameterList","parameters":[],"src":"129422:0:0"},"scope":12159,"src":"129350:175:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7833,"nodeType":"Block","src":"129606:106:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e742c75696e742c6164647265737329","id":7825,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"129656:31:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_bed728bf5bf9afc41a2cff142cfc289808bbba64cbab683d8e6689e6f6f14abc","typeString":"literal_string \"log(string,uint,uint,address)\""},"value":"log(string,uint,uint,address)"},{"id":7826,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7813,"src":"129689:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7827,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7815,"src":"129693:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7828,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7817,"src":"129697:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7829,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7819,"src":"129701:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_bed728bf5bf9afc41a2cff142cfc289808bbba64cbab683d8e6689e6f6f14abc","typeString":"literal_string \"log(string,uint,uint,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7823,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"129632:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7824,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"129636:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"129632:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"129632:72:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7822,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"129616:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"129616:89:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7832,"nodeType":"ExpressionStatement","src":"129616:89:0"}]},"id":7834,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"129540:3:0","nodeType":"FunctionDefinition","parameters":{"id":7820,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7813,"mutability":"mutable","name":"p0","nameLocation":"129558:2:0","nodeType":"VariableDeclaration","scope":7834,"src":"129544:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7812,"name":"string","nodeType":"ElementaryTypeName","src":"129544:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7815,"mutability":"mutable","name":"p1","nameLocation":"129567:2:0","nodeType":"VariableDeclaration","scope":7834,"src":"129562:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7814,"name":"uint","nodeType":"ElementaryTypeName","src":"129562:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7817,"mutability":"mutable","name":"p2","nameLocation":"129576:2:0","nodeType":"VariableDeclaration","scope":7834,"src":"129571:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7816,"name":"uint","nodeType":"ElementaryTypeName","src":"129571:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7819,"mutability":"mutable","name":"p3","nameLocation":"129588:2:0","nodeType":"VariableDeclaration","scope":7834,"src":"129580:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7818,"name":"address","nodeType":"ElementaryTypeName","src":"129580:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"129543:48:0"},"returnParameters":{"id":7821,"nodeType":"ParameterList","parameters":[],"src":"129606:0:0"},"scope":12159,"src":"129531:181:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7856,"nodeType":"Block","src":"129799:105:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e742c737472696e672c75696e7429","id":7848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"129849:30:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_a0c4b225a555b1198e8b1e32117070e759cad9a7266d99901b8a7fd2482d0e2f","typeString":"literal_string \"log(string,uint,string,uint)\""},"value":"log(string,uint,string,uint)"},{"id":7849,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7836,"src":"129881:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7850,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7838,"src":"129885:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7851,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7840,"src":"129889:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7852,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7842,"src":"129893:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a0c4b225a555b1198e8b1e32117070e759cad9a7266d99901b8a7fd2482d0e2f","typeString":"literal_string \"log(string,uint,string,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7846,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"129825:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7847,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"129829:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"129825:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"129825:71:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7845,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"129809:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7854,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"129809:88:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7855,"nodeType":"ExpressionStatement","src":"129809:88:0"}]},"id":7857,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"129727:3:0","nodeType":"FunctionDefinition","parameters":{"id":7843,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7836,"mutability":"mutable","name":"p0","nameLocation":"129745:2:0","nodeType":"VariableDeclaration","scope":7857,"src":"129731:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7835,"name":"string","nodeType":"ElementaryTypeName","src":"129731:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7838,"mutability":"mutable","name":"p1","nameLocation":"129754:2:0","nodeType":"VariableDeclaration","scope":7857,"src":"129749:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7837,"name":"uint","nodeType":"ElementaryTypeName","src":"129749:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7840,"mutability":"mutable","name":"p2","nameLocation":"129772:2:0","nodeType":"VariableDeclaration","scope":7857,"src":"129758:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7839,"name":"string","nodeType":"ElementaryTypeName","src":"129758:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7842,"mutability":"mutable","name":"p3","nameLocation":"129781:2:0","nodeType":"VariableDeclaration","scope":7857,"src":"129776:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7841,"name":"uint","nodeType":"ElementaryTypeName","src":"129776:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"129730:54:0"},"returnParameters":{"id":7844,"nodeType":"ParameterList","parameters":[],"src":"129799:0:0"},"scope":12159,"src":"129718:186:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7879,"nodeType":"Block","src":"130000:107:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e742c737472696e672c737472696e6729","id":7871,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"130050:32:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_6c98dae27db048edb14bb31b4326832aa1fb54be52caaf49d1cecb59aa297c07","typeString":"literal_string \"log(string,uint,string,string)\""},"value":"log(string,uint,string,string)"},{"id":7872,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7859,"src":"130084:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7873,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7861,"src":"130088:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7874,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7863,"src":"130092:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7875,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7865,"src":"130096:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6c98dae27db048edb14bb31b4326832aa1fb54be52caaf49d1cecb59aa297c07","typeString":"literal_string \"log(string,uint,string,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":7869,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"130026:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7870,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"130030:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"130026:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"130026:73:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7868,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"130010:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"130010:90:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7878,"nodeType":"ExpressionStatement","src":"130010:90:0"}]},"id":7880,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"129919:3:0","nodeType":"FunctionDefinition","parameters":{"id":7866,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7859,"mutability":"mutable","name":"p0","nameLocation":"129937:2:0","nodeType":"VariableDeclaration","scope":7880,"src":"129923:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7858,"name":"string","nodeType":"ElementaryTypeName","src":"129923:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7861,"mutability":"mutable","name":"p1","nameLocation":"129946:2:0","nodeType":"VariableDeclaration","scope":7880,"src":"129941:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7860,"name":"uint","nodeType":"ElementaryTypeName","src":"129941:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7863,"mutability":"mutable","name":"p2","nameLocation":"129964:2:0","nodeType":"VariableDeclaration","scope":7880,"src":"129950:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7862,"name":"string","nodeType":"ElementaryTypeName","src":"129950:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7865,"mutability":"mutable","name":"p3","nameLocation":"129982:2:0","nodeType":"VariableDeclaration","scope":7880,"src":"129968:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7864,"name":"string","nodeType":"ElementaryTypeName","src":"129968:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"129922:63:0"},"returnParameters":{"id":7867,"nodeType":"ParameterList","parameters":[],"src":"130000:0:0"},"scope":12159,"src":"129910:197:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7902,"nodeType":"Block","src":"130194:105:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e742c737472696e672c626f6f6c29","id":7894,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"130244:30:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e99f82cf29cb9d7551a843a55617f00569395570d3a9816be530f7c6197ec7c8","typeString":"literal_string \"log(string,uint,string,bool)\""},"value":"log(string,uint,string,bool)"},{"id":7895,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7882,"src":"130276:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7896,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7884,"src":"130280:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7897,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7886,"src":"130284:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7898,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7888,"src":"130288:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e99f82cf29cb9d7551a843a55617f00569395570d3a9816be530f7c6197ec7c8","typeString":"literal_string \"log(string,uint,string,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":7892,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"130220:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7893,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"130224:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"130220:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"130220:71:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7891,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"130204:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"130204:88:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7901,"nodeType":"ExpressionStatement","src":"130204:88:0"}]},"id":7903,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"130122:3:0","nodeType":"FunctionDefinition","parameters":{"id":7889,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7882,"mutability":"mutable","name":"p0","nameLocation":"130140:2:0","nodeType":"VariableDeclaration","scope":7903,"src":"130126:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7881,"name":"string","nodeType":"ElementaryTypeName","src":"130126:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7884,"mutability":"mutable","name":"p1","nameLocation":"130149:2:0","nodeType":"VariableDeclaration","scope":7903,"src":"130144:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7883,"name":"uint","nodeType":"ElementaryTypeName","src":"130144:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7886,"mutability":"mutable","name":"p2","nameLocation":"130167:2:0","nodeType":"VariableDeclaration","scope":7903,"src":"130153:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7885,"name":"string","nodeType":"ElementaryTypeName","src":"130153:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7888,"mutability":"mutable","name":"p3","nameLocation":"130176:2:0","nodeType":"VariableDeclaration","scope":7903,"src":"130171:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7887,"name":"bool","nodeType":"ElementaryTypeName","src":"130171:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"130125:54:0"},"returnParameters":{"id":7890,"nodeType":"ParameterList","parameters":[],"src":"130194:0:0"},"scope":12159,"src":"130113:186:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7925,"nodeType":"Block","src":"130389:108:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e742c737472696e672c6164647265737329","id":7917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"130439:33:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_bb7235e9977380af5de9932c5c28e18d22806b4b0a15ac7e98086e795e59b31c","typeString":"literal_string \"log(string,uint,string,address)\""},"value":"log(string,uint,string,address)"},{"id":7918,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7905,"src":"130474:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7919,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7907,"src":"130478:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7920,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7909,"src":"130482:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7921,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7911,"src":"130486:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_bb7235e9977380af5de9932c5c28e18d22806b4b0a15ac7e98086e795e59b31c","typeString":"literal_string \"log(string,uint,string,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7915,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"130415:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7916,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"130419:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"130415:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"130415:74:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7914,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"130399:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"130399:91:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7924,"nodeType":"ExpressionStatement","src":"130399:91:0"}]},"id":7926,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"130314:3:0","nodeType":"FunctionDefinition","parameters":{"id":7912,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7905,"mutability":"mutable","name":"p0","nameLocation":"130332:2:0","nodeType":"VariableDeclaration","scope":7926,"src":"130318:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7904,"name":"string","nodeType":"ElementaryTypeName","src":"130318:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7907,"mutability":"mutable","name":"p1","nameLocation":"130341:2:0","nodeType":"VariableDeclaration","scope":7926,"src":"130336:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7906,"name":"uint","nodeType":"ElementaryTypeName","src":"130336:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7909,"mutability":"mutable","name":"p2","nameLocation":"130359:2:0","nodeType":"VariableDeclaration","scope":7926,"src":"130345:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7908,"name":"string","nodeType":"ElementaryTypeName","src":"130345:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7911,"mutability":"mutable","name":"p3","nameLocation":"130371:2:0","nodeType":"VariableDeclaration","scope":7926,"src":"130363:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7910,"name":"address","nodeType":"ElementaryTypeName","src":"130363:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"130317:57:0"},"returnParameters":{"id":7913,"nodeType":"ParameterList","parameters":[],"src":"130389:0:0"},"scope":12159,"src":"130305:192:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7948,"nodeType":"Block","src":"130575:103:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e742c626f6f6c2c75696e7429","id":7940,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"130625:28:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_550e6ef516f1b3b5be9432b068022af744a919b7f9554b6605ddb59dad27875f","typeString":"literal_string \"log(string,uint,bool,uint)\""},"value":"log(string,uint,bool,uint)"},{"id":7941,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7928,"src":"130655:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7942,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7930,"src":"130659:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7943,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7932,"src":"130663:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7944,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7934,"src":"130667:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_550e6ef516f1b3b5be9432b068022af744a919b7f9554b6605ddb59dad27875f","typeString":"literal_string \"log(string,uint,bool,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7938,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"130601:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7939,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"130605:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"130601:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"130601:69:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7937,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"130585:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"130585:86:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7947,"nodeType":"ExpressionStatement","src":"130585:86:0"}]},"id":7949,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"130512:3:0","nodeType":"FunctionDefinition","parameters":{"id":7935,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7928,"mutability":"mutable","name":"p0","nameLocation":"130530:2:0","nodeType":"VariableDeclaration","scope":7949,"src":"130516:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7927,"name":"string","nodeType":"ElementaryTypeName","src":"130516:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7930,"mutability":"mutable","name":"p1","nameLocation":"130539:2:0","nodeType":"VariableDeclaration","scope":7949,"src":"130534:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7929,"name":"uint","nodeType":"ElementaryTypeName","src":"130534:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7932,"mutability":"mutable","name":"p2","nameLocation":"130548:2:0","nodeType":"VariableDeclaration","scope":7949,"src":"130543:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7931,"name":"bool","nodeType":"ElementaryTypeName","src":"130543:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7934,"mutability":"mutable","name":"p3","nameLocation":"130557:2:0","nodeType":"VariableDeclaration","scope":7949,"src":"130552:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7933,"name":"uint","nodeType":"ElementaryTypeName","src":"130552:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"130515:45:0"},"returnParameters":{"id":7936,"nodeType":"ParameterList","parameters":[],"src":"130575:0:0"},"scope":12159,"src":"130503:175:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7971,"nodeType":"Block","src":"130765:105:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e742c626f6f6c2c737472696e6729","id":7963,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"130815:30:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_76cc6064a225b36730abdd64aa9dcb74a19c97e79a6eaa7e7a7381b59d8b3f68","typeString":"literal_string \"log(string,uint,bool,string)\""},"value":"log(string,uint,bool,string)"},{"id":7964,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7951,"src":"130847:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7965,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7953,"src":"130851:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7966,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7955,"src":"130855:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7967,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7957,"src":"130859:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_76cc6064a225b36730abdd64aa9dcb74a19c97e79a6eaa7e7a7381b59d8b3f68","typeString":"literal_string \"log(string,uint,bool,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":7961,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"130791:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7962,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"130795:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"130791:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"130791:71:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7960,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"130775:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"130775:88:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7970,"nodeType":"ExpressionStatement","src":"130775:88:0"}]},"id":7972,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"130693:3:0","nodeType":"FunctionDefinition","parameters":{"id":7958,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7951,"mutability":"mutable","name":"p0","nameLocation":"130711:2:0","nodeType":"VariableDeclaration","scope":7972,"src":"130697:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7950,"name":"string","nodeType":"ElementaryTypeName","src":"130697:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7953,"mutability":"mutable","name":"p1","nameLocation":"130720:2:0","nodeType":"VariableDeclaration","scope":7972,"src":"130715:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7952,"name":"uint","nodeType":"ElementaryTypeName","src":"130715:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7955,"mutability":"mutable","name":"p2","nameLocation":"130729:2:0","nodeType":"VariableDeclaration","scope":7972,"src":"130724:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7954,"name":"bool","nodeType":"ElementaryTypeName","src":"130724:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7957,"mutability":"mutable","name":"p3","nameLocation":"130747:2:0","nodeType":"VariableDeclaration","scope":7972,"src":"130733:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7956,"name":"string","nodeType":"ElementaryTypeName","src":"130733:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"130696:54:0"},"returnParameters":{"id":7959,"nodeType":"ParameterList","parameters":[],"src":"130765:0:0"},"scope":12159,"src":"130684:186:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7994,"nodeType":"Block","src":"130948:103:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e742c626f6f6c2c626f6f6c29","id":7986,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"130998:28:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e37ff3d07873d5117abd74fe9be70fdadf355b74510a6f7507b0edd4a0032d7f","typeString":"literal_string \"log(string,uint,bool,bool)\""},"value":"log(string,uint,bool,bool)"},{"id":7987,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7974,"src":"131028:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7988,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7976,"src":"131032:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7989,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7978,"src":"131036:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7990,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7980,"src":"131040:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e37ff3d07873d5117abd74fe9be70fdadf355b74510a6f7507b0edd4a0032d7f","typeString":"literal_string \"log(string,uint,bool,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":7984,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"130974:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7985,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"130978:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"130974:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"130974:69:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7983,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"130958:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"130958:86:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7993,"nodeType":"ExpressionStatement","src":"130958:86:0"}]},"id":7995,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"130885:3:0","nodeType":"FunctionDefinition","parameters":{"id":7981,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7974,"mutability":"mutable","name":"p0","nameLocation":"130903:2:0","nodeType":"VariableDeclaration","scope":7995,"src":"130889:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7973,"name":"string","nodeType":"ElementaryTypeName","src":"130889:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7976,"mutability":"mutable","name":"p1","nameLocation":"130912:2:0","nodeType":"VariableDeclaration","scope":7995,"src":"130907:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7975,"name":"uint","nodeType":"ElementaryTypeName","src":"130907:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7978,"mutability":"mutable","name":"p2","nameLocation":"130921:2:0","nodeType":"VariableDeclaration","scope":7995,"src":"130916:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7977,"name":"bool","nodeType":"ElementaryTypeName","src":"130916:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7980,"mutability":"mutable","name":"p3","nameLocation":"130930:2:0","nodeType":"VariableDeclaration","scope":7995,"src":"130925:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7979,"name":"bool","nodeType":"ElementaryTypeName","src":"130925:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"130888:45:0"},"returnParameters":{"id":7982,"nodeType":"ParameterList","parameters":[],"src":"130948:0:0"},"scope":12159,"src":"130876:175:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8017,"nodeType":"Block","src":"131132:106:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e742c626f6f6c2c6164647265737329","id":8009,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"131182:31:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e5549d91ec2998207f70463fe94a71d0edc39b13b219ff8feb87dd990a616539","typeString":"literal_string \"log(string,uint,bool,address)\""},"value":"log(string,uint,bool,address)"},{"id":8010,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7997,"src":"131215:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8011,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7999,"src":"131219:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8012,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8001,"src":"131223:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":8013,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8003,"src":"131227:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e5549d91ec2998207f70463fe94a71d0edc39b13b219ff8feb87dd990a616539","typeString":"literal_string \"log(string,uint,bool,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":8007,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"131158:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8008,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"131162:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"131158:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"131158:72:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8006,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"131142:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"131142:89:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8016,"nodeType":"ExpressionStatement","src":"131142:89:0"}]},"id":8018,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"131066:3:0","nodeType":"FunctionDefinition","parameters":{"id":8004,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7997,"mutability":"mutable","name":"p0","nameLocation":"131084:2:0","nodeType":"VariableDeclaration","scope":8018,"src":"131070:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7996,"name":"string","nodeType":"ElementaryTypeName","src":"131070:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7999,"mutability":"mutable","name":"p1","nameLocation":"131093:2:0","nodeType":"VariableDeclaration","scope":8018,"src":"131088:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7998,"name":"uint","nodeType":"ElementaryTypeName","src":"131088:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8001,"mutability":"mutable","name":"p2","nameLocation":"131102:2:0","nodeType":"VariableDeclaration","scope":8018,"src":"131097:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8000,"name":"bool","nodeType":"ElementaryTypeName","src":"131097:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8003,"mutability":"mutable","name":"p3","nameLocation":"131114:2:0","nodeType":"VariableDeclaration","scope":8018,"src":"131106:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8002,"name":"address","nodeType":"ElementaryTypeName","src":"131106:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"131069:48:0"},"returnParameters":{"id":8005,"nodeType":"ParameterList","parameters":[],"src":"131132:0:0"},"scope":12159,"src":"131057:181:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8040,"nodeType":"Block","src":"131319:106:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e742c616464726573732c75696e7429","id":8032,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"131369:31:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_58497afe9e509136f5cf2fb1db9876437d9cbd769be5985b518ff094427e4f75","typeString":"literal_string \"log(string,uint,address,uint)\""},"value":"log(string,uint,address,uint)"},{"id":8033,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8020,"src":"131402:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8034,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8022,"src":"131406:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8035,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8024,"src":"131410:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8036,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8026,"src":"131414:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_58497afe9e509136f5cf2fb1db9876437d9cbd769be5985b518ff094427e4f75","typeString":"literal_string \"log(string,uint,address,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8030,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"131345:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8031,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"131349:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"131345:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8037,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"131345:72:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8029,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"131329:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"131329:89:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8039,"nodeType":"ExpressionStatement","src":"131329:89:0"}]},"id":8041,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"131253:3:0","nodeType":"FunctionDefinition","parameters":{"id":8027,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8020,"mutability":"mutable","name":"p0","nameLocation":"131271:2:0","nodeType":"VariableDeclaration","scope":8041,"src":"131257:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8019,"name":"string","nodeType":"ElementaryTypeName","src":"131257:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8022,"mutability":"mutable","name":"p1","nameLocation":"131280:2:0","nodeType":"VariableDeclaration","scope":8041,"src":"131275:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8021,"name":"uint","nodeType":"ElementaryTypeName","src":"131275:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8024,"mutability":"mutable","name":"p2","nameLocation":"131292:2:0","nodeType":"VariableDeclaration","scope":8041,"src":"131284:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8023,"name":"address","nodeType":"ElementaryTypeName","src":"131284:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8026,"mutability":"mutable","name":"p3","nameLocation":"131301:2:0","nodeType":"VariableDeclaration","scope":8041,"src":"131296:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8025,"name":"uint","nodeType":"ElementaryTypeName","src":"131296:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"131256:48:0"},"returnParameters":{"id":8028,"nodeType":"ParameterList","parameters":[],"src":"131319:0:0"},"scope":12159,"src":"131244:181:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8063,"nodeType":"Block","src":"131515:108:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e742c616464726573732c737472696e6729","id":8055,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"131565:33:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_3254c2e85e824e7dd0b3e2e602f95218ed23a331406e197386693086d91053c0","typeString":"literal_string \"log(string,uint,address,string)\""},"value":"log(string,uint,address,string)"},{"id":8056,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8043,"src":"131600:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8057,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8045,"src":"131604:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8058,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8047,"src":"131608:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8059,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8049,"src":"131612:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3254c2e85e824e7dd0b3e2e602f95218ed23a331406e197386693086d91053c0","typeString":"literal_string \"log(string,uint,address,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":8053,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"131541:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8054,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"131545:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"131541:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"131541:74:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8052,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"131525:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"131525:91:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8062,"nodeType":"ExpressionStatement","src":"131525:91:0"}]},"id":8064,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"131440:3:0","nodeType":"FunctionDefinition","parameters":{"id":8050,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8043,"mutability":"mutable","name":"p0","nameLocation":"131458:2:0","nodeType":"VariableDeclaration","scope":8064,"src":"131444:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8042,"name":"string","nodeType":"ElementaryTypeName","src":"131444:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8045,"mutability":"mutable","name":"p1","nameLocation":"131467:2:0","nodeType":"VariableDeclaration","scope":8064,"src":"131462:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8044,"name":"uint","nodeType":"ElementaryTypeName","src":"131462:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8047,"mutability":"mutable","name":"p2","nameLocation":"131479:2:0","nodeType":"VariableDeclaration","scope":8064,"src":"131471:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8046,"name":"address","nodeType":"ElementaryTypeName","src":"131471:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8049,"mutability":"mutable","name":"p3","nameLocation":"131497:2:0","nodeType":"VariableDeclaration","scope":8064,"src":"131483:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8048,"name":"string","nodeType":"ElementaryTypeName","src":"131483:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"131443:57:0"},"returnParameters":{"id":8051,"nodeType":"ParameterList","parameters":[],"src":"131515:0:0"},"scope":12159,"src":"131431:192:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8086,"nodeType":"Block","src":"131704:106:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e742c616464726573732c626f6f6c29","id":8078,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"131754:31:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_1106a8f7a9fdb0743cc8f33bcf28da92f358b488bfc5eb2426dcc116571bae10","typeString":"literal_string \"log(string,uint,address,bool)\""},"value":"log(string,uint,address,bool)"},{"id":8079,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8066,"src":"131787:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8080,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8068,"src":"131791:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8081,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8070,"src":"131795:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8082,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8072,"src":"131799:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1106a8f7a9fdb0743cc8f33bcf28da92f358b488bfc5eb2426dcc116571bae10","typeString":"literal_string \"log(string,uint,address,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":8076,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"131730:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8077,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"131734:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"131730:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"131730:72:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8075,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"131714:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"131714:89:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8085,"nodeType":"ExpressionStatement","src":"131714:89:0"}]},"id":8087,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"131638:3:0","nodeType":"FunctionDefinition","parameters":{"id":8073,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8066,"mutability":"mutable","name":"p0","nameLocation":"131656:2:0","nodeType":"VariableDeclaration","scope":8087,"src":"131642:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8065,"name":"string","nodeType":"ElementaryTypeName","src":"131642:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8068,"mutability":"mutable","name":"p1","nameLocation":"131665:2:0","nodeType":"VariableDeclaration","scope":8087,"src":"131660:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8067,"name":"uint","nodeType":"ElementaryTypeName","src":"131660:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8070,"mutability":"mutable","name":"p2","nameLocation":"131677:2:0","nodeType":"VariableDeclaration","scope":8087,"src":"131669:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8069,"name":"address","nodeType":"ElementaryTypeName","src":"131669:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8072,"mutability":"mutable","name":"p3","nameLocation":"131686:2:0","nodeType":"VariableDeclaration","scope":8087,"src":"131681:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8071,"name":"bool","nodeType":"ElementaryTypeName","src":"131681:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"131641:48:0"},"returnParameters":{"id":8074,"nodeType":"ParameterList","parameters":[],"src":"131704:0:0"},"scope":12159,"src":"131629:181:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8109,"nodeType":"Block","src":"131894:109:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e742c616464726573732c6164647265737329","id":8101,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"131944:34:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_eac892812ad5b43e056a005de5f4269f3430ecb19d3374f0e27d055022fbb381","typeString":"literal_string \"log(string,uint,address,address)\""},"value":"log(string,uint,address,address)"},{"id":8102,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8089,"src":"131980:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8103,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8091,"src":"131984:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8104,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8093,"src":"131988:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8105,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8095,"src":"131992:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_eac892812ad5b43e056a005de5f4269f3430ecb19d3374f0e27d055022fbb381","typeString":"literal_string \"log(string,uint,address,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":8099,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"131920:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8100,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"131924:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"131920:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"131920:75:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8098,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"131904:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"131904:92:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8108,"nodeType":"ExpressionStatement","src":"131904:92:0"}]},"id":8110,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"131825:3:0","nodeType":"FunctionDefinition","parameters":{"id":8096,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8089,"mutability":"mutable","name":"p0","nameLocation":"131843:2:0","nodeType":"VariableDeclaration","scope":8110,"src":"131829:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8088,"name":"string","nodeType":"ElementaryTypeName","src":"131829:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8091,"mutability":"mutable","name":"p1","nameLocation":"131852:2:0","nodeType":"VariableDeclaration","scope":8110,"src":"131847:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8090,"name":"uint","nodeType":"ElementaryTypeName","src":"131847:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8093,"mutability":"mutable","name":"p2","nameLocation":"131864:2:0","nodeType":"VariableDeclaration","scope":8110,"src":"131856:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8092,"name":"address","nodeType":"ElementaryTypeName","src":"131856:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8095,"mutability":"mutable","name":"p3","nameLocation":"131876:2:0","nodeType":"VariableDeclaration","scope":8110,"src":"131868:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8094,"name":"address","nodeType":"ElementaryTypeName","src":"131868:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"131828:51:0"},"returnParameters":{"id":8097,"nodeType":"ParameterList","parameters":[],"src":"131894:0:0"},"scope":12159,"src":"131816:187:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8132,"nodeType":"Block","src":"132090:105:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c75696e742c75696e7429","id":8124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"132140:30:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_d5cf17d093c9068e0703e037cea1f6c3048599508dc7985106a94aa34c08c926","typeString":"literal_string \"log(string,string,uint,uint)\""},"value":"log(string,string,uint,uint)"},{"id":8125,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8112,"src":"132172:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8126,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8114,"src":"132176:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8127,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8116,"src":"132180:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8128,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8118,"src":"132184:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d5cf17d093c9068e0703e037cea1f6c3048599508dc7985106a94aa34c08c926","typeString":"literal_string \"log(string,string,uint,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8122,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"132116:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8123,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"132120:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"132116:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"132116:71:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8121,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"132100:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"132100:88:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8131,"nodeType":"ExpressionStatement","src":"132100:88:0"}]},"id":8133,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"132018:3:0","nodeType":"FunctionDefinition","parameters":{"id":8119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8112,"mutability":"mutable","name":"p0","nameLocation":"132036:2:0","nodeType":"VariableDeclaration","scope":8133,"src":"132022:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8111,"name":"string","nodeType":"ElementaryTypeName","src":"132022:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8114,"mutability":"mutable","name":"p1","nameLocation":"132054:2:0","nodeType":"VariableDeclaration","scope":8133,"src":"132040:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8113,"name":"string","nodeType":"ElementaryTypeName","src":"132040:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8116,"mutability":"mutable","name":"p2","nameLocation":"132063:2:0","nodeType":"VariableDeclaration","scope":8133,"src":"132058:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8115,"name":"uint","nodeType":"ElementaryTypeName","src":"132058:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8118,"mutability":"mutable","name":"p3","nameLocation":"132072:2:0","nodeType":"VariableDeclaration","scope":8133,"src":"132067:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8117,"name":"uint","nodeType":"ElementaryTypeName","src":"132067:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"132021:54:0"},"returnParameters":{"id":8120,"nodeType":"ParameterList","parameters":[],"src":"132090:0:0"},"scope":12159,"src":"132009:186:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8155,"nodeType":"Block","src":"132291:107:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c75696e742c737472696e6729","id":8147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"132341:32:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_8d142cdddf40ab944834474e14a37534e67dcf2f6ffd68fd3d894f907fb76a0a","typeString":"literal_string \"log(string,string,uint,string)\""},"value":"log(string,string,uint,string)"},{"id":8148,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8135,"src":"132375:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8149,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8137,"src":"132379:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8150,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8139,"src":"132383:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8151,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8141,"src":"132387:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8d142cdddf40ab944834474e14a37534e67dcf2f6ffd68fd3d894f907fb76a0a","typeString":"literal_string \"log(string,string,uint,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":8145,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"132317:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8146,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"132321:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"132317:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"132317:73:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8144,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"132301:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8153,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"132301:90:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8154,"nodeType":"ExpressionStatement","src":"132301:90:0"}]},"id":8156,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"132210:3:0","nodeType":"FunctionDefinition","parameters":{"id":8142,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8135,"mutability":"mutable","name":"p0","nameLocation":"132228:2:0","nodeType":"VariableDeclaration","scope":8156,"src":"132214:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8134,"name":"string","nodeType":"ElementaryTypeName","src":"132214:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8137,"mutability":"mutable","name":"p1","nameLocation":"132246:2:0","nodeType":"VariableDeclaration","scope":8156,"src":"132232:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8136,"name":"string","nodeType":"ElementaryTypeName","src":"132232:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8139,"mutability":"mutable","name":"p2","nameLocation":"132255:2:0","nodeType":"VariableDeclaration","scope":8156,"src":"132250:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8138,"name":"uint","nodeType":"ElementaryTypeName","src":"132250:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8141,"mutability":"mutable","name":"p3","nameLocation":"132273:2:0","nodeType":"VariableDeclaration","scope":8156,"src":"132259:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8140,"name":"string","nodeType":"ElementaryTypeName","src":"132259:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"132213:63:0"},"returnParameters":{"id":8143,"nodeType":"ParameterList","parameters":[],"src":"132291:0:0"},"scope":12159,"src":"132201:197:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8178,"nodeType":"Block","src":"132485:105:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c75696e742c626f6f6c29","id":8170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"132535:30:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e65658ca6578795ac405c3487ab68ec21d76f9a79d734a9ab869db5d96b4556b","typeString":"literal_string \"log(string,string,uint,bool)\""},"value":"log(string,string,uint,bool)"},{"id":8171,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8158,"src":"132567:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8172,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8160,"src":"132571:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8173,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8162,"src":"132575:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8174,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8164,"src":"132579:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e65658ca6578795ac405c3487ab68ec21d76f9a79d734a9ab869db5d96b4556b","typeString":"literal_string \"log(string,string,uint,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":8168,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"132511:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8169,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"132515:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"132511:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"132511:71:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8167,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"132495:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"132495:88:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8177,"nodeType":"ExpressionStatement","src":"132495:88:0"}]},"id":8179,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"132413:3:0","nodeType":"FunctionDefinition","parameters":{"id":8165,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8158,"mutability":"mutable","name":"p0","nameLocation":"132431:2:0","nodeType":"VariableDeclaration","scope":8179,"src":"132417:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8157,"name":"string","nodeType":"ElementaryTypeName","src":"132417:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8160,"mutability":"mutable","name":"p1","nameLocation":"132449:2:0","nodeType":"VariableDeclaration","scope":8179,"src":"132435:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8159,"name":"string","nodeType":"ElementaryTypeName","src":"132435:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8162,"mutability":"mutable","name":"p2","nameLocation":"132458:2:0","nodeType":"VariableDeclaration","scope":8179,"src":"132453:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8161,"name":"uint","nodeType":"ElementaryTypeName","src":"132453:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8164,"mutability":"mutable","name":"p3","nameLocation":"132467:2:0","nodeType":"VariableDeclaration","scope":8179,"src":"132462:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8163,"name":"bool","nodeType":"ElementaryTypeName","src":"132462:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"132416:54:0"},"returnParameters":{"id":8166,"nodeType":"ParameterList","parameters":[],"src":"132485:0:0"},"scope":12159,"src":"132404:186:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8201,"nodeType":"Block","src":"132680:108:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c75696e742c6164647265737329","id":8193,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"132730:33:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d4f46805293f3e84ba6dbfe353f76b3d1f1cfb2ff1e8024fb2adb45e2b7a128","typeString":"literal_string \"log(string,string,uint,address)\""},"value":"log(string,string,uint,address)"},{"id":8194,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8181,"src":"132765:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8195,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8183,"src":"132769:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8196,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8185,"src":"132773:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8197,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8187,"src":"132777:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5d4f46805293f3e84ba6dbfe353f76b3d1f1cfb2ff1e8024fb2adb45e2b7a128","typeString":"literal_string \"log(string,string,uint,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":8191,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"132706:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8192,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"132710:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"132706:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"132706:74:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8190,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"132690:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"132690:91:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8200,"nodeType":"ExpressionStatement","src":"132690:91:0"}]},"id":8202,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"132605:3:0","nodeType":"FunctionDefinition","parameters":{"id":8188,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8181,"mutability":"mutable","name":"p0","nameLocation":"132623:2:0","nodeType":"VariableDeclaration","scope":8202,"src":"132609:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8180,"name":"string","nodeType":"ElementaryTypeName","src":"132609:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8183,"mutability":"mutable","name":"p1","nameLocation":"132641:2:0","nodeType":"VariableDeclaration","scope":8202,"src":"132627:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8182,"name":"string","nodeType":"ElementaryTypeName","src":"132627:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8185,"mutability":"mutable","name":"p2","nameLocation":"132650:2:0","nodeType":"VariableDeclaration","scope":8202,"src":"132645:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8184,"name":"uint","nodeType":"ElementaryTypeName","src":"132645:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8187,"mutability":"mutable","name":"p3","nameLocation":"132662:2:0","nodeType":"VariableDeclaration","scope":8202,"src":"132654:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8186,"name":"address","nodeType":"ElementaryTypeName","src":"132654:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"132608:57:0"},"returnParameters":{"id":8189,"nodeType":"ParameterList","parameters":[],"src":"132680:0:0"},"scope":12159,"src":"132596:192:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8224,"nodeType":"Block","src":"132884:107:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c737472696e672c75696e7429","id":8216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"132934:32:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_9fd009f5f31a16d665d9be327a4a2b17dc428108ae31e46ab875e747b5ee155f","typeString":"literal_string \"log(string,string,string,uint)\""},"value":"log(string,string,string,uint)"},{"id":8217,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8204,"src":"132968:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8218,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8206,"src":"132972:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8219,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8208,"src":"132976:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8220,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8210,"src":"132980:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9fd009f5f31a16d665d9be327a4a2b17dc428108ae31e46ab875e747b5ee155f","typeString":"literal_string \"log(string,string,string,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8214,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"132910:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8215,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"132914:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"132910:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"132910:73:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8213,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"132894:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"132894:90:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8223,"nodeType":"ExpressionStatement","src":"132894:90:0"}]},"id":8225,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"132803:3:0","nodeType":"FunctionDefinition","parameters":{"id":8211,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8204,"mutability":"mutable","name":"p0","nameLocation":"132821:2:0","nodeType":"VariableDeclaration","scope":8225,"src":"132807:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8203,"name":"string","nodeType":"ElementaryTypeName","src":"132807:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8206,"mutability":"mutable","name":"p1","nameLocation":"132839:2:0","nodeType":"VariableDeclaration","scope":8225,"src":"132825:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8205,"name":"string","nodeType":"ElementaryTypeName","src":"132825:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8208,"mutability":"mutable","name":"p2","nameLocation":"132857:2:0","nodeType":"VariableDeclaration","scope":8225,"src":"132843:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8207,"name":"string","nodeType":"ElementaryTypeName","src":"132843:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8210,"mutability":"mutable","name":"p3","nameLocation":"132866:2:0","nodeType":"VariableDeclaration","scope":8225,"src":"132861:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8209,"name":"uint","nodeType":"ElementaryTypeName","src":"132861:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"132806:63:0"},"returnParameters":{"id":8212,"nodeType":"ParameterList","parameters":[],"src":"132884:0:0"},"scope":12159,"src":"132794:197:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8247,"nodeType":"Block","src":"133096:109:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c737472696e672c737472696e6729","id":8239,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"133146:34:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_de68f20a8e88f68d54c5aa294860ee37b58680632686e2f1101e4e042a2cbcbe","typeString":"literal_string \"log(string,string,string,string)\""},"value":"log(string,string,string,string)"},{"id":8240,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8227,"src":"133182:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8241,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8229,"src":"133186:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8242,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8231,"src":"133190:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8243,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8233,"src":"133194:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_de68f20a8e88f68d54c5aa294860ee37b58680632686e2f1101e4e042a2cbcbe","typeString":"literal_string \"log(string,string,string,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":8237,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"133122:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8238,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"133126:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"133122:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"133122:75:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8236,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"133106:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"133106:92:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8246,"nodeType":"ExpressionStatement","src":"133106:92:0"}]},"id":8248,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"133006:3:0","nodeType":"FunctionDefinition","parameters":{"id":8234,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8227,"mutability":"mutable","name":"p0","nameLocation":"133024:2:0","nodeType":"VariableDeclaration","scope":8248,"src":"133010:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8226,"name":"string","nodeType":"ElementaryTypeName","src":"133010:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8229,"mutability":"mutable","name":"p1","nameLocation":"133042:2:0","nodeType":"VariableDeclaration","scope":8248,"src":"133028:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8228,"name":"string","nodeType":"ElementaryTypeName","src":"133028:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8231,"mutability":"mutable","name":"p2","nameLocation":"133060:2:0","nodeType":"VariableDeclaration","scope":8248,"src":"133046:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8230,"name":"string","nodeType":"ElementaryTypeName","src":"133046:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8233,"mutability":"mutable","name":"p3","nameLocation":"133078:2:0","nodeType":"VariableDeclaration","scope":8248,"src":"133064:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8232,"name":"string","nodeType":"ElementaryTypeName","src":"133064:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"133009:72:0"},"returnParameters":{"id":8235,"nodeType":"ParameterList","parameters":[],"src":"133096:0:0"},"scope":12159,"src":"132997:208:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8270,"nodeType":"Block","src":"133301:107:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c737472696e672c626f6f6c29","id":8262,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"133351:32:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c1754ed9d3bc50669c3e71e3115dc4403f3cff35aa9b6b58799f80b5496f332","typeString":"literal_string \"log(string,string,string,bool)\""},"value":"log(string,string,string,bool)"},{"id":8263,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8250,"src":"133385:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8264,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8252,"src":"133389:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8265,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8254,"src":"133393:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8266,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8256,"src":"133397:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2c1754ed9d3bc50669c3e71e3115dc4403f3cff35aa9b6b58799f80b5496f332","typeString":"literal_string \"log(string,string,string,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":8260,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"133327:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8261,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"133331:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"133327:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"133327:73:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8259,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"133311:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"133311:90:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8269,"nodeType":"ExpressionStatement","src":"133311:90:0"}]},"id":8271,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"133220:3:0","nodeType":"FunctionDefinition","parameters":{"id":8257,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8250,"mutability":"mutable","name":"p0","nameLocation":"133238:2:0","nodeType":"VariableDeclaration","scope":8271,"src":"133224:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8249,"name":"string","nodeType":"ElementaryTypeName","src":"133224:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8252,"mutability":"mutable","name":"p1","nameLocation":"133256:2:0","nodeType":"VariableDeclaration","scope":8271,"src":"133242:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8251,"name":"string","nodeType":"ElementaryTypeName","src":"133242:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8254,"mutability":"mutable","name":"p2","nameLocation":"133274:2:0","nodeType":"VariableDeclaration","scope":8271,"src":"133260:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8253,"name":"string","nodeType":"ElementaryTypeName","src":"133260:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8256,"mutability":"mutable","name":"p3","nameLocation":"133283:2:0","nodeType":"VariableDeclaration","scope":8271,"src":"133278:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8255,"name":"bool","nodeType":"ElementaryTypeName","src":"133278:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"133223:63:0"},"returnParameters":{"id":8258,"nodeType":"ParameterList","parameters":[],"src":"133301:0:0"},"scope":12159,"src":"133211:197:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8293,"nodeType":"Block","src":"133507:110:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c737472696e672c6164647265737329","id":8285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"133557:35:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_6d572f449cf1e446ea3ace51a34ce30628f4f1588a39dc5d550cefb210c5bb16","typeString":"literal_string \"log(string,string,string,address)\""},"value":"log(string,string,string,address)"},{"id":8286,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8273,"src":"133594:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8287,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8275,"src":"133598:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8288,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8277,"src":"133602:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8289,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8279,"src":"133606:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6d572f449cf1e446ea3ace51a34ce30628f4f1588a39dc5d550cefb210c5bb16","typeString":"literal_string \"log(string,string,string,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":8283,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"133533:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8284,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"133537:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"133533:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"133533:76:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8282,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"133517:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"133517:93:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8292,"nodeType":"ExpressionStatement","src":"133517:93:0"}]},"id":8294,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"133423:3:0","nodeType":"FunctionDefinition","parameters":{"id":8280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8273,"mutability":"mutable","name":"p0","nameLocation":"133441:2:0","nodeType":"VariableDeclaration","scope":8294,"src":"133427:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8272,"name":"string","nodeType":"ElementaryTypeName","src":"133427:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8275,"mutability":"mutable","name":"p1","nameLocation":"133459:2:0","nodeType":"VariableDeclaration","scope":8294,"src":"133445:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8274,"name":"string","nodeType":"ElementaryTypeName","src":"133445:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8277,"mutability":"mutable","name":"p2","nameLocation":"133477:2:0","nodeType":"VariableDeclaration","scope":8294,"src":"133463:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8276,"name":"string","nodeType":"ElementaryTypeName","src":"133463:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8279,"mutability":"mutable","name":"p3","nameLocation":"133489:2:0","nodeType":"VariableDeclaration","scope":8294,"src":"133481:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8278,"name":"address","nodeType":"ElementaryTypeName","src":"133481:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"133426:66:0"},"returnParameters":{"id":8281,"nodeType":"ParameterList","parameters":[],"src":"133507:0:0"},"scope":12159,"src":"133414:203:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8316,"nodeType":"Block","src":"133704:105:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c626f6f6c2c75696e7429","id":8308,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"133754:30:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_86818a7aa9bc994aa800ce554e865f0047fd8aaa8799a458e8fea2db0986c5c1","typeString":"literal_string \"log(string,string,bool,uint)\""},"value":"log(string,string,bool,uint)"},{"id":8309,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8296,"src":"133786:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8310,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8298,"src":"133790:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8311,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8300,"src":"133794:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":8312,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8302,"src":"133798:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_86818a7aa9bc994aa800ce554e865f0047fd8aaa8799a458e8fea2db0986c5c1","typeString":"literal_string \"log(string,string,bool,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8306,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"133730:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8307,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"133734:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"133730:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"133730:71:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8305,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"133714:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"133714:88:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8315,"nodeType":"ExpressionStatement","src":"133714:88:0"}]},"id":8317,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"133632:3:0","nodeType":"FunctionDefinition","parameters":{"id":8303,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8296,"mutability":"mutable","name":"p0","nameLocation":"133650:2:0","nodeType":"VariableDeclaration","scope":8317,"src":"133636:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8295,"name":"string","nodeType":"ElementaryTypeName","src":"133636:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8298,"mutability":"mutable","name":"p1","nameLocation":"133668:2:0","nodeType":"VariableDeclaration","scope":8317,"src":"133654:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8297,"name":"string","nodeType":"ElementaryTypeName","src":"133654:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8300,"mutability":"mutable","name":"p2","nameLocation":"133677:2:0","nodeType":"VariableDeclaration","scope":8317,"src":"133672:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8299,"name":"bool","nodeType":"ElementaryTypeName","src":"133672:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8302,"mutability":"mutable","name":"p3","nameLocation":"133686:2:0","nodeType":"VariableDeclaration","scope":8317,"src":"133681:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8301,"name":"uint","nodeType":"ElementaryTypeName","src":"133681:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"133635:54:0"},"returnParameters":{"id":8304,"nodeType":"ParameterList","parameters":[],"src":"133704:0:0"},"scope":12159,"src":"133623:186:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8339,"nodeType":"Block","src":"133905:107:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c626f6f6c2c737472696e6729","id":8331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"133955:32:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_5e84b0ea51a130c3c7e1443097f28cb5c541ea8487836ae7cb1ca9c6e683699b","typeString":"literal_string \"log(string,string,bool,string)\""},"value":"log(string,string,bool,string)"},{"id":8332,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8319,"src":"133989:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8333,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8321,"src":"133993:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8334,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8323,"src":"133997:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":8335,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8325,"src":"134001:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5e84b0ea51a130c3c7e1443097f28cb5c541ea8487836ae7cb1ca9c6e683699b","typeString":"literal_string \"log(string,string,bool,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":8329,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"133931:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8330,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"133935:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"133931:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"133931:73:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8328,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"133915:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"133915:90:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8338,"nodeType":"ExpressionStatement","src":"133915:90:0"}]},"id":8340,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"133824:3:0","nodeType":"FunctionDefinition","parameters":{"id":8326,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8319,"mutability":"mutable","name":"p0","nameLocation":"133842:2:0","nodeType":"VariableDeclaration","scope":8340,"src":"133828:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8318,"name":"string","nodeType":"ElementaryTypeName","src":"133828:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8321,"mutability":"mutable","name":"p1","nameLocation":"133860:2:0","nodeType":"VariableDeclaration","scope":8340,"src":"133846:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8320,"name":"string","nodeType":"ElementaryTypeName","src":"133846:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8323,"mutability":"mutable","name":"p2","nameLocation":"133869:2:0","nodeType":"VariableDeclaration","scope":8340,"src":"133864:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8322,"name":"bool","nodeType":"ElementaryTypeName","src":"133864:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8325,"mutability":"mutable","name":"p3","nameLocation":"133887:2:0","nodeType":"VariableDeclaration","scope":8340,"src":"133873:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8324,"name":"string","nodeType":"ElementaryTypeName","src":"133873:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"133827:63:0"},"returnParameters":{"id":8327,"nodeType":"ParameterList","parameters":[],"src":"133905:0:0"},"scope":12159,"src":"133815:197:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8362,"nodeType":"Block","src":"134099:105:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c626f6f6c2c626f6f6c29","id":8354,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"134149:30:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_40785869c0ea63ca2ccbcf7415552989c2f1ce04f151eb3b2bd695c64d21af10","typeString":"literal_string \"log(string,string,bool,bool)\""},"value":"log(string,string,bool,bool)"},{"id":8355,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8342,"src":"134181:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8356,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8344,"src":"134185:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8357,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8346,"src":"134189:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":8358,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8348,"src":"134193:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_40785869c0ea63ca2ccbcf7415552989c2f1ce04f151eb3b2bd695c64d21af10","typeString":"literal_string \"log(string,string,bool,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":8352,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"134125:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8353,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"134129:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"134125:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"134125:71:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8351,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"134109:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"134109:88:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8361,"nodeType":"ExpressionStatement","src":"134109:88:0"}]},"id":8363,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"134027:3:0","nodeType":"FunctionDefinition","parameters":{"id":8349,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8342,"mutability":"mutable","name":"p0","nameLocation":"134045:2:0","nodeType":"VariableDeclaration","scope":8363,"src":"134031:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8341,"name":"string","nodeType":"ElementaryTypeName","src":"134031:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8344,"mutability":"mutable","name":"p1","nameLocation":"134063:2:0","nodeType":"VariableDeclaration","scope":8363,"src":"134049:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8343,"name":"string","nodeType":"ElementaryTypeName","src":"134049:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8346,"mutability":"mutable","name":"p2","nameLocation":"134072:2:0","nodeType":"VariableDeclaration","scope":8363,"src":"134067:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8345,"name":"bool","nodeType":"ElementaryTypeName","src":"134067:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8348,"mutability":"mutable","name":"p3","nameLocation":"134081:2:0","nodeType":"VariableDeclaration","scope":8363,"src":"134076:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8347,"name":"bool","nodeType":"ElementaryTypeName","src":"134076:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"134030:54:0"},"returnParameters":{"id":8350,"nodeType":"ParameterList","parameters":[],"src":"134099:0:0"},"scope":12159,"src":"134018:186:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8385,"nodeType":"Block","src":"134294:108:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c626f6f6c2c6164647265737329","id":8377,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"134344:33:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_c371c7db0a4b104babdbdf00d079eb75cb5aa1d401c4fb726c8e5559029df84d","typeString":"literal_string \"log(string,string,bool,address)\""},"value":"log(string,string,bool,address)"},{"id":8378,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8365,"src":"134379:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8379,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8367,"src":"134383:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8380,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8369,"src":"134387:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":8381,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8371,"src":"134391:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c371c7db0a4b104babdbdf00d079eb75cb5aa1d401c4fb726c8e5559029df84d","typeString":"literal_string \"log(string,string,bool,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":8375,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"134320:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8376,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"134324:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"134320:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"134320:74:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8374,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"134304:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"134304:91:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8384,"nodeType":"ExpressionStatement","src":"134304:91:0"}]},"id":8386,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"134219:3:0","nodeType":"FunctionDefinition","parameters":{"id":8372,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8365,"mutability":"mutable","name":"p0","nameLocation":"134237:2:0","nodeType":"VariableDeclaration","scope":8386,"src":"134223:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8364,"name":"string","nodeType":"ElementaryTypeName","src":"134223:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8367,"mutability":"mutable","name":"p1","nameLocation":"134255:2:0","nodeType":"VariableDeclaration","scope":8386,"src":"134241:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8366,"name":"string","nodeType":"ElementaryTypeName","src":"134241:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8369,"mutability":"mutable","name":"p2","nameLocation":"134264:2:0","nodeType":"VariableDeclaration","scope":8386,"src":"134259:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8368,"name":"bool","nodeType":"ElementaryTypeName","src":"134259:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8371,"mutability":"mutable","name":"p3","nameLocation":"134276:2:0","nodeType":"VariableDeclaration","scope":8386,"src":"134268:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8370,"name":"address","nodeType":"ElementaryTypeName","src":"134268:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"134222:57:0"},"returnParameters":{"id":8373,"nodeType":"ParameterList","parameters":[],"src":"134294:0:0"},"scope":12159,"src":"134210:192:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8408,"nodeType":"Block","src":"134492:108:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c616464726573732c75696e7429","id":8400,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"134542:33:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_4a81a56a33247069679e8b6a463a3b29deb4b1020ce6e03b978132074cad28c2","typeString":"literal_string \"log(string,string,address,uint)\""},"value":"log(string,string,address,uint)"},{"id":8401,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8388,"src":"134577:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8402,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8390,"src":"134581:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8403,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8392,"src":"134585:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8404,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8394,"src":"134589:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4a81a56a33247069679e8b6a463a3b29deb4b1020ce6e03b978132074cad28c2","typeString":"literal_string \"log(string,string,address,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8398,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"134518:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8399,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"134522:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"134518:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"134518:74:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8397,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"134502:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"134502:91:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8407,"nodeType":"ExpressionStatement","src":"134502:91:0"}]},"id":8409,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"134417:3:0","nodeType":"FunctionDefinition","parameters":{"id":8395,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8388,"mutability":"mutable","name":"p0","nameLocation":"134435:2:0","nodeType":"VariableDeclaration","scope":8409,"src":"134421:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8387,"name":"string","nodeType":"ElementaryTypeName","src":"134421:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8390,"mutability":"mutable","name":"p1","nameLocation":"134453:2:0","nodeType":"VariableDeclaration","scope":8409,"src":"134439:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8389,"name":"string","nodeType":"ElementaryTypeName","src":"134439:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8392,"mutability":"mutable","name":"p2","nameLocation":"134465:2:0","nodeType":"VariableDeclaration","scope":8409,"src":"134457:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8391,"name":"address","nodeType":"ElementaryTypeName","src":"134457:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8394,"mutability":"mutable","name":"p3","nameLocation":"134474:2:0","nodeType":"VariableDeclaration","scope":8409,"src":"134469:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8393,"name":"uint","nodeType":"ElementaryTypeName","src":"134469:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"134420:57:0"},"returnParameters":{"id":8396,"nodeType":"ParameterList","parameters":[],"src":"134492:0:0"},"scope":12159,"src":"134408:192:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8431,"nodeType":"Block","src":"134699:110:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c616464726573732c737472696e6729","id":8423,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"134749:35:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb1bff805ef136c60bfed230c7b932a14c6f7a62608edeaf56f8f2c0575d25b6","typeString":"literal_string \"log(string,string,address,string)\""},"value":"log(string,string,address,string)"},{"id":8424,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8411,"src":"134786:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8425,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8413,"src":"134790:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8426,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8415,"src":"134794:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8427,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8417,"src":"134798:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_eb1bff805ef136c60bfed230c7b932a14c6f7a62608edeaf56f8f2c0575d25b6","typeString":"literal_string \"log(string,string,address,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":8421,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"134725:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8422,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"134729:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"134725:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"134725:76:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8420,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"134709:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"134709:93:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8430,"nodeType":"ExpressionStatement","src":"134709:93:0"}]},"id":8432,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"134615:3:0","nodeType":"FunctionDefinition","parameters":{"id":8418,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8411,"mutability":"mutable","name":"p0","nameLocation":"134633:2:0","nodeType":"VariableDeclaration","scope":8432,"src":"134619:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8410,"name":"string","nodeType":"ElementaryTypeName","src":"134619:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8413,"mutability":"mutable","name":"p1","nameLocation":"134651:2:0","nodeType":"VariableDeclaration","scope":8432,"src":"134637:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8412,"name":"string","nodeType":"ElementaryTypeName","src":"134637:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8415,"mutability":"mutable","name":"p2","nameLocation":"134663:2:0","nodeType":"VariableDeclaration","scope":8432,"src":"134655:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8414,"name":"address","nodeType":"ElementaryTypeName","src":"134655:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8417,"mutability":"mutable","name":"p3","nameLocation":"134681:2:0","nodeType":"VariableDeclaration","scope":8432,"src":"134667:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8416,"name":"string","nodeType":"ElementaryTypeName","src":"134667:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"134618:66:0"},"returnParameters":{"id":8419,"nodeType":"ParameterList","parameters":[],"src":"134699:0:0"},"scope":12159,"src":"134606:203:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8454,"nodeType":"Block","src":"134899:108:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c616464726573732c626f6f6c29","id":8446,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"134949:33:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ccd4e373eb6ae26626c8607ae861c55cda5fd321363edde7e6328e09072ba63","typeString":"literal_string \"log(string,string,address,bool)\""},"value":"log(string,string,address,bool)"},{"id":8447,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8434,"src":"134984:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8448,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8436,"src":"134988:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8449,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8438,"src":"134992:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8450,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8440,"src":"134996:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5ccd4e373eb6ae26626c8607ae861c55cda5fd321363edde7e6328e09072ba63","typeString":"literal_string \"log(string,string,address,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":8444,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"134925:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8445,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"134929:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"134925:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"134925:74:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8443,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"134909:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"134909:91:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8453,"nodeType":"ExpressionStatement","src":"134909:91:0"}]},"id":8455,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"134824:3:0","nodeType":"FunctionDefinition","parameters":{"id":8441,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8434,"mutability":"mutable","name":"p0","nameLocation":"134842:2:0","nodeType":"VariableDeclaration","scope":8455,"src":"134828:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8433,"name":"string","nodeType":"ElementaryTypeName","src":"134828:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8436,"mutability":"mutable","name":"p1","nameLocation":"134860:2:0","nodeType":"VariableDeclaration","scope":8455,"src":"134846:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8435,"name":"string","nodeType":"ElementaryTypeName","src":"134846:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8438,"mutability":"mutable","name":"p2","nameLocation":"134872:2:0","nodeType":"VariableDeclaration","scope":8455,"src":"134864:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8437,"name":"address","nodeType":"ElementaryTypeName","src":"134864:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8440,"mutability":"mutable","name":"p3","nameLocation":"134881:2:0","nodeType":"VariableDeclaration","scope":8455,"src":"134876:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8439,"name":"bool","nodeType":"ElementaryTypeName","src":"134876:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"134827:57:0"},"returnParameters":{"id":8442,"nodeType":"ParameterList","parameters":[],"src":"134899:0:0"},"scope":12159,"src":"134815:192:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8477,"nodeType":"Block","src":"135100:111:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c616464726573732c6164647265737329","id":8469,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"135150:36:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_439c7befd1b6bfcb9bd001c1f3a991ef43c070f0ace0c190dd9f16d7ae338a5d","typeString":"literal_string \"log(string,string,address,address)\""},"value":"log(string,string,address,address)"},{"id":8470,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8457,"src":"135188:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8471,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8459,"src":"135192:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8472,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8461,"src":"135196:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8473,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8463,"src":"135200:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_439c7befd1b6bfcb9bd001c1f3a991ef43c070f0ace0c190dd9f16d7ae338a5d","typeString":"literal_string \"log(string,string,address,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":8467,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"135126:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8468,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"135130:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"135126:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"135126:77:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8466,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"135110:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"135110:94:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8476,"nodeType":"ExpressionStatement","src":"135110:94:0"}]},"id":8478,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"135022:3:0","nodeType":"FunctionDefinition","parameters":{"id":8464,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8457,"mutability":"mutable","name":"p0","nameLocation":"135040:2:0","nodeType":"VariableDeclaration","scope":8478,"src":"135026:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8456,"name":"string","nodeType":"ElementaryTypeName","src":"135026:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8459,"mutability":"mutable","name":"p1","nameLocation":"135058:2:0","nodeType":"VariableDeclaration","scope":8478,"src":"135044:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8458,"name":"string","nodeType":"ElementaryTypeName","src":"135044:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8461,"mutability":"mutable","name":"p2","nameLocation":"135070:2:0","nodeType":"VariableDeclaration","scope":8478,"src":"135062:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8460,"name":"address","nodeType":"ElementaryTypeName","src":"135062:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8463,"mutability":"mutable","name":"p3","nameLocation":"135082:2:0","nodeType":"VariableDeclaration","scope":8478,"src":"135074:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8462,"name":"address","nodeType":"ElementaryTypeName","src":"135074:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"135025:60:0"},"returnParameters":{"id":8465,"nodeType":"ParameterList","parameters":[],"src":"135100:0:0"},"scope":12159,"src":"135013:198:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8500,"nodeType":"Block","src":"135289:103:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c75696e742c75696e7429","id":8492,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"135339:28:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_5dbff038873b5f716761e9dcaab0713a903ceaebb2ba8c30b199c4dc534f7701","typeString":"literal_string \"log(string,bool,uint,uint)\""},"value":"log(string,bool,uint,uint)"},{"id":8493,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8480,"src":"135369:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8494,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8482,"src":"135373:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":8495,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8484,"src":"135377:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8496,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8486,"src":"135381:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5dbff038873b5f716761e9dcaab0713a903ceaebb2ba8c30b199c4dc534f7701","typeString":"literal_string \"log(string,bool,uint,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8490,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"135315:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8491,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"135319:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"135315:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"135315:69:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8489,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"135299:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"135299:86:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8499,"nodeType":"ExpressionStatement","src":"135299:86:0"}]},"id":8501,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"135226:3:0","nodeType":"FunctionDefinition","parameters":{"id":8487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8480,"mutability":"mutable","name":"p0","nameLocation":"135244:2:0","nodeType":"VariableDeclaration","scope":8501,"src":"135230:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8479,"name":"string","nodeType":"ElementaryTypeName","src":"135230:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8482,"mutability":"mutable","name":"p1","nameLocation":"135253:2:0","nodeType":"VariableDeclaration","scope":8501,"src":"135248:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8481,"name":"bool","nodeType":"ElementaryTypeName","src":"135248:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8484,"mutability":"mutable","name":"p2","nameLocation":"135262:2:0","nodeType":"VariableDeclaration","scope":8501,"src":"135257:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8483,"name":"uint","nodeType":"ElementaryTypeName","src":"135257:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8486,"mutability":"mutable","name":"p3","nameLocation":"135271:2:0","nodeType":"VariableDeclaration","scope":8501,"src":"135266:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8485,"name":"uint","nodeType":"ElementaryTypeName","src":"135266:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"135229:45:0"},"returnParameters":{"id":8488,"nodeType":"ParameterList","parameters":[],"src":"135289:0:0"},"scope":12159,"src":"135217:175:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8523,"nodeType":"Block","src":"135479:105:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c75696e742c737472696e6729","id":8515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"135529:30:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_42b9a2274d0e9ab9211da679bc79f433c4055060036260a350e95cf10b9004ee","typeString":"literal_string \"log(string,bool,uint,string)\""},"value":"log(string,bool,uint,string)"},{"id":8516,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8503,"src":"135561:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8517,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8505,"src":"135565:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":8518,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8507,"src":"135569:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8519,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8509,"src":"135573:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_42b9a2274d0e9ab9211da679bc79f433c4055060036260a350e95cf10b9004ee","typeString":"literal_string \"log(string,bool,uint,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":8513,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"135505:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8514,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"135509:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"135505:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8520,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"135505:71:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8512,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"135489:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"135489:88:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8522,"nodeType":"ExpressionStatement","src":"135489:88:0"}]},"id":8524,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"135407:3:0","nodeType":"FunctionDefinition","parameters":{"id":8510,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8503,"mutability":"mutable","name":"p0","nameLocation":"135425:2:0","nodeType":"VariableDeclaration","scope":8524,"src":"135411:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8502,"name":"string","nodeType":"ElementaryTypeName","src":"135411:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8505,"mutability":"mutable","name":"p1","nameLocation":"135434:2:0","nodeType":"VariableDeclaration","scope":8524,"src":"135429:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8504,"name":"bool","nodeType":"ElementaryTypeName","src":"135429:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8507,"mutability":"mutable","name":"p2","nameLocation":"135443:2:0","nodeType":"VariableDeclaration","scope":8524,"src":"135438:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8506,"name":"uint","nodeType":"ElementaryTypeName","src":"135438:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8509,"mutability":"mutable","name":"p3","nameLocation":"135461:2:0","nodeType":"VariableDeclaration","scope":8524,"src":"135447:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8508,"name":"string","nodeType":"ElementaryTypeName","src":"135447:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"135410:54:0"},"returnParameters":{"id":8511,"nodeType":"ParameterList","parameters":[],"src":"135479:0:0"},"scope":12159,"src":"135398:186:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8546,"nodeType":"Block","src":"135662:103:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c75696e742c626f6f6c29","id":8538,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"135712:28:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_3cc5b5d38fa67d61ad4f760e2dab344ea54d36d39a7b72ff747c1e117e2289bb","typeString":"literal_string \"log(string,bool,uint,bool)\""},"value":"log(string,bool,uint,bool)"},{"id":8539,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8526,"src":"135742:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8540,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8528,"src":"135746:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":8541,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8530,"src":"135750:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8542,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8532,"src":"135754:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3cc5b5d38fa67d61ad4f760e2dab344ea54d36d39a7b72ff747c1e117e2289bb","typeString":"literal_string \"log(string,bool,uint,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":8536,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"135688:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8537,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"135692:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"135688:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"135688:69:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8535,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"135672:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"135672:86:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8545,"nodeType":"ExpressionStatement","src":"135672:86:0"}]},"id":8547,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"135599:3:0","nodeType":"FunctionDefinition","parameters":{"id":8533,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8526,"mutability":"mutable","name":"p0","nameLocation":"135617:2:0","nodeType":"VariableDeclaration","scope":8547,"src":"135603:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8525,"name":"string","nodeType":"ElementaryTypeName","src":"135603:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8528,"mutability":"mutable","name":"p1","nameLocation":"135626:2:0","nodeType":"VariableDeclaration","scope":8547,"src":"135621:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8527,"name":"bool","nodeType":"ElementaryTypeName","src":"135621:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8530,"mutability":"mutable","name":"p2","nameLocation":"135635:2:0","nodeType":"VariableDeclaration","scope":8547,"src":"135630:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8529,"name":"uint","nodeType":"ElementaryTypeName","src":"135630:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8532,"mutability":"mutable","name":"p3","nameLocation":"135644:2:0","nodeType":"VariableDeclaration","scope":8547,"src":"135639:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8531,"name":"bool","nodeType":"ElementaryTypeName","src":"135639:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"135602:45:0"},"returnParameters":{"id":8534,"nodeType":"ParameterList","parameters":[],"src":"135662:0:0"},"scope":12159,"src":"135590:175:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8569,"nodeType":"Block","src":"135846:106:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c75696e742c6164647265737329","id":8561,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"135896:31:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_71d3850da171f493bcf1bd9faa0694f71484214d8459bca427251a9ad3e9bbd6","typeString":"literal_string \"log(string,bool,uint,address)\""},"value":"log(string,bool,uint,address)"},{"id":8562,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8549,"src":"135929:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8563,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8551,"src":"135933:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":8564,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8553,"src":"135937:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8565,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8555,"src":"135941:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_71d3850da171f493bcf1bd9faa0694f71484214d8459bca427251a9ad3e9bbd6","typeString":"literal_string \"log(string,bool,uint,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":8559,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"135872:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8560,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"135876:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"135872:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"135872:72:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8558,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"135856:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"135856:89:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8568,"nodeType":"ExpressionStatement","src":"135856:89:0"}]},"id":8570,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"135780:3:0","nodeType":"FunctionDefinition","parameters":{"id":8556,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8549,"mutability":"mutable","name":"p0","nameLocation":"135798:2:0","nodeType":"VariableDeclaration","scope":8570,"src":"135784:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8548,"name":"string","nodeType":"ElementaryTypeName","src":"135784:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8551,"mutability":"mutable","name":"p1","nameLocation":"135807:2:0","nodeType":"VariableDeclaration","scope":8570,"src":"135802:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8550,"name":"bool","nodeType":"ElementaryTypeName","src":"135802:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8553,"mutability":"mutable","name":"p2","nameLocation":"135816:2:0","nodeType":"VariableDeclaration","scope":8570,"src":"135811:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8552,"name":"uint","nodeType":"ElementaryTypeName","src":"135811:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8555,"mutability":"mutable","name":"p3","nameLocation":"135828:2:0","nodeType":"VariableDeclaration","scope":8570,"src":"135820:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8554,"name":"address","nodeType":"ElementaryTypeName","src":"135820:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"135783:48:0"},"returnParameters":{"id":8557,"nodeType":"ParameterList","parameters":[],"src":"135846:0:0"},"scope":12159,"src":"135771:181:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8592,"nodeType":"Block","src":"136039:105:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c737472696e672c75696e7429","id":8584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"136089:30:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_34cb308d42fc37e3a239bcd0d717cf3713a336733737bee1d82ac9061e969d72","typeString":"literal_string \"log(string,bool,string,uint)\""},"value":"log(string,bool,string,uint)"},{"id":8585,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8572,"src":"136121:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8586,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8574,"src":"136125:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":8587,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8576,"src":"136129:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8588,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8578,"src":"136133:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_34cb308d42fc37e3a239bcd0d717cf3713a336733737bee1d82ac9061e969d72","typeString":"literal_string \"log(string,bool,string,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8582,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"136065:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8583,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"136069:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"136065:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"136065:71:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8581,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"136049:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"136049:88:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8591,"nodeType":"ExpressionStatement","src":"136049:88:0"}]},"id":8593,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"135967:3:0","nodeType":"FunctionDefinition","parameters":{"id":8579,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8572,"mutability":"mutable","name":"p0","nameLocation":"135985:2:0","nodeType":"VariableDeclaration","scope":8593,"src":"135971:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8571,"name":"string","nodeType":"ElementaryTypeName","src":"135971:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8574,"mutability":"mutable","name":"p1","nameLocation":"135994:2:0","nodeType":"VariableDeclaration","scope":8593,"src":"135989:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8573,"name":"bool","nodeType":"ElementaryTypeName","src":"135989:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8576,"mutability":"mutable","name":"p2","nameLocation":"136012:2:0","nodeType":"VariableDeclaration","scope":8593,"src":"135998:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8575,"name":"string","nodeType":"ElementaryTypeName","src":"135998:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8578,"mutability":"mutable","name":"p3","nameLocation":"136021:2:0","nodeType":"VariableDeclaration","scope":8593,"src":"136016:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8577,"name":"uint","nodeType":"ElementaryTypeName","src":"136016:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"135970:54:0"},"returnParameters":{"id":8580,"nodeType":"ParameterList","parameters":[],"src":"136039:0:0"},"scope":12159,"src":"135958:186:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8615,"nodeType":"Block","src":"136240:107:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c737472696e672c737472696e6729","id":8607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"136290:32:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_a826caebc65f4a71211c1c7fd8dc9bdd856d7ef7dbeef42d8af156e9f73bc47d","typeString":"literal_string \"log(string,bool,string,string)\""},"value":"log(string,bool,string,string)"},{"id":8608,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8595,"src":"136324:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8609,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8597,"src":"136328:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":8610,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8599,"src":"136332:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8611,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8601,"src":"136336:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a826caebc65f4a71211c1c7fd8dc9bdd856d7ef7dbeef42d8af156e9f73bc47d","typeString":"literal_string \"log(string,bool,string,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":8605,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"136266:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8606,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"136270:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"136266:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"136266:73:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8604,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"136250:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"136250:90:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8614,"nodeType":"ExpressionStatement","src":"136250:90:0"}]},"id":8616,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"136159:3:0","nodeType":"FunctionDefinition","parameters":{"id":8602,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8595,"mutability":"mutable","name":"p0","nameLocation":"136177:2:0","nodeType":"VariableDeclaration","scope":8616,"src":"136163:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8594,"name":"string","nodeType":"ElementaryTypeName","src":"136163:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8597,"mutability":"mutable","name":"p1","nameLocation":"136186:2:0","nodeType":"VariableDeclaration","scope":8616,"src":"136181:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8596,"name":"bool","nodeType":"ElementaryTypeName","src":"136181:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8599,"mutability":"mutable","name":"p2","nameLocation":"136204:2:0","nodeType":"VariableDeclaration","scope":8616,"src":"136190:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8598,"name":"string","nodeType":"ElementaryTypeName","src":"136190:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8601,"mutability":"mutable","name":"p3","nameLocation":"136222:2:0","nodeType":"VariableDeclaration","scope":8616,"src":"136208:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8600,"name":"string","nodeType":"ElementaryTypeName","src":"136208:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"136162:63:0"},"returnParameters":{"id":8603,"nodeType":"ParameterList","parameters":[],"src":"136240:0:0"},"scope":12159,"src":"136150:197:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8638,"nodeType":"Block","src":"136434:105:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c737472696e672c626f6f6c29","id":8630,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"136484:30:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_3f8a701d00386d6ad9c7b7a930805b985bcbbe108e894a7d5cb9493e87e57e8b","typeString":"literal_string \"log(string,bool,string,bool)\""},"value":"log(string,bool,string,bool)"},{"id":8631,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8618,"src":"136516:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8632,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8620,"src":"136520:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":8633,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8622,"src":"136524:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8634,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8624,"src":"136528:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3f8a701d00386d6ad9c7b7a930805b985bcbbe108e894a7d5cb9493e87e57e8b","typeString":"literal_string \"log(string,bool,string,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":8628,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"136460:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8629,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"136464:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"136460:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"136460:71:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8627,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"136444:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"136444:88:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8637,"nodeType":"ExpressionStatement","src":"136444:88:0"}]},"id":8639,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"136362:3:0","nodeType":"FunctionDefinition","parameters":{"id":8625,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8618,"mutability":"mutable","name":"p0","nameLocation":"136380:2:0","nodeType":"VariableDeclaration","scope":8639,"src":"136366:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8617,"name":"string","nodeType":"ElementaryTypeName","src":"136366:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8620,"mutability":"mutable","name":"p1","nameLocation":"136389:2:0","nodeType":"VariableDeclaration","scope":8639,"src":"136384:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8619,"name":"bool","nodeType":"ElementaryTypeName","src":"136384:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8622,"mutability":"mutable","name":"p2","nameLocation":"136407:2:0","nodeType":"VariableDeclaration","scope":8639,"src":"136393:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8621,"name":"string","nodeType":"ElementaryTypeName","src":"136393:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8624,"mutability":"mutable","name":"p3","nameLocation":"136416:2:0","nodeType":"VariableDeclaration","scope":8639,"src":"136411:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8623,"name":"bool","nodeType":"ElementaryTypeName","src":"136411:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"136365:54:0"},"returnParameters":{"id":8626,"nodeType":"ParameterList","parameters":[],"src":"136434:0:0"},"scope":12159,"src":"136353:186:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8661,"nodeType":"Block","src":"136629:108:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c737472696e672c6164647265737329","id":8653,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"136679:33:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e0625b292fa5cbc865b55f61713cbbe0ce7abb244ec2df45291ea19c30ddfaf8","typeString":"literal_string \"log(string,bool,string,address)\""},"value":"log(string,bool,string,address)"},{"id":8654,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8641,"src":"136714:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8655,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8643,"src":"136718:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":8656,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8645,"src":"136722:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8657,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8647,"src":"136726:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e0625b292fa5cbc865b55f61713cbbe0ce7abb244ec2df45291ea19c30ddfaf8","typeString":"literal_string \"log(string,bool,string,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":8651,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"136655:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8652,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"136659:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"136655:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"136655:74:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8650,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"136639:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"136639:91:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8660,"nodeType":"ExpressionStatement","src":"136639:91:0"}]},"id":8662,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"136554:3:0","nodeType":"FunctionDefinition","parameters":{"id":8648,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8641,"mutability":"mutable","name":"p0","nameLocation":"136572:2:0","nodeType":"VariableDeclaration","scope":8662,"src":"136558:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8640,"name":"string","nodeType":"ElementaryTypeName","src":"136558:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8643,"mutability":"mutable","name":"p1","nameLocation":"136581:2:0","nodeType":"VariableDeclaration","scope":8662,"src":"136576:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8642,"name":"bool","nodeType":"ElementaryTypeName","src":"136576:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8645,"mutability":"mutable","name":"p2","nameLocation":"136599:2:0","nodeType":"VariableDeclaration","scope":8662,"src":"136585:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8644,"name":"string","nodeType":"ElementaryTypeName","src":"136585:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8647,"mutability":"mutable","name":"p3","nameLocation":"136611:2:0","nodeType":"VariableDeclaration","scope":8662,"src":"136603:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8646,"name":"address","nodeType":"ElementaryTypeName","src":"136603:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"136557:57:0"},"returnParameters":{"id":8649,"nodeType":"ParameterList","parameters":[],"src":"136629:0:0"},"scope":12159,"src":"136545:192:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8684,"nodeType":"Block","src":"136815:103:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c626f6f6c2c75696e7429","id":8676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"136865:28:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_807531e8eafdd7a15a803e586dd9a01b2aa8ae2cdd52f093775c0dcb0c977edf","typeString":"literal_string \"log(string,bool,bool,uint)\""},"value":"log(string,bool,bool,uint)"},{"id":8677,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8664,"src":"136895:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8678,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8666,"src":"136899:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":8679,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8668,"src":"136903:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":8680,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8670,"src":"136907:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_807531e8eafdd7a15a803e586dd9a01b2aa8ae2cdd52f093775c0dcb0c977edf","typeString":"literal_string \"log(string,bool,bool,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8674,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"136841:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8675,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"136845:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"136841:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"136841:69:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8673,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"136825:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"136825:86:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8683,"nodeType":"ExpressionStatement","src":"136825:86:0"}]},"id":8685,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"136752:3:0","nodeType":"FunctionDefinition","parameters":{"id":8671,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8664,"mutability":"mutable","name":"p0","nameLocation":"136770:2:0","nodeType":"VariableDeclaration","scope":8685,"src":"136756:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8663,"name":"string","nodeType":"ElementaryTypeName","src":"136756:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8666,"mutability":"mutable","name":"p1","nameLocation":"136779:2:0","nodeType":"VariableDeclaration","scope":8685,"src":"136774:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8665,"name":"bool","nodeType":"ElementaryTypeName","src":"136774:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8668,"mutability":"mutable","name":"p2","nameLocation":"136788:2:0","nodeType":"VariableDeclaration","scope":8685,"src":"136783:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8667,"name":"bool","nodeType":"ElementaryTypeName","src":"136783:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8670,"mutability":"mutable","name":"p3","nameLocation":"136797:2:0","nodeType":"VariableDeclaration","scope":8685,"src":"136792:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8669,"name":"uint","nodeType":"ElementaryTypeName","src":"136792:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"136755:45:0"},"returnParameters":{"id":8672,"nodeType":"ParameterList","parameters":[],"src":"136815:0:0"},"scope":12159,"src":"136743:175:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8707,"nodeType":"Block","src":"137005:105:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c626f6f6c2c737472696e6729","id":8699,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"137055:30:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_9d22d5dd5fa6b44920526f32944af8a0b12651bcfe7d5e4d9330573146eaf058","typeString":"literal_string \"log(string,bool,bool,string)\""},"value":"log(string,bool,bool,string)"},{"id":8700,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8687,"src":"137087:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8701,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8689,"src":"137091:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":8702,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8691,"src":"137095:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":8703,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8693,"src":"137099:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9d22d5dd5fa6b44920526f32944af8a0b12651bcfe7d5e4d9330573146eaf058","typeString":"literal_string \"log(string,bool,bool,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":8697,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"137031:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8698,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"137035:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"137031:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"137031:71:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8696,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"137015:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"137015:88:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8706,"nodeType":"ExpressionStatement","src":"137015:88:0"}]},"id":8708,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"136933:3:0","nodeType":"FunctionDefinition","parameters":{"id":8694,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8687,"mutability":"mutable","name":"p0","nameLocation":"136951:2:0","nodeType":"VariableDeclaration","scope":8708,"src":"136937:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8686,"name":"string","nodeType":"ElementaryTypeName","src":"136937:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8689,"mutability":"mutable","name":"p1","nameLocation":"136960:2:0","nodeType":"VariableDeclaration","scope":8708,"src":"136955:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8688,"name":"bool","nodeType":"ElementaryTypeName","src":"136955:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8691,"mutability":"mutable","name":"p2","nameLocation":"136969:2:0","nodeType":"VariableDeclaration","scope":8708,"src":"136964:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8690,"name":"bool","nodeType":"ElementaryTypeName","src":"136964:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8693,"mutability":"mutable","name":"p3","nameLocation":"136987:2:0","nodeType":"VariableDeclaration","scope":8708,"src":"136973:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8692,"name":"string","nodeType":"ElementaryTypeName","src":"136973:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"136936:54:0"},"returnParameters":{"id":8695,"nodeType":"ParameterList","parameters":[],"src":"137005:0:0"},"scope":12159,"src":"136924:186:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8730,"nodeType":"Block","src":"137188:103:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c626f6f6c2c626f6f6c29","id":8722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"137238:28:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_895af8c5b50078ceec3119054e20583155eeb3e1a8f56b8ed56efbec57456ad2","typeString":"literal_string \"log(string,bool,bool,bool)\""},"value":"log(string,bool,bool,bool)"},{"id":8723,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8710,"src":"137268:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8724,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8712,"src":"137272:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":8725,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8714,"src":"137276:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":8726,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8716,"src":"137280:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_895af8c5b50078ceec3119054e20583155eeb3e1a8f56b8ed56efbec57456ad2","typeString":"literal_string \"log(string,bool,bool,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":8720,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"137214:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8721,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"137218:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"137214:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"137214:69:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8719,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"137198:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"137198:86:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8729,"nodeType":"ExpressionStatement","src":"137198:86:0"}]},"id":8731,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"137125:3:0","nodeType":"FunctionDefinition","parameters":{"id":8717,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8710,"mutability":"mutable","name":"p0","nameLocation":"137143:2:0","nodeType":"VariableDeclaration","scope":8731,"src":"137129:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8709,"name":"string","nodeType":"ElementaryTypeName","src":"137129:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8712,"mutability":"mutable","name":"p1","nameLocation":"137152:2:0","nodeType":"VariableDeclaration","scope":8731,"src":"137147:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8711,"name":"bool","nodeType":"ElementaryTypeName","src":"137147:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8714,"mutability":"mutable","name":"p2","nameLocation":"137161:2:0","nodeType":"VariableDeclaration","scope":8731,"src":"137156:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8713,"name":"bool","nodeType":"ElementaryTypeName","src":"137156:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8716,"mutability":"mutable","name":"p3","nameLocation":"137170:2:0","nodeType":"VariableDeclaration","scope":8731,"src":"137165:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8715,"name":"bool","nodeType":"ElementaryTypeName","src":"137165:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"137128:45:0"},"returnParameters":{"id":8718,"nodeType":"ParameterList","parameters":[],"src":"137188:0:0"},"scope":12159,"src":"137116:175:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8753,"nodeType":"Block","src":"137372:106:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c626f6f6c2c6164647265737329","id":8745,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"137422:31:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_7190a529624f3e9168945b9053b9648f6439313f31cad0801b50f9dc38a45d4d","typeString":"literal_string \"log(string,bool,bool,address)\""},"value":"log(string,bool,bool,address)"},{"id":8746,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8733,"src":"137455:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8747,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8735,"src":"137459:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":8748,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8737,"src":"137463:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":8749,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8739,"src":"137467:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7190a529624f3e9168945b9053b9648f6439313f31cad0801b50f9dc38a45d4d","typeString":"literal_string \"log(string,bool,bool,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":8743,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"137398:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8744,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"137402:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"137398:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"137398:72:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8742,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"137382:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"137382:89:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8752,"nodeType":"ExpressionStatement","src":"137382:89:0"}]},"id":8754,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"137306:3:0","nodeType":"FunctionDefinition","parameters":{"id":8740,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8733,"mutability":"mutable","name":"p0","nameLocation":"137324:2:0","nodeType":"VariableDeclaration","scope":8754,"src":"137310:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8732,"name":"string","nodeType":"ElementaryTypeName","src":"137310:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8735,"mutability":"mutable","name":"p1","nameLocation":"137333:2:0","nodeType":"VariableDeclaration","scope":8754,"src":"137328:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8734,"name":"bool","nodeType":"ElementaryTypeName","src":"137328:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8737,"mutability":"mutable","name":"p2","nameLocation":"137342:2:0","nodeType":"VariableDeclaration","scope":8754,"src":"137337:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8736,"name":"bool","nodeType":"ElementaryTypeName","src":"137337:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8739,"mutability":"mutable","name":"p3","nameLocation":"137354:2:0","nodeType":"VariableDeclaration","scope":8754,"src":"137346:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8738,"name":"address","nodeType":"ElementaryTypeName","src":"137346:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"137309:48:0"},"returnParameters":{"id":8741,"nodeType":"ParameterList","parameters":[],"src":"137372:0:0"},"scope":12159,"src":"137297:181:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8776,"nodeType":"Block","src":"137559:106:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c616464726573732c75696e7429","id":8768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"137609:31:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_28df4e96d50017c69e64253ea877c992512b689fb9fed17cf6af78f104f1200b","typeString":"literal_string \"log(string,bool,address,uint)\""},"value":"log(string,bool,address,uint)"},{"id":8769,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8756,"src":"137642:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8770,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8758,"src":"137646:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":8771,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8760,"src":"137650:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8772,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8762,"src":"137654:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_28df4e96d50017c69e64253ea877c992512b689fb9fed17cf6af78f104f1200b","typeString":"literal_string \"log(string,bool,address,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8766,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"137585:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8767,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"137589:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"137585:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"137585:72:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8765,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"137569:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"137569:89:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8775,"nodeType":"ExpressionStatement","src":"137569:89:0"}]},"id":8777,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"137493:3:0","nodeType":"FunctionDefinition","parameters":{"id":8763,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8756,"mutability":"mutable","name":"p0","nameLocation":"137511:2:0","nodeType":"VariableDeclaration","scope":8777,"src":"137497:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8755,"name":"string","nodeType":"ElementaryTypeName","src":"137497:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8758,"mutability":"mutable","name":"p1","nameLocation":"137520:2:0","nodeType":"VariableDeclaration","scope":8777,"src":"137515:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8757,"name":"bool","nodeType":"ElementaryTypeName","src":"137515:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8760,"mutability":"mutable","name":"p2","nameLocation":"137532:2:0","nodeType":"VariableDeclaration","scope":8777,"src":"137524:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8759,"name":"address","nodeType":"ElementaryTypeName","src":"137524:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8762,"mutability":"mutable","name":"p3","nameLocation":"137541:2:0","nodeType":"VariableDeclaration","scope":8777,"src":"137536:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8761,"name":"uint","nodeType":"ElementaryTypeName","src":"137536:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"137496:48:0"},"returnParameters":{"id":8764,"nodeType":"ParameterList","parameters":[],"src":"137559:0:0"},"scope":12159,"src":"137484:181:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8799,"nodeType":"Block","src":"137755:108:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c616464726573732c737472696e6729","id":8791,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"137805:33:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_2d8e33a4e52268aad313274a8446eec6f40466a28da2456a8f12d83b298c13ef","typeString":"literal_string \"log(string,bool,address,string)\""},"value":"log(string,bool,address,string)"},{"id":8792,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8779,"src":"137840:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8793,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8781,"src":"137844:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":8794,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8783,"src":"137848:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8795,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8785,"src":"137852:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2d8e33a4e52268aad313274a8446eec6f40466a28da2456a8f12d83b298c13ef","typeString":"literal_string \"log(string,bool,address,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":8789,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"137781:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8790,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"137785:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"137781:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"137781:74:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8788,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"137765:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"137765:91:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8798,"nodeType":"ExpressionStatement","src":"137765:91:0"}]},"id":8800,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"137680:3:0","nodeType":"FunctionDefinition","parameters":{"id":8786,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8779,"mutability":"mutable","name":"p0","nameLocation":"137698:2:0","nodeType":"VariableDeclaration","scope":8800,"src":"137684:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8778,"name":"string","nodeType":"ElementaryTypeName","src":"137684:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8781,"mutability":"mutable","name":"p1","nameLocation":"137707:2:0","nodeType":"VariableDeclaration","scope":8800,"src":"137702:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8780,"name":"bool","nodeType":"ElementaryTypeName","src":"137702:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8783,"mutability":"mutable","name":"p2","nameLocation":"137719:2:0","nodeType":"VariableDeclaration","scope":8800,"src":"137711:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8782,"name":"address","nodeType":"ElementaryTypeName","src":"137711:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8785,"mutability":"mutable","name":"p3","nameLocation":"137737:2:0","nodeType":"VariableDeclaration","scope":8800,"src":"137723:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8784,"name":"string","nodeType":"ElementaryTypeName","src":"137723:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"137683:57:0"},"returnParameters":{"id":8787,"nodeType":"ParameterList","parameters":[],"src":"137755:0:0"},"scope":12159,"src":"137671:192:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8822,"nodeType":"Block","src":"137944:106:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c616464726573732c626f6f6c29","id":8814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"137994:31:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_958c28c6e7bd79de7ce7f6f112cbcb194d9e383764dfb947492ee1374ff5c482","typeString":"literal_string \"log(string,bool,address,bool)\""},"value":"log(string,bool,address,bool)"},{"id":8815,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8802,"src":"138027:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8816,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8804,"src":"138031:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":8817,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8806,"src":"138035:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8818,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8808,"src":"138039:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_958c28c6e7bd79de7ce7f6f112cbcb194d9e383764dfb947492ee1374ff5c482","typeString":"literal_string \"log(string,bool,address,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":8812,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"137970:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8813,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"137974:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"137970:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"137970:72:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8811,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"137954:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"137954:89:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8821,"nodeType":"ExpressionStatement","src":"137954:89:0"}]},"id":8823,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"137878:3:0","nodeType":"FunctionDefinition","parameters":{"id":8809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8802,"mutability":"mutable","name":"p0","nameLocation":"137896:2:0","nodeType":"VariableDeclaration","scope":8823,"src":"137882:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8801,"name":"string","nodeType":"ElementaryTypeName","src":"137882:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8804,"mutability":"mutable","name":"p1","nameLocation":"137905:2:0","nodeType":"VariableDeclaration","scope":8823,"src":"137900:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8803,"name":"bool","nodeType":"ElementaryTypeName","src":"137900:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8806,"mutability":"mutable","name":"p2","nameLocation":"137917:2:0","nodeType":"VariableDeclaration","scope":8823,"src":"137909:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8805,"name":"address","nodeType":"ElementaryTypeName","src":"137909:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8808,"mutability":"mutable","name":"p3","nameLocation":"137926:2:0","nodeType":"VariableDeclaration","scope":8823,"src":"137921:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8807,"name":"bool","nodeType":"ElementaryTypeName","src":"137921:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"137881:48:0"},"returnParameters":{"id":8810,"nodeType":"ParameterList","parameters":[],"src":"137944:0:0"},"scope":12159,"src":"137869:181:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8845,"nodeType":"Block","src":"138134:109:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c616464726573732c6164647265737329","id":8837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"138184:34:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_33e9dd1deb33816160eb59d86987de501b214bedbbe3c70103eff4092834b53d","typeString":"literal_string \"log(string,bool,address,address)\""},"value":"log(string,bool,address,address)"},{"id":8838,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8825,"src":"138220:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8839,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8827,"src":"138224:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":8840,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8829,"src":"138228:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8841,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8831,"src":"138232:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_33e9dd1deb33816160eb59d86987de501b214bedbbe3c70103eff4092834b53d","typeString":"literal_string \"log(string,bool,address,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":8835,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"138160:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8836,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"138164:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"138160:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"138160:75:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8834,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"138144:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"138144:92:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8844,"nodeType":"ExpressionStatement","src":"138144:92:0"}]},"id":8846,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"138065:3:0","nodeType":"FunctionDefinition","parameters":{"id":8832,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8825,"mutability":"mutable","name":"p0","nameLocation":"138083:2:0","nodeType":"VariableDeclaration","scope":8846,"src":"138069:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8824,"name":"string","nodeType":"ElementaryTypeName","src":"138069:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8827,"mutability":"mutable","name":"p1","nameLocation":"138092:2:0","nodeType":"VariableDeclaration","scope":8846,"src":"138087:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8826,"name":"bool","nodeType":"ElementaryTypeName","src":"138087:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8829,"mutability":"mutable","name":"p2","nameLocation":"138104:2:0","nodeType":"VariableDeclaration","scope":8846,"src":"138096:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8828,"name":"address","nodeType":"ElementaryTypeName","src":"138096:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8831,"mutability":"mutable","name":"p3","nameLocation":"138116:2:0","nodeType":"VariableDeclaration","scope":8846,"src":"138108:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8830,"name":"address","nodeType":"ElementaryTypeName","src":"138108:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"138068:51:0"},"returnParameters":{"id":8833,"nodeType":"ParameterList","parameters":[],"src":"138134:0:0"},"scope":12159,"src":"138056:187:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8868,"nodeType":"Block","src":"138324:106:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c75696e742c75696e7429","id":8860,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"138374:31:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_daa394bd4914eaece965f4173c7699746dff411e470b03385f052bd7b13f1bd3","typeString":"literal_string \"log(string,address,uint,uint)\""},"value":"log(string,address,uint,uint)"},{"id":8861,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8848,"src":"138407:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8862,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8850,"src":"138411:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8863,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8852,"src":"138415:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8864,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8854,"src":"138419:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_daa394bd4914eaece965f4173c7699746dff411e470b03385f052bd7b13f1bd3","typeString":"literal_string \"log(string,address,uint,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8858,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"138350:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8859,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"138354:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"138350:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"138350:72:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8857,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"138334:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"138334:89:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8867,"nodeType":"ExpressionStatement","src":"138334:89:0"}]},"id":8869,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"138258:3:0","nodeType":"FunctionDefinition","parameters":{"id":8855,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8848,"mutability":"mutable","name":"p0","nameLocation":"138276:2:0","nodeType":"VariableDeclaration","scope":8869,"src":"138262:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8847,"name":"string","nodeType":"ElementaryTypeName","src":"138262:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8850,"mutability":"mutable","name":"p1","nameLocation":"138288:2:0","nodeType":"VariableDeclaration","scope":8869,"src":"138280:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8849,"name":"address","nodeType":"ElementaryTypeName","src":"138280:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8852,"mutability":"mutable","name":"p2","nameLocation":"138297:2:0","nodeType":"VariableDeclaration","scope":8869,"src":"138292:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8851,"name":"uint","nodeType":"ElementaryTypeName","src":"138292:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8854,"mutability":"mutable","name":"p3","nameLocation":"138306:2:0","nodeType":"VariableDeclaration","scope":8869,"src":"138301:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8853,"name":"uint","nodeType":"ElementaryTypeName","src":"138301:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"138261:48:0"},"returnParameters":{"id":8856,"nodeType":"ParameterList","parameters":[],"src":"138324:0:0"},"scope":12159,"src":"138249:181:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8891,"nodeType":"Block","src":"138520:108:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c75696e742c737472696e6729","id":8883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"138570:33:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_4c55f234d048f08e770926729ee5d8a9c70d6b9a607ce037165c7e0f36155a98","typeString":"literal_string \"log(string,address,uint,string)\""},"value":"log(string,address,uint,string)"},{"id":8884,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8871,"src":"138605:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8885,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8873,"src":"138609:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8886,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8875,"src":"138613:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8887,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8877,"src":"138617:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4c55f234d048f08e770926729ee5d8a9c70d6b9a607ce037165c7e0f36155a98","typeString":"literal_string \"log(string,address,uint,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":8881,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"138546:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8882,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"138550:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"138546:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"138546:74:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8880,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"138530:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"138530:91:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8890,"nodeType":"ExpressionStatement","src":"138530:91:0"}]},"id":8892,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"138445:3:0","nodeType":"FunctionDefinition","parameters":{"id":8878,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8871,"mutability":"mutable","name":"p0","nameLocation":"138463:2:0","nodeType":"VariableDeclaration","scope":8892,"src":"138449:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8870,"name":"string","nodeType":"ElementaryTypeName","src":"138449:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8873,"mutability":"mutable","name":"p1","nameLocation":"138475:2:0","nodeType":"VariableDeclaration","scope":8892,"src":"138467:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8872,"name":"address","nodeType":"ElementaryTypeName","src":"138467:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8875,"mutability":"mutable","name":"p2","nameLocation":"138484:2:0","nodeType":"VariableDeclaration","scope":8892,"src":"138479:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8874,"name":"uint","nodeType":"ElementaryTypeName","src":"138479:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8877,"mutability":"mutable","name":"p3","nameLocation":"138502:2:0","nodeType":"VariableDeclaration","scope":8892,"src":"138488:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8876,"name":"string","nodeType":"ElementaryTypeName","src":"138488:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"138448:57:0"},"returnParameters":{"id":8879,"nodeType":"ParameterList","parameters":[],"src":"138520:0:0"},"scope":12159,"src":"138436:192:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8914,"nodeType":"Block","src":"138709:106:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c75696e742c626f6f6c29","id":8906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"138759:31:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ac1c13c91f65a91284d9d77ba7484e75b0a3dd9b57a01fd497babb7d6ebc554","typeString":"literal_string \"log(string,address,uint,bool)\""},"value":"log(string,address,uint,bool)"},{"id":8907,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8894,"src":"138792:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8908,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8896,"src":"138796:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8909,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8898,"src":"138800:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8910,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8900,"src":"138804:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5ac1c13c91f65a91284d9d77ba7484e75b0a3dd9b57a01fd497babb7d6ebc554","typeString":"literal_string \"log(string,address,uint,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":8904,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"138735:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8905,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"138739:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"138735:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"138735:72:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8903,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"138719:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"138719:89:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8913,"nodeType":"ExpressionStatement","src":"138719:89:0"}]},"id":8915,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"138643:3:0","nodeType":"FunctionDefinition","parameters":{"id":8901,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8894,"mutability":"mutable","name":"p0","nameLocation":"138661:2:0","nodeType":"VariableDeclaration","scope":8915,"src":"138647:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8893,"name":"string","nodeType":"ElementaryTypeName","src":"138647:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8896,"mutability":"mutable","name":"p1","nameLocation":"138673:2:0","nodeType":"VariableDeclaration","scope":8915,"src":"138665:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8895,"name":"address","nodeType":"ElementaryTypeName","src":"138665:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8898,"mutability":"mutable","name":"p2","nameLocation":"138682:2:0","nodeType":"VariableDeclaration","scope":8915,"src":"138677:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8897,"name":"uint","nodeType":"ElementaryTypeName","src":"138677:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8900,"mutability":"mutable","name":"p3","nameLocation":"138691:2:0","nodeType":"VariableDeclaration","scope":8915,"src":"138686:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8899,"name":"bool","nodeType":"ElementaryTypeName","src":"138686:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"138646:48:0"},"returnParameters":{"id":8902,"nodeType":"ParameterList","parameters":[],"src":"138709:0:0"},"scope":12159,"src":"138634:181:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8937,"nodeType":"Block","src":"138899:109:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c75696e742c6164647265737329","id":8929,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"138949:34:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_a366ec808c8af1aa091e8102642939a99436cf04d3dfac2ae23c299404f821b2","typeString":"literal_string \"log(string,address,uint,address)\""},"value":"log(string,address,uint,address)"},{"id":8930,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8917,"src":"138985:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8931,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8919,"src":"138989:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8932,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8921,"src":"138993:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8933,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8923,"src":"138997:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a366ec808c8af1aa091e8102642939a99436cf04d3dfac2ae23c299404f821b2","typeString":"literal_string \"log(string,address,uint,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":8927,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"138925:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8928,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"138929:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"138925:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"138925:75:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8926,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"138909:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"138909:92:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8936,"nodeType":"ExpressionStatement","src":"138909:92:0"}]},"id":8938,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"138830:3:0","nodeType":"FunctionDefinition","parameters":{"id":8924,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8917,"mutability":"mutable","name":"p0","nameLocation":"138848:2:0","nodeType":"VariableDeclaration","scope":8938,"src":"138834:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8916,"name":"string","nodeType":"ElementaryTypeName","src":"138834:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8919,"mutability":"mutable","name":"p1","nameLocation":"138860:2:0","nodeType":"VariableDeclaration","scope":8938,"src":"138852:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8918,"name":"address","nodeType":"ElementaryTypeName","src":"138852:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8921,"mutability":"mutable","name":"p2","nameLocation":"138869:2:0","nodeType":"VariableDeclaration","scope":8938,"src":"138864:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8920,"name":"uint","nodeType":"ElementaryTypeName","src":"138864:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8923,"mutability":"mutable","name":"p3","nameLocation":"138881:2:0","nodeType":"VariableDeclaration","scope":8938,"src":"138873:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8922,"name":"address","nodeType":"ElementaryTypeName","src":"138873:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"138833:51:0"},"returnParameters":{"id":8925,"nodeType":"ParameterList","parameters":[],"src":"138899:0:0"},"scope":12159,"src":"138821:187:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8960,"nodeType":"Block","src":"139098:108:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c737472696e672c75696e7429","id":8952,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"139148:33:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_8f624be9ea3983abac9c65ced8f562a492ebb84e6f74cd40f35387eff4d66349","typeString":"literal_string \"log(string,address,string,uint)\""},"value":"log(string,address,string,uint)"},{"id":8953,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8940,"src":"139183:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8954,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8942,"src":"139187:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8955,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8944,"src":"139191:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8956,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8946,"src":"139195:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8f624be9ea3983abac9c65ced8f562a492ebb84e6f74cd40f35387eff4d66349","typeString":"literal_string \"log(string,address,string,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8950,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"139124:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8951,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"139128:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"139124:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"139124:74:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8949,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"139108:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"139108:91:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8959,"nodeType":"ExpressionStatement","src":"139108:91:0"}]},"id":8961,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"139023:3:0","nodeType":"FunctionDefinition","parameters":{"id":8947,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8940,"mutability":"mutable","name":"p0","nameLocation":"139041:2:0","nodeType":"VariableDeclaration","scope":8961,"src":"139027:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8939,"name":"string","nodeType":"ElementaryTypeName","src":"139027:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8942,"mutability":"mutable","name":"p1","nameLocation":"139053:2:0","nodeType":"VariableDeclaration","scope":8961,"src":"139045:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8941,"name":"address","nodeType":"ElementaryTypeName","src":"139045:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8944,"mutability":"mutable","name":"p2","nameLocation":"139071:2:0","nodeType":"VariableDeclaration","scope":8961,"src":"139057:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8943,"name":"string","nodeType":"ElementaryTypeName","src":"139057:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8946,"mutability":"mutable","name":"p3","nameLocation":"139080:2:0","nodeType":"VariableDeclaration","scope":8961,"src":"139075:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8945,"name":"uint","nodeType":"ElementaryTypeName","src":"139075:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"139026:57:0"},"returnParameters":{"id":8948,"nodeType":"ParameterList","parameters":[],"src":"139098:0:0"},"scope":12159,"src":"139014:192:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8983,"nodeType":"Block","src":"139305:110:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c737472696e672c737472696e6729","id":8975,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"139355:35:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_245986f22170901865e76245a48ee28ce0127ca357f6ad576a72190e1d358797","typeString":"literal_string \"log(string,address,string,string)\""},"value":"log(string,address,string,string)"},{"id":8976,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8963,"src":"139392:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8977,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8965,"src":"139396:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8978,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8967,"src":"139400:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8979,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8969,"src":"139404:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_245986f22170901865e76245a48ee28ce0127ca357f6ad576a72190e1d358797","typeString":"literal_string \"log(string,address,string,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":8973,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"139331:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8974,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"139335:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"139331:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"139331:76:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8972,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"139315:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"139315:93:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8982,"nodeType":"ExpressionStatement","src":"139315:93:0"}]},"id":8984,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"139221:3:0","nodeType":"FunctionDefinition","parameters":{"id":8970,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8963,"mutability":"mutable","name":"p0","nameLocation":"139239:2:0","nodeType":"VariableDeclaration","scope":8984,"src":"139225:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8962,"name":"string","nodeType":"ElementaryTypeName","src":"139225:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8965,"mutability":"mutable","name":"p1","nameLocation":"139251:2:0","nodeType":"VariableDeclaration","scope":8984,"src":"139243:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8964,"name":"address","nodeType":"ElementaryTypeName","src":"139243:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8967,"mutability":"mutable","name":"p2","nameLocation":"139269:2:0","nodeType":"VariableDeclaration","scope":8984,"src":"139255:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8966,"name":"string","nodeType":"ElementaryTypeName","src":"139255:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8969,"mutability":"mutable","name":"p3","nameLocation":"139287:2:0","nodeType":"VariableDeclaration","scope":8984,"src":"139273:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8968,"name":"string","nodeType":"ElementaryTypeName","src":"139273:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"139224:66:0"},"returnParameters":{"id":8971,"nodeType":"ParameterList","parameters":[],"src":"139305:0:0"},"scope":12159,"src":"139212:203:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9006,"nodeType":"Block","src":"139505:108:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c737472696e672c626f6f6c29","id":8998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"139555:33:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_5f15d28c15ddff15fba1c00f6a4975ae6af8b36c9b2a875bf59bd45049046154","typeString":"literal_string \"log(string,address,string,bool)\""},"value":"log(string,address,string,bool)"},{"id":8999,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8986,"src":"139590:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9000,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8988,"src":"139594:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9001,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8990,"src":"139598:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9002,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8992,"src":"139602:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5f15d28c15ddff15fba1c00f6a4975ae6af8b36c9b2a875bf59bd45049046154","typeString":"literal_string \"log(string,address,string,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":8996,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"139531:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8997,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"139535:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"139531:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9003,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"139531:74:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8995,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"139515:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"139515:91:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9005,"nodeType":"ExpressionStatement","src":"139515:91:0"}]},"id":9007,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"139430:3:0","nodeType":"FunctionDefinition","parameters":{"id":8993,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8986,"mutability":"mutable","name":"p0","nameLocation":"139448:2:0","nodeType":"VariableDeclaration","scope":9007,"src":"139434:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8985,"name":"string","nodeType":"ElementaryTypeName","src":"139434:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8988,"mutability":"mutable","name":"p1","nameLocation":"139460:2:0","nodeType":"VariableDeclaration","scope":9007,"src":"139452:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8987,"name":"address","nodeType":"ElementaryTypeName","src":"139452:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8990,"mutability":"mutable","name":"p2","nameLocation":"139478:2:0","nodeType":"VariableDeclaration","scope":9007,"src":"139464:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8989,"name":"string","nodeType":"ElementaryTypeName","src":"139464:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8992,"mutability":"mutable","name":"p3","nameLocation":"139487:2:0","nodeType":"VariableDeclaration","scope":9007,"src":"139482:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8991,"name":"bool","nodeType":"ElementaryTypeName","src":"139482:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"139433:57:0"},"returnParameters":{"id":8994,"nodeType":"ParameterList","parameters":[],"src":"139505:0:0"},"scope":12159,"src":"139421:192:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9029,"nodeType":"Block","src":"139706:111:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c737472696e672c6164647265737329","id":9021,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"139756:36:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_aabc9a311ab49789834b120d81155a7fee846a9f0d4f740bbeb970770190c82d","typeString":"literal_string \"log(string,address,string,address)\""},"value":"log(string,address,string,address)"},{"id":9022,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9009,"src":"139794:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9023,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9011,"src":"139798:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9024,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9013,"src":"139802:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9025,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9015,"src":"139806:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_aabc9a311ab49789834b120d81155a7fee846a9f0d4f740bbeb970770190c82d","typeString":"literal_string \"log(string,address,string,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9019,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"139732:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9020,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"139736:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"139732:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"139732:77:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9018,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"139716:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"139716:94:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9028,"nodeType":"ExpressionStatement","src":"139716:94:0"}]},"id":9030,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"139628:3:0","nodeType":"FunctionDefinition","parameters":{"id":9016,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9009,"mutability":"mutable","name":"p0","nameLocation":"139646:2:0","nodeType":"VariableDeclaration","scope":9030,"src":"139632:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9008,"name":"string","nodeType":"ElementaryTypeName","src":"139632:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9011,"mutability":"mutable","name":"p1","nameLocation":"139658:2:0","nodeType":"VariableDeclaration","scope":9030,"src":"139650:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9010,"name":"address","nodeType":"ElementaryTypeName","src":"139650:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9013,"mutability":"mutable","name":"p2","nameLocation":"139676:2:0","nodeType":"VariableDeclaration","scope":9030,"src":"139662:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9012,"name":"string","nodeType":"ElementaryTypeName","src":"139662:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9015,"mutability":"mutable","name":"p3","nameLocation":"139688:2:0","nodeType":"VariableDeclaration","scope":9030,"src":"139680:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9014,"name":"address","nodeType":"ElementaryTypeName","src":"139680:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"139631:60:0"},"returnParameters":{"id":9017,"nodeType":"ParameterList","parameters":[],"src":"139706:0:0"},"scope":12159,"src":"139619:198:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9052,"nodeType":"Block","src":"139898:106:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c626f6f6c2c75696e7429","id":9044,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"139948:31:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d1bb8ba57e795e9925065473f653a381a99be37bdcfbeaf49f38097f35af7f","typeString":"literal_string \"log(string,address,bool,uint)\""},"value":"log(string,address,bool,uint)"},{"id":9045,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9032,"src":"139981:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9046,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9034,"src":"139985:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9047,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9036,"src":"139989:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9048,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9038,"src":"139993:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d1bb8ba57e795e9925065473f653a381a99be37bdcfbeaf49f38097f35af7f","typeString":"literal_string \"log(string,address,bool,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9042,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"139924:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9043,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"139928:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"139924:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"139924:72:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9041,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"139908:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"139908:89:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9051,"nodeType":"ExpressionStatement","src":"139908:89:0"}]},"id":9053,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"139832:3:0","nodeType":"FunctionDefinition","parameters":{"id":9039,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9032,"mutability":"mutable","name":"p0","nameLocation":"139850:2:0","nodeType":"VariableDeclaration","scope":9053,"src":"139836:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9031,"name":"string","nodeType":"ElementaryTypeName","src":"139836:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9034,"mutability":"mutable","name":"p1","nameLocation":"139862:2:0","nodeType":"VariableDeclaration","scope":9053,"src":"139854:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9033,"name":"address","nodeType":"ElementaryTypeName","src":"139854:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9036,"mutability":"mutable","name":"p2","nameLocation":"139871:2:0","nodeType":"VariableDeclaration","scope":9053,"src":"139866:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9035,"name":"bool","nodeType":"ElementaryTypeName","src":"139866:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9038,"mutability":"mutable","name":"p3","nameLocation":"139880:2:0","nodeType":"VariableDeclaration","scope":9053,"src":"139875:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9037,"name":"uint","nodeType":"ElementaryTypeName","src":"139875:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"139835:48:0"},"returnParameters":{"id":9040,"nodeType":"ParameterList","parameters":[],"src":"139898:0:0"},"scope":12159,"src":"139823:181:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9075,"nodeType":"Block","src":"140094:108:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c626f6f6c2c737472696e6729","id":9067,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"140144:33:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_0454c0793d4a41e5f630eb9a887926f8a67ff9e817a5feb968698354ac9d22fb","typeString":"literal_string \"log(string,address,bool,string)\""},"value":"log(string,address,bool,string)"},{"id":9068,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9055,"src":"140179:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9069,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9057,"src":"140183:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9070,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9059,"src":"140187:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9071,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9061,"src":"140191:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0454c0793d4a41e5f630eb9a887926f8a67ff9e817a5feb968698354ac9d22fb","typeString":"literal_string \"log(string,address,bool,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":9065,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"140120:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9066,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"140124:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"140120:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"140120:74:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9064,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"140104:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"140104:91:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9074,"nodeType":"ExpressionStatement","src":"140104:91:0"}]},"id":9076,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"140019:3:0","nodeType":"FunctionDefinition","parameters":{"id":9062,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9055,"mutability":"mutable","name":"p0","nameLocation":"140037:2:0","nodeType":"VariableDeclaration","scope":9076,"src":"140023:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9054,"name":"string","nodeType":"ElementaryTypeName","src":"140023:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9057,"mutability":"mutable","name":"p1","nameLocation":"140049:2:0","nodeType":"VariableDeclaration","scope":9076,"src":"140041:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9056,"name":"address","nodeType":"ElementaryTypeName","src":"140041:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9059,"mutability":"mutable","name":"p2","nameLocation":"140058:2:0","nodeType":"VariableDeclaration","scope":9076,"src":"140053:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9058,"name":"bool","nodeType":"ElementaryTypeName","src":"140053:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9061,"mutability":"mutable","name":"p3","nameLocation":"140076:2:0","nodeType":"VariableDeclaration","scope":9076,"src":"140062:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9060,"name":"string","nodeType":"ElementaryTypeName","src":"140062:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"140022:57:0"},"returnParameters":{"id":9063,"nodeType":"ParameterList","parameters":[],"src":"140094:0:0"},"scope":12159,"src":"140010:192:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9098,"nodeType":"Block","src":"140283:106:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c626f6f6c2c626f6f6c29","id":9090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"140333:31:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_79884c2bc85eb73c854df1610df373a05f191b834f79cd47a7ab28be2308c039","typeString":"literal_string \"log(string,address,bool,bool)\""},"value":"log(string,address,bool,bool)"},{"id":9091,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9078,"src":"140366:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9092,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9080,"src":"140370:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9093,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9082,"src":"140374:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9094,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9084,"src":"140378:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_79884c2bc85eb73c854df1610df373a05f191b834f79cd47a7ab28be2308c039","typeString":"literal_string \"log(string,address,bool,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":9088,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"140309:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9089,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"140313:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"140309:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"140309:72:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9087,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"140293:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"140293:89:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9097,"nodeType":"ExpressionStatement","src":"140293:89:0"}]},"id":9099,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"140217:3:0","nodeType":"FunctionDefinition","parameters":{"id":9085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9078,"mutability":"mutable","name":"p0","nameLocation":"140235:2:0","nodeType":"VariableDeclaration","scope":9099,"src":"140221:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9077,"name":"string","nodeType":"ElementaryTypeName","src":"140221:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9080,"mutability":"mutable","name":"p1","nameLocation":"140247:2:0","nodeType":"VariableDeclaration","scope":9099,"src":"140239:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9079,"name":"address","nodeType":"ElementaryTypeName","src":"140239:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9082,"mutability":"mutable","name":"p2","nameLocation":"140256:2:0","nodeType":"VariableDeclaration","scope":9099,"src":"140251:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9081,"name":"bool","nodeType":"ElementaryTypeName","src":"140251:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9084,"mutability":"mutable","name":"p3","nameLocation":"140265:2:0","nodeType":"VariableDeclaration","scope":9099,"src":"140260:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9083,"name":"bool","nodeType":"ElementaryTypeName","src":"140260:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"140220:48:0"},"returnParameters":{"id":9086,"nodeType":"ParameterList","parameters":[],"src":"140283:0:0"},"scope":12159,"src":"140208:181:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9121,"nodeType":"Block","src":"140473:109:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c626f6f6c2c6164647265737329","id":9113,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"140523:34:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_223603bd064d72559a7d519ad0f1c6a8da707a49f5718dfa23a5ccb01bf9ab76","typeString":"literal_string \"log(string,address,bool,address)\""},"value":"log(string,address,bool,address)"},{"id":9114,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9101,"src":"140559:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9115,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9103,"src":"140563:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9116,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9105,"src":"140567:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9117,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9107,"src":"140571:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_223603bd064d72559a7d519ad0f1c6a8da707a49f5718dfa23a5ccb01bf9ab76","typeString":"literal_string \"log(string,address,bool,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9111,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"140499:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9112,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"140503:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"140499:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"140499:75:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9110,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"140483:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"140483:92:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9120,"nodeType":"ExpressionStatement","src":"140483:92:0"}]},"id":9122,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"140404:3:0","nodeType":"FunctionDefinition","parameters":{"id":9108,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9101,"mutability":"mutable","name":"p0","nameLocation":"140422:2:0","nodeType":"VariableDeclaration","scope":9122,"src":"140408:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9100,"name":"string","nodeType":"ElementaryTypeName","src":"140408:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9103,"mutability":"mutable","name":"p1","nameLocation":"140434:2:0","nodeType":"VariableDeclaration","scope":9122,"src":"140426:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9102,"name":"address","nodeType":"ElementaryTypeName","src":"140426:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9105,"mutability":"mutable","name":"p2","nameLocation":"140443:2:0","nodeType":"VariableDeclaration","scope":9122,"src":"140438:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9104,"name":"bool","nodeType":"ElementaryTypeName","src":"140438:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9107,"mutability":"mutable","name":"p3","nameLocation":"140455:2:0","nodeType":"VariableDeclaration","scope":9122,"src":"140447:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9106,"name":"address","nodeType":"ElementaryTypeName","src":"140447:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"140407:51:0"},"returnParameters":{"id":9109,"nodeType":"ParameterList","parameters":[],"src":"140473:0:0"},"scope":12159,"src":"140395:187:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9144,"nodeType":"Block","src":"140666:109:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c616464726573732c75696e7429","id":9136,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"140716:34:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_6eb7943d4272e495e7f5cdeb25ef89b9c3c1042d5c1e0e6e11a8fdc842ff5e02","typeString":"literal_string \"log(string,address,address,uint)\""},"value":"log(string,address,address,uint)"},{"id":9137,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9124,"src":"140752:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9138,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9126,"src":"140756:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9139,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9128,"src":"140760:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9140,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9130,"src":"140764:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6eb7943d4272e495e7f5cdeb25ef89b9c3c1042d5c1e0e6e11a8fdc842ff5e02","typeString":"literal_string \"log(string,address,address,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9134,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"140692:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9135,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"140696:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"140692:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"140692:75:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9133,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"140676:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"140676:92:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9143,"nodeType":"ExpressionStatement","src":"140676:92:0"}]},"id":9145,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"140597:3:0","nodeType":"FunctionDefinition","parameters":{"id":9131,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9124,"mutability":"mutable","name":"p0","nameLocation":"140615:2:0","nodeType":"VariableDeclaration","scope":9145,"src":"140601:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9123,"name":"string","nodeType":"ElementaryTypeName","src":"140601:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9126,"mutability":"mutable","name":"p1","nameLocation":"140627:2:0","nodeType":"VariableDeclaration","scope":9145,"src":"140619:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9125,"name":"address","nodeType":"ElementaryTypeName","src":"140619:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9128,"mutability":"mutable","name":"p2","nameLocation":"140639:2:0","nodeType":"VariableDeclaration","scope":9145,"src":"140631:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9127,"name":"address","nodeType":"ElementaryTypeName","src":"140631:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9130,"mutability":"mutable","name":"p3","nameLocation":"140648:2:0","nodeType":"VariableDeclaration","scope":9145,"src":"140643:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9129,"name":"uint","nodeType":"ElementaryTypeName","src":"140643:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"140600:51:0"},"returnParameters":{"id":9132,"nodeType":"ParameterList","parameters":[],"src":"140666:0:0"},"scope":12159,"src":"140588:187:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9167,"nodeType":"Block","src":"140868:111:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c616464726573732c737472696e6729","id":9159,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"140918:36:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_800a1c6756a402b6162ca8653fd8e87e2c52d1c019c876e92eb2980479636a76","typeString":"literal_string \"log(string,address,address,string)\""},"value":"log(string,address,address,string)"},{"id":9160,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9147,"src":"140956:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9161,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9149,"src":"140960:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9162,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9151,"src":"140964:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9163,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9153,"src":"140968:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_800a1c6756a402b6162ca8653fd8e87e2c52d1c019c876e92eb2980479636a76","typeString":"literal_string \"log(string,address,address,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":9157,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"140894:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9158,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"140898:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"140894:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"140894:77:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9156,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"140878:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"140878:94:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9166,"nodeType":"ExpressionStatement","src":"140878:94:0"}]},"id":9168,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"140790:3:0","nodeType":"FunctionDefinition","parameters":{"id":9154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9147,"mutability":"mutable","name":"p0","nameLocation":"140808:2:0","nodeType":"VariableDeclaration","scope":9168,"src":"140794:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9146,"name":"string","nodeType":"ElementaryTypeName","src":"140794:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9149,"mutability":"mutable","name":"p1","nameLocation":"140820:2:0","nodeType":"VariableDeclaration","scope":9168,"src":"140812:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9148,"name":"address","nodeType":"ElementaryTypeName","src":"140812:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9151,"mutability":"mutable","name":"p2","nameLocation":"140832:2:0","nodeType":"VariableDeclaration","scope":9168,"src":"140824:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9150,"name":"address","nodeType":"ElementaryTypeName","src":"140824:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9153,"mutability":"mutable","name":"p3","nameLocation":"140850:2:0","nodeType":"VariableDeclaration","scope":9168,"src":"140836:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9152,"name":"string","nodeType":"ElementaryTypeName","src":"140836:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"140793:60:0"},"returnParameters":{"id":9155,"nodeType":"ParameterList","parameters":[],"src":"140868:0:0"},"scope":12159,"src":"140781:198:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9190,"nodeType":"Block","src":"141063:109:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c616464726573732c626f6f6c29","id":9182,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"141113:34:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_b59dbd60587b4eeae521d5427cbc88bff32729f88aff059e7deb0a3a4320aaf4","typeString":"literal_string \"log(string,address,address,bool)\""},"value":"log(string,address,address,bool)"},{"id":9183,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9170,"src":"141149:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9184,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9172,"src":"141153:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9185,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9174,"src":"141157:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9186,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9176,"src":"141161:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b59dbd60587b4eeae521d5427cbc88bff32729f88aff059e7deb0a3a4320aaf4","typeString":"literal_string \"log(string,address,address,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":9180,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"141089:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9181,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"141093:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"141089:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"141089:75:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9179,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"141073:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"141073:92:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9189,"nodeType":"ExpressionStatement","src":"141073:92:0"}]},"id":9191,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"140994:3:0","nodeType":"FunctionDefinition","parameters":{"id":9177,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9170,"mutability":"mutable","name":"p0","nameLocation":"141012:2:0","nodeType":"VariableDeclaration","scope":9191,"src":"140998:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9169,"name":"string","nodeType":"ElementaryTypeName","src":"140998:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9172,"mutability":"mutable","name":"p1","nameLocation":"141024:2:0","nodeType":"VariableDeclaration","scope":9191,"src":"141016:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9171,"name":"address","nodeType":"ElementaryTypeName","src":"141016:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9174,"mutability":"mutable","name":"p2","nameLocation":"141036:2:0","nodeType":"VariableDeclaration","scope":9191,"src":"141028:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9173,"name":"address","nodeType":"ElementaryTypeName","src":"141028:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9176,"mutability":"mutable","name":"p3","nameLocation":"141045:2:0","nodeType":"VariableDeclaration","scope":9191,"src":"141040:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9175,"name":"bool","nodeType":"ElementaryTypeName","src":"141040:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"140997:51:0"},"returnParameters":{"id":9178,"nodeType":"ParameterList","parameters":[],"src":"141063:0:0"},"scope":12159,"src":"140985:187:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9213,"nodeType":"Block","src":"141259:112:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c616464726573732c6164647265737329","id":9205,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"141309:37:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_ed8f28f6f4b5d54b1d37f705e543f556805f28b9d1bb3aef0ef7e57ef4992d15","typeString":"literal_string \"log(string,address,address,address)\""},"value":"log(string,address,address,address)"},{"id":9206,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9193,"src":"141348:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9207,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9195,"src":"141352:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9208,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9197,"src":"141356:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9209,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9199,"src":"141360:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ed8f28f6f4b5d54b1d37f705e543f556805f28b9d1bb3aef0ef7e57ef4992d15","typeString":"literal_string \"log(string,address,address,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9203,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"141285:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9204,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"141289:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"141285:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"141285:78:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9202,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"141269:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"141269:95:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9212,"nodeType":"ExpressionStatement","src":"141269:95:0"}]},"id":9214,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"141187:3:0","nodeType":"FunctionDefinition","parameters":{"id":9200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9193,"mutability":"mutable","name":"p0","nameLocation":"141205:2:0","nodeType":"VariableDeclaration","scope":9214,"src":"141191:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9192,"name":"string","nodeType":"ElementaryTypeName","src":"141191:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9195,"mutability":"mutable","name":"p1","nameLocation":"141217:2:0","nodeType":"VariableDeclaration","scope":9214,"src":"141209:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9194,"name":"address","nodeType":"ElementaryTypeName","src":"141209:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9197,"mutability":"mutable","name":"p2","nameLocation":"141229:2:0","nodeType":"VariableDeclaration","scope":9214,"src":"141221:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9196,"name":"address","nodeType":"ElementaryTypeName","src":"141221:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9199,"mutability":"mutable","name":"p3","nameLocation":"141241:2:0","nodeType":"VariableDeclaration","scope":9214,"src":"141233:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9198,"name":"address","nodeType":"ElementaryTypeName","src":"141233:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"141190:54:0"},"returnParameters":{"id":9201,"nodeType":"ParameterList","parameters":[],"src":"141259:0:0"},"scope":12159,"src":"141178:193:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9236,"nodeType":"Block","src":"141440:101:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e742c75696e742c75696e7429","id":9228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"141490:26:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_32dfa524f720faf836764864b46011dc5eb74e494d57e12b294a68048585d558","typeString":"literal_string \"log(bool,uint,uint,uint)\""},"value":"log(bool,uint,uint,uint)"},{"id":9229,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9216,"src":"141518:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9230,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9218,"src":"141522:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9231,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9220,"src":"141526:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9232,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9222,"src":"141530:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32dfa524f720faf836764864b46011dc5eb74e494d57e12b294a68048585d558","typeString":"literal_string \"log(bool,uint,uint,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9226,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"141466:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9227,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"141470:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"141466:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9233,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"141466:67:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9225,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"141450:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"141450:84:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9235,"nodeType":"ExpressionStatement","src":"141450:84:0"}]},"id":9237,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"141386:3:0","nodeType":"FunctionDefinition","parameters":{"id":9223,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9216,"mutability":"mutable","name":"p0","nameLocation":"141395:2:0","nodeType":"VariableDeclaration","scope":9237,"src":"141390:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9215,"name":"bool","nodeType":"ElementaryTypeName","src":"141390:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9218,"mutability":"mutable","name":"p1","nameLocation":"141404:2:0","nodeType":"VariableDeclaration","scope":9237,"src":"141399:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9217,"name":"uint","nodeType":"ElementaryTypeName","src":"141399:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9220,"mutability":"mutable","name":"p2","nameLocation":"141413:2:0","nodeType":"VariableDeclaration","scope":9237,"src":"141408:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9219,"name":"uint","nodeType":"ElementaryTypeName","src":"141408:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9222,"mutability":"mutable","name":"p3","nameLocation":"141422:2:0","nodeType":"VariableDeclaration","scope":9237,"src":"141417:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9221,"name":"uint","nodeType":"ElementaryTypeName","src":"141417:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"141389:36:0"},"returnParameters":{"id":9224,"nodeType":"ParameterList","parameters":[],"src":"141440:0:0"},"scope":12159,"src":"141377:164:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9259,"nodeType":"Block","src":"141619:103:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e742c75696e742c737472696e6729","id":9251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"141669:28:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_da0666c89b01999f5c8980ce90fe9d0a367a350fd8d2ec7d1f94587b6281ebd3","typeString":"literal_string \"log(bool,uint,uint,string)\""},"value":"log(bool,uint,uint,string)"},{"id":9252,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9239,"src":"141699:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9253,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9241,"src":"141703:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9254,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9243,"src":"141707:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9255,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9245,"src":"141711:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_da0666c89b01999f5c8980ce90fe9d0a367a350fd8d2ec7d1f94587b6281ebd3","typeString":"literal_string \"log(bool,uint,uint,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":9249,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"141645:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9250,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"141649:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"141645:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9256,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"141645:69:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9248,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"141629:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"141629:86:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9258,"nodeType":"ExpressionStatement","src":"141629:86:0"}]},"id":9260,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"141556:3:0","nodeType":"FunctionDefinition","parameters":{"id":9246,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9239,"mutability":"mutable","name":"p0","nameLocation":"141565:2:0","nodeType":"VariableDeclaration","scope":9260,"src":"141560:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9238,"name":"bool","nodeType":"ElementaryTypeName","src":"141560:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9241,"mutability":"mutable","name":"p1","nameLocation":"141574:2:0","nodeType":"VariableDeclaration","scope":9260,"src":"141569:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9240,"name":"uint","nodeType":"ElementaryTypeName","src":"141569:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9243,"mutability":"mutable","name":"p2","nameLocation":"141583:2:0","nodeType":"VariableDeclaration","scope":9260,"src":"141578:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9242,"name":"uint","nodeType":"ElementaryTypeName","src":"141578:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9245,"mutability":"mutable","name":"p3","nameLocation":"141601:2:0","nodeType":"VariableDeclaration","scope":9260,"src":"141587:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9244,"name":"string","nodeType":"ElementaryTypeName","src":"141587:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"141559:45:0"},"returnParameters":{"id":9247,"nodeType":"ParameterList","parameters":[],"src":"141619:0:0"},"scope":12159,"src":"141547:175:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9282,"nodeType":"Block","src":"141791:101:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e742c75696e742c626f6f6c29","id":9274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"141841:26:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_a41d81dec511172fa866e067fea22fe074eb6260a116ec078e2e0e79a7fd8ef2","typeString":"literal_string \"log(bool,uint,uint,bool)\""},"value":"log(bool,uint,uint,bool)"},{"id":9275,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9262,"src":"141869:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9276,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9264,"src":"141873:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9277,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9266,"src":"141877:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9278,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9268,"src":"141881:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a41d81dec511172fa866e067fea22fe074eb6260a116ec078e2e0e79a7fd8ef2","typeString":"literal_string \"log(bool,uint,uint,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":9272,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"141817:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9273,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"141821:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"141817:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"141817:67:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9271,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"141801:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"141801:84:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9281,"nodeType":"ExpressionStatement","src":"141801:84:0"}]},"id":9283,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"141737:3:0","nodeType":"FunctionDefinition","parameters":{"id":9269,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9262,"mutability":"mutable","name":"p0","nameLocation":"141746:2:0","nodeType":"VariableDeclaration","scope":9283,"src":"141741:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9261,"name":"bool","nodeType":"ElementaryTypeName","src":"141741:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9264,"mutability":"mutable","name":"p1","nameLocation":"141755:2:0","nodeType":"VariableDeclaration","scope":9283,"src":"141750:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9263,"name":"uint","nodeType":"ElementaryTypeName","src":"141750:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9266,"mutability":"mutable","name":"p2","nameLocation":"141764:2:0","nodeType":"VariableDeclaration","scope":9283,"src":"141759:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9265,"name":"uint","nodeType":"ElementaryTypeName","src":"141759:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9268,"mutability":"mutable","name":"p3","nameLocation":"141773:2:0","nodeType":"VariableDeclaration","scope":9283,"src":"141768:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9267,"name":"bool","nodeType":"ElementaryTypeName","src":"141768:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"141740:36:0"},"returnParameters":{"id":9270,"nodeType":"ParameterList","parameters":[],"src":"141791:0:0"},"scope":12159,"src":"141728:164:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9305,"nodeType":"Block","src":"141964:104:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e742c75696e742c6164647265737329","id":9297,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"142014:29:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_f161b2216765f7746c6d62a843721a4e56fa83880464de0ff958770fd9704e33","typeString":"literal_string \"log(bool,uint,uint,address)\""},"value":"log(bool,uint,uint,address)"},{"id":9298,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9285,"src":"142045:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9299,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9287,"src":"142049:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9300,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9289,"src":"142053:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9301,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9291,"src":"142057:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f161b2216765f7746c6d62a843721a4e56fa83880464de0ff958770fd9704e33","typeString":"literal_string \"log(bool,uint,uint,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9295,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"141990:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9296,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"141994:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"141990:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"141990:70:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9294,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"141974:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"141974:87:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9304,"nodeType":"ExpressionStatement","src":"141974:87:0"}]},"id":9306,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"141907:3:0","nodeType":"FunctionDefinition","parameters":{"id":9292,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9285,"mutability":"mutable","name":"p0","nameLocation":"141916:2:0","nodeType":"VariableDeclaration","scope":9306,"src":"141911:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9284,"name":"bool","nodeType":"ElementaryTypeName","src":"141911:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9287,"mutability":"mutable","name":"p1","nameLocation":"141925:2:0","nodeType":"VariableDeclaration","scope":9306,"src":"141920:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9286,"name":"uint","nodeType":"ElementaryTypeName","src":"141920:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9289,"mutability":"mutable","name":"p2","nameLocation":"141934:2:0","nodeType":"VariableDeclaration","scope":9306,"src":"141929:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9288,"name":"uint","nodeType":"ElementaryTypeName","src":"141929:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9291,"mutability":"mutable","name":"p3","nameLocation":"141946:2:0","nodeType":"VariableDeclaration","scope":9306,"src":"141938:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9290,"name":"address","nodeType":"ElementaryTypeName","src":"141938:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"141910:39:0"},"returnParameters":{"id":9293,"nodeType":"ParameterList","parameters":[],"src":"141964:0:0"},"scope":12159,"src":"141898:170:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9328,"nodeType":"Block","src":"142146:103:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e742c737472696e672c75696e7429","id":9320,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"142196:28:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_4180011b79de474cdb825b6c4cfbc6d05927b06d92ab7c90ba7ff48d251e1813","typeString":"literal_string \"log(bool,uint,string,uint)\""},"value":"log(bool,uint,string,uint)"},{"id":9321,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9308,"src":"142226:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9322,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9310,"src":"142230:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9323,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9312,"src":"142234:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9324,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9314,"src":"142238:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4180011b79de474cdb825b6c4cfbc6d05927b06d92ab7c90ba7ff48d251e1813","typeString":"literal_string \"log(bool,uint,string,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9318,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"142172:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9319,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"142176:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"142172:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"142172:69:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9317,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"142156:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"142156:86:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9327,"nodeType":"ExpressionStatement","src":"142156:86:0"}]},"id":9329,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"142083:3:0","nodeType":"FunctionDefinition","parameters":{"id":9315,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9308,"mutability":"mutable","name":"p0","nameLocation":"142092:2:0","nodeType":"VariableDeclaration","scope":9329,"src":"142087:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9307,"name":"bool","nodeType":"ElementaryTypeName","src":"142087:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9310,"mutability":"mutable","name":"p1","nameLocation":"142101:2:0","nodeType":"VariableDeclaration","scope":9329,"src":"142096:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9309,"name":"uint","nodeType":"ElementaryTypeName","src":"142096:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9312,"mutability":"mutable","name":"p2","nameLocation":"142119:2:0","nodeType":"VariableDeclaration","scope":9329,"src":"142105:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9311,"name":"string","nodeType":"ElementaryTypeName","src":"142105:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9314,"mutability":"mutable","name":"p3","nameLocation":"142128:2:0","nodeType":"VariableDeclaration","scope":9329,"src":"142123:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9313,"name":"uint","nodeType":"ElementaryTypeName","src":"142123:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"142086:45:0"},"returnParameters":{"id":9316,"nodeType":"ParameterList","parameters":[],"src":"142146:0:0"},"scope":12159,"src":"142074:175:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9351,"nodeType":"Block","src":"142336:105:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e742c737472696e672c737472696e6729","id":9343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"142386:30:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_d32a654812cf9bc5514c83d6adb00987a26a725c531c254b4dfe4eef4cdfc8ee","typeString":"literal_string \"log(bool,uint,string,string)\""},"value":"log(bool,uint,string,string)"},{"id":9344,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9331,"src":"142418:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9345,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9333,"src":"142422:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9346,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9335,"src":"142426:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9347,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9337,"src":"142430:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d32a654812cf9bc5514c83d6adb00987a26a725c531c254b4dfe4eef4cdfc8ee","typeString":"literal_string \"log(bool,uint,string,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":9341,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"142362:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9342,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"142366:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"142362:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"142362:71:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9340,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"142346:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"142346:88:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9350,"nodeType":"ExpressionStatement","src":"142346:88:0"}]},"id":9352,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"142264:3:0","nodeType":"FunctionDefinition","parameters":{"id":9338,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9331,"mutability":"mutable","name":"p0","nameLocation":"142273:2:0","nodeType":"VariableDeclaration","scope":9352,"src":"142268:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9330,"name":"bool","nodeType":"ElementaryTypeName","src":"142268:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9333,"mutability":"mutable","name":"p1","nameLocation":"142282:2:0","nodeType":"VariableDeclaration","scope":9352,"src":"142277:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9332,"name":"uint","nodeType":"ElementaryTypeName","src":"142277:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9335,"mutability":"mutable","name":"p2","nameLocation":"142300:2:0","nodeType":"VariableDeclaration","scope":9352,"src":"142286:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9334,"name":"string","nodeType":"ElementaryTypeName","src":"142286:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9337,"mutability":"mutable","name":"p3","nameLocation":"142318:2:0","nodeType":"VariableDeclaration","scope":9352,"src":"142304:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9336,"name":"string","nodeType":"ElementaryTypeName","src":"142304:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"142267:54:0"},"returnParameters":{"id":9339,"nodeType":"ParameterList","parameters":[],"src":"142336:0:0"},"scope":12159,"src":"142255:186:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9374,"nodeType":"Block","src":"142519:103:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e742c737472696e672c626f6f6c29","id":9366,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"142569:28:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_91d2f813beb255a90e7ea595fb27355b60d93c3f818aac6b4c27388d34e0ea16","typeString":"literal_string \"log(bool,uint,string,bool)\""},"value":"log(bool,uint,string,bool)"},{"id":9367,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9354,"src":"142599:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9368,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9356,"src":"142603:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9369,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9358,"src":"142607:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9370,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9360,"src":"142611:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_91d2f813beb255a90e7ea595fb27355b60d93c3f818aac6b4c27388d34e0ea16","typeString":"literal_string \"log(bool,uint,string,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":9364,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"142545:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9365,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"142549:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"142545:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"142545:69:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9363,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"142529:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"142529:86:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9373,"nodeType":"ExpressionStatement","src":"142529:86:0"}]},"id":9375,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"142456:3:0","nodeType":"FunctionDefinition","parameters":{"id":9361,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9354,"mutability":"mutable","name":"p0","nameLocation":"142465:2:0","nodeType":"VariableDeclaration","scope":9375,"src":"142460:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9353,"name":"bool","nodeType":"ElementaryTypeName","src":"142460:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9356,"mutability":"mutable","name":"p1","nameLocation":"142474:2:0","nodeType":"VariableDeclaration","scope":9375,"src":"142469:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9355,"name":"uint","nodeType":"ElementaryTypeName","src":"142469:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9358,"mutability":"mutable","name":"p2","nameLocation":"142492:2:0","nodeType":"VariableDeclaration","scope":9375,"src":"142478:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9357,"name":"string","nodeType":"ElementaryTypeName","src":"142478:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9360,"mutability":"mutable","name":"p3","nameLocation":"142501:2:0","nodeType":"VariableDeclaration","scope":9375,"src":"142496:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9359,"name":"bool","nodeType":"ElementaryTypeName","src":"142496:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"142459:45:0"},"returnParameters":{"id":9362,"nodeType":"ParameterList","parameters":[],"src":"142519:0:0"},"scope":12159,"src":"142447:175:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9397,"nodeType":"Block","src":"142703:106:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e742c737472696e672c6164647265737329","id":9389,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"142753:31:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_a5c70d29969a9ad21bdf8986348e5dc44eea151f64e0f90231a45219c4d0e3d5","typeString":"literal_string \"log(bool,uint,string,address)\""},"value":"log(bool,uint,string,address)"},{"id":9390,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9377,"src":"142786:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9391,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9379,"src":"142790:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9392,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9381,"src":"142794:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9393,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9383,"src":"142798:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a5c70d29969a9ad21bdf8986348e5dc44eea151f64e0f90231a45219c4d0e3d5","typeString":"literal_string \"log(bool,uint,string,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9387,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"142729:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9388,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"142733:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"142729:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"142729:72:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9386,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"142713:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"142713:89:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9396,"nodeType":"ExpressionStatement","src":"142713:89:0"}]},"id":9398,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"142637:3:0","nodeType":"FunctionDefinition","parameters":{"id":9384,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9377,"mutability":"mutable","name":"p0","nameLocation":"142646:2:0","nodeType":"VariableDeclaration","scope":9398,"src":"142641:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9376,"name":"bool","nodeType":"ElementaryTypeName","src":"142641:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9379,"mutability":"mutable","name":"p1","nameLocation":"142655:2:0","nodeType":"VariableDeclaration","scope":9398,"src":"142650:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9378,"name":"uint","nodeType":"ElementaryTypeName","src":"142650:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9381,"mutability":"mutable","name":"p2","nameLocation":"142673:2:0","nodeType":"VariableDeclaration","scope":9398,"src":"142659:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9380,"name":"string","nodeType":"ElementaryTypeName","src":"142659:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9383,"mutability":"mutable","name":"p3","nameLocation":"142685:2:0","nodeType":"VariableDeclaration","scope":9398,"src":"142677:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9382,"name":"address","nodeType":"ElementaryTypeName","src":"142677:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"142640:48:0"},"returnParameters":{"id":9385,"nodeType":"ParameterList","parameters":[],"src":"142703:0:0"},"scope":12159,"src":"142628:181:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9420,"nodeType":"Block","src":"142878:101:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e742c626f6f6c2c75696e7429","id":9412,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"142928:26:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_d3de5593988099d08808f80d2a972ea3da18ecd746f0a3e437c530efaad65aa0","typeString":"literal_string \"log(bool,uint,bool,uint)\""},"value":"log(bool,uint,bool,uint)"},{"id":9413,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9400,"src":"142956:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9414,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9402,"src":"142960:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9415,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9404,"src":"142964:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9416,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9406,"src":"142968:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d3de5593988099d08808f80d2a972ea3da18ecd746f0a3e437c530efaad65aa0","typeString":"literal_string \"log(bool,uint,bool,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9410,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"142904:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9411,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"142908:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"142904:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"142904:67:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9409,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"142888:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"142888:84:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9419,"nodeType":"ExpressionStatement","src":"142888:84:0"}]},"id":9421,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"142824:3:0","nodeType":"FunctionDefinition","parameters":{"id":9407,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9400,"mutability":"mutable","name":"p0","nameLocation":"142833:2:0","nodeType":"VariableDeclaration","scope":9421,"src":"142828:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9399,"name":"bool","nodeType":"ElementaryTypeName","src":"142828:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9402,"mutability":"mutable","name":"p1","nameLocation":"142842:2:0","nodeType":"VariableDeclaration","scope":9421,"src":"142837:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9401,"name":"uint","nodeType":"ElementaryTypeName","src":"142837:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9404,"mutability":"mutable","name":"p2","nameLocation":"142851:2:0","nodeType":"VariableDeclaration","scope":9421,"src":"142846:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9403,"name":"bool","nodeType":"ElementaryTypeName","src":"142846:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9406,"mutability":"mutable","name":"p3","nameLocation":"142860:2:0","nodeType":"VariableDeclaration","scope":9421,"src":"142855:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9405,"name":"uint","nodeType":"ElementaryTypeName","src":"142855:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"142827:36:0"},"returnParameters":{"id":9408,"nodeType":"ParameterList","parameters":[],"src":"142878:0:0"},"scope":12159,"src":"142815:164:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9443,"nodeType":"Block","src":"143057:103:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e742c626f6f6c2c737472696e6729","id":9435,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"143107:28:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_b6d569d433e69694879a799e3777d59bc29ee89dcbaf739de9b283882fd259ad","typeString":"literal_string \"log(bool,uint,bool,string)\""},"value":"log(bool,uint,bool,string)"},{"id":9436,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9423,"src":"143137:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9437,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9425,"src":"143141:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9438,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9427,"src":"143145:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9439,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9429,"src":"143149:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b6d569d433e69694879a799e3777d59bc29ee89dcbaf739de9b283882fd259ad","typeString":"literal_string \"log(bool,uint,bool,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":9433,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"143083:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9434,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"143087:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"143083:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9440,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"143083:69:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9432,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"143067:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"143067:86:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9442,"nodeType":"ExpressionStatement","src":"143067:86:0"}]},"id":9444,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"142994:3:0","nodeType":"FunctionDefinition","parameters":{"id":9430,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9423,"mutability":"mutable","name":"p0","nameLocation":"143003:2:0","nodeType":"VariableDeclaration","scope":9444,"src":"142998:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9422,"name":"bool","nodeType":"ElementaryTypeName","src":"142998:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9425,"mutability":"mutable","name":"p1","nameLocation":"143012:2:0","nodeType":"VariableDeclaration","scope":9444,"src":"143007:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9424,"name":"uint","nodeType":"ElementaryTypeName","src":"143007:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9427,"mutability":"mutable","name":"p2","nameLocation":"143021:2:0","nodeType":"VariableDeclaration","scope":9444,"src":"143016:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9426,"name":"bool","nodeType":"ElementaryTypeName","src":"143016:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9429,"mutability":"mutable","name":"p3","nameLocation":"143039:2:0","nodeType":"VariableDeclaration","scope":9444,"src":"143025:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9428,"name":"string","nodeType":"ElementaryTypeName","src":"143025:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"142997:45:0"},"returnParameters":{"id":9431,"nodeType":"ParameterList","parameters":[],"src":"143057:0:0"},"scope":12159,"src":"142985:175:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9466,"nodeType":"Block","src":"143229:101:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e742c626f6f6c2c626f6f6c29","id":9458,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"143279:26:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_9e01f7417c5ff66a2399364b03788fbf8437045d38acf377fab727a3440df7be","typeString":"literal_string \"log(bool,uint,bool,bool)\""},"value":"log(bool,uint,bool,bool)"},{"id":9459,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9446,"src":"143307:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9460,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9448,"src":"143311:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9461,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9450,"src":"143315:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9462,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9452,"src":"143319:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9e01f7417c5ff66a2399364b03788fbf8437045d38acf377fab727a3440df7be","typeString":"literal_string \"log(bool,uint,bool,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":9456,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"143255:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9457,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"143259:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"143255:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"143255:67:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9455,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"143239:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"143239:84:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9465,"nodeType":"ExpressionStatement","src":"143239:84:0"}]},"id":9467,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"143175:3:0","nodeType":"FunctionDefinition","parameters":{"id":9453,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9446,"mutability":"mutable","name":"p0","nameLocation":"143184:2:0","nodeType":"VariableDeclaration","scope":9467,"src":"143179:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9445,"name":"bool","nodeType":"ElementaryTypeName","src":"143179:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9448,"mutability":"mutable","name":"p1","nameLocation":"143193:2:0","nodeType":"VariableDeclaration","scope":9467,"src":"143188:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9447,"name":"uint","nodeType":"ElementaryTypeName","src":"143188:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9450,"mutability":"mutable","name":"p2","nameLocation":"143202:2:0","nodeType":"VariableDeclaration","scope":9467,"src":"143197:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9449,"name":"bool","nodeType":"ElementaryTypeName","src":"143197:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9452,"mutability":"mutable","name":"p3","nameLocation":"143211:2:0","nodeType":"VariableDeclaration","scope":9467,"src":"143206:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9451,"name":"bool","nodeType":"ElementaryTypeName","src":"143206:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"143178:36:0"},"returnParameters":{"id":9454,"nodeType":"ParameterList","parameters":[],"src":"143229:0:0"},"scope":12159,"src":"143166:164:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9489,"nodeType":"Block","src":"143402:104:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e742c626f6f6c2c6164647265737329","id":9481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"143452:29:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_4267c7f8f9987b1bc934e31e016f4d182f67ab95e55c5567fbc71b4f01a83f4b","typeString":"literal_string \"log(bool,uint,bool,address)\""},"value":"log(bool,uint,bool,address)"},{"id":9482,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9469,"src":"143483:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9483,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9471,"src":"143487:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9484,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9473,"src":"143491:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9485,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9475,"src":"143495:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4267c7f8f9987b1bc934e31e016f4d182f67ab95e55c5567fbc71b4f01a83f4b","typeString":"literal_string \"log(bool,uint,bool,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9479,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"143428:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9480,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"143432:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"143428:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"143428:70:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9478,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"143412:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"143412:87:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9488,"nodeType":"ExpressionStatement","src":"143412:87:0"}]},"id":9490,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"143345:3:0","nodeType":"FunctionDefinition","parameters":{"id":9476,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9469,"mutability":"mutable","name":"p0","nameLocation":"143354:2:0","nodeType":"VariableDeclaration","scope":9490,"src":"143349:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9468,"name":"bool","nodeType":"ElementaryTypeName","src":"143349:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9471,"mutability":"mutable","name":"p1","nameLocation":"143363:2:0","nodeType":"VariableDeclaration","scope":9490,"src":"143358:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9470,"name":"uint","nodeType":"ElementaryTypeName","src":"143358:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9473,"mutability":"mutable","name":"p2","nameLocation":"143372:2:0","nodeType":"VariableDeclaration","scope":9490,"src":"143367:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9472,"name":"bool","nodeType":"ElementaryTypeName","src":"143367:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9475,"mutability":"mutable","name":"p3","nameLocation":"143384:2:0","nodeType":"VariableDeclaration","scope":9490,"src":"143376:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9474,"name":"address","nodeType":"ElementaryTypeName","src":"143376:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"143348:39:0"},"returnParameters":{"id":9477,"nodeType":"ParameterList","parameters":[],"src":"143402:0:0"},"scope":12159,"src":"143336:170:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9512,"nodeType":"Block","src":"143578:104:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e742c616464726573732c75696e7429","id":9504,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"143628:29:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_caa5236acb25f4f5a01ec5f570d99d895d397c7e9fd20ed31c9c33fa8a17f26d","typeString":"literal_string \"log(bool,uint,address,uint)\""},"value":"log(bool,uint,address,uint)"},{"id":9505,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9492,"src":"143659:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9506,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9494,"src":"143663:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9507,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9496,"src":"143667:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9508,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9498,"src":"143671:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_caa5236acb25f4f5a01ec5f570d99d895d397c7e9fd20ed31c9c33fa8a17f26d","typeString":"literal_string \"log(bool,uint,address,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9502,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"143604:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9503,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"143608:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"143604:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"143604:70:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9501,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"143588:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"143588:87:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9511,"nodeType":"ExpressionStatement","src":"143588:87:0"}]},"id":9513,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"143521:3:0","nodeType":"FunctionDefinition","parameters":{"id":9499,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9492,"mutability":"mutable","name":"p0","nameLocation":"143530:2:0","nodeType":"VariableDeclaration","scope":9513,"src":"143525:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9491,"name":"bool","nodeType":"ElementaryTypeName","src":"143525:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9494,"mutability":"mutable","name":"p1","nameLocation":"143539:2:0","nodeType":"VariableDeclaration","scope":9513,"src":"143534:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9493,"name":"uint","nodeType":"ElementaryTypeName","src":"143534:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9496,"mutability":"mutable","name":"p2","nameLocation":"143551:2:0","nodeType":"VariableDeclaration","scope":9513,"src":"143543:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9495,"name":"address","nodeType":"ElementaryTypeName","src":"143543:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9498,"mutability":"mutable","name":"p3","nameLocation":"143560:2:0","nodeType":"VariableDeclaration","scope":9513,"src":"143555:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9497,"name":"uint","nodeType":"ElementaryTypeName","src":"143555:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"143524:39:0"},"returnParameters":{"id":9500,"nodeType":"ParameterList","parameters":[],"src":"143578:0:0"},"scope":12159,"src":"143512:170:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9535,"nodeType":"Block","src":"143763:106:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e742c616464726573732c737472696e6729","id":9527,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"143813:31:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_180913415ccbde45e0d2184e3dd2387bed86df0066bd73fcb896bc02a6226689","typeString":"literal_string \"log(bool,uint,address,string)\""},"value":"log(bool,uint,address,string)"},{"id":9528,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9515,"src":"143846:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9529,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9517,"src":"143850:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9530,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9519,"src":"143854:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9531,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9521,"src":"143858:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_180913415ccbde45e0d2184e3dd2387bed86df0066bd73fcb896bc02a6226689","typeString":"literal_string \"log(bool,uint,address,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":9525,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"143789:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9526,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"143793:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"143789:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"143789:72:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9524,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"143773:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"143773:89:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9534,"nodeType":"ExpressionStatement","src":"143773:89:0"}]},"id":9536,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"143697:3:0","nodeType":"FunctionDefinition","parameters":{"id":9522,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9515,"mutability":"mutable","name":"p0","nameLocation":"143706:2:0","nodeType":"VariableDeclaration","scope":9536,"src":"143701:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9514,"name":"bool","nodeType":"ElementaryTypeName","src":"143701:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9517,"mutability":"mutable","name":"p1","nameLocation":"143715:2:0","nodeType":"VariableDeclaration","scope":9536,"src":"143710:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9516,"name":"uint","nodeType":"ElementaryTypeName","src":"143710:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9519,"mutability":"mutable","name":"p2","nameLocation":"143727:2:0","nodeType":"VariableDeclaration","scope":9536,"src":"143719:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9518,"name":"address","nodeType":"ElementaryTypeName","src":"143719:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9521,"mutability":"mutable","name":"p3","nameLocation":"143745:2:0","nodeType":"VariableDeclaration","scope":9536,"src":"143731:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9520,"name":"string","nodeType":"ElementaryTypeName","src":"143731:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"143700:48:0"},"returnParameters":{"id":9523,"nodeType":"ParameterList","parameters":[],"src":"143763:0:0"},"scope":12159,"src":"143688:181:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9558,"nodeType":"Block","src":"143941:104:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e742c616464726573732c626f6f6c29","id":9550,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"143991:29:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_65adf4082cd731bd1252f957eddeecdbdcf11e48975b5ac20d902fcb218153fa","typeString":"literal_string \"log(bool,uint,address,bool)\""},"value":"log(bool,uint,address,bool)"},{"id":9551,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9538,"src":"144022:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9552,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9540,"src":"144026:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9553,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9542,"src":"144030:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9554,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9544,"src":"144034:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_65adf4082cd731bd1252f957eddeecdbdcf11e48975b5ac20d902fcb218153fa","typeString":"literal_string \"log(bool,uint,address,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":9548,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"143967:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9549,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"143971:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"143967:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"143967:70:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9547,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"143951:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"143951:87:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9557,"nodeType":"ExpressionStatement","src":"143951:87:0"}]},"id":9559,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"143884:3:0","nodeType":"FunctionDefinition","parameters":{"id":9545,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9538,"mutability":"mutable","name":"p0","nameLocation":"143893:2:0","nodeType":"VariableDeclaration","scope":9559,"src":"143888:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9537,"name":"bool","nodeType":"ElementaryTypeName","src":"143888:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9540,"mutability":"mutable","name":"p1","nameLocation":"143902:2:0","nodeType":"VariableDeclaration","scope":9559,"src":"143897:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9539,"name":"uint","nodeType":"ElementaryTypeName","src":"143897:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9542,"mutability":"mutable","name":"p2","nameLocation":"143914:2:0","nodeType":"VariableDeclaration","scope":9559,"src":"143906:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9541,"name":"address","nodeType":"ElementaryTypeName","src":"143906:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9544,"mutability":"mutable","name":"p3","nameLocation":"143923:2:0","nodeType":"VariableDeclaration","scope":9559,"src":"143918:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9543,"name":"bool","nodeType":"ElementaryTypeName","src":"143918:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"143887:39:0"},"returnParameters":{"id":9546,"nodeType":"ParameterList","parameters":[],"src":"143941:0:0"},"scope":12159,"src":"143875:170:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9581,"nodeType":"Block","src":"144120:107:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e742c616464726573732c6164647265737329","id":9573,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"144170:32:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_8a2f90aa07fc9781ea213028ce9aef0a44d6a31a77e2f4d54d97a0d808348d5d","typeString":"literal_string \"log(bool,uint,address,address)\""},"value":"log(bool,uint,address,address)"},{"id":9574,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9561,"src":"144204:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9575,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9563,"src":"144208:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9576,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9565,"src":"144212:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9577,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9567,"src":"144216:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8a2f90aa07fc9781ea213028ce9aef0a44d6a31a77e2f4d54d97a0d808348d5d","typeString":"literal_string \"log(bool,uint,address,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9571,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"144146:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9572,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"144150:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"144146:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"144146:73:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9570,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"144130:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"144130:90:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9580,"nodeType":"ExpressionStatement","src":"144130:90:0"}]},"id":9582,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"144060:3:0","nodeType":"FunctionDefinition","parameters":{"id":9568,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9561,"mutability":"mutable","name":"p0","nameLocation":"144069:2:0","nodeType":"VariableDeclaration","scope":9582,"src":"144064:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9560,"name":"bool","nodeType":"ElementaryTypeName","src":"144064:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9563,"mutability":"mutable","name":"p1","nameLocation":"144078:2:0","nodeType":"VariableDeclaration","scope":9582,"src":"144073:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9562,"name":"uint","nodeType":"ElementaryTypeName","src":"144073:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9565,"mutability":"mutable","name":"p2","nameLocation":"144090:2:0","nodeType":"VariableDeclaration","scope":9582,"src":"144082:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9564,"name":"address","nodeType":"ElementaryTypeName","src":"144082:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9567,"mutability":"mutable","name":"p3","nameLocation":"144102:2:0","nodeType":"VariableDeclaration","scope":9582,"src":"144094:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9566,"name":"address","nodeType":"ElementaryTypeName","src":"144094:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"144063:42:0"},"returnParameters":{"id":9569,"nodeType":"ParameterList","parameters":[],"src":"144120:0:0"},"scope":12159,"src":"144051:176:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9604,"nodeType":"Block","src":"144305:103:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c75696e742c75696e7429","id":9596,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"144355:28:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_8e4ae86e71c7c77322d634e39fba7bc2a7e4fbe918bce10fe47326050a13b7c9","typeString":"literal_string \"log(bool,string,uint,uint)\""},"value":"log(bool,string,uint,uint)"},{"id":9597,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9584,"src":"144385:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9598,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9586,"src":"144389:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9599,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9588,"src":"144393:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9600,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9590,"src":"144397:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8e4ae86e71c7c77322d634e39fba7bc2a7e4fbe918bce10fe47326050a13b7c9","typeString":"literal_string \"log(bool,string,uint,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9594,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"144331:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9595,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"144335:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"144331:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"144331:69:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9593,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"144315:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"144315:86:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9603,"nodeType":"ExpressionStatement","src":"144315:86:0"}]},"id":9605,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"144242:3:0","nodeType":"FunctionDefinition","parameters":{"id":9591,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9584,"mutability":"mutable","name":"p0","nameLocation":"144251:2:0","nodeType":"VariableDeclaration","scope":9605,"src":"144246:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9583,"name":"bool","nodeType":"ElementaryTypeName","src":"144246:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9586,"mutability":"mutable","name":"p1","nameLocation":"144269:2:0","nodeType":"VariableDeclaration","scope":9605,"src":"144255:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9585,"name":"string","nodeType":"ElementaryTypeName","src":"144255:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9588,"mutability":"mutable","name":"p2","nameLocation":"144278:2:0","nodeType":"VariableDeclaration","scope":9605,"src":"144273:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9587,"name":"uint","nodeType":"ElementaryTypeName","src":"144273:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9590,"mutability":"mutable","name":"p3","nameLocation":"144287:2:0","nodeType":"VariableDeclaration","scope":9605,"src":"144282:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9589,"name":"uint","nodeType":"ElementaryTypeName","src":"144282:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"144245:45:0"},"returnParameters":{"id":9592,"nodeType":"ParameterList","parameters":[],"src":"144305:0:0"},"scope":12159,"src":"144233:175:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9627,"nodeType":"Block","src":"144495:105:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c75696e742c737472696e6729","id":9619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"144545:30:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_77a1abed9f9fbc44023408083dd5c1cf42b0b566799470c6ab535b12d0f8f649","typeString":"literal_string \"log(bool,string,uint,string)\""},"value":"log(bool,string,uint,string)"},{"id":9620,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9607,"src":"144577:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9621,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9609,"src":"144581:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9622,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9611,"src":"144585:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9623,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9613,"src":"144589:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_77a1abed9f9fbc44023408083dd5c1cf42b0b566799470c6ab535b12d0f8f649","typeString":"literal_string \"log(bool,string,uint,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":9617,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"144521:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9618,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"144525:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"144521:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"144521:71:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9616,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"144505:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"144505:88:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9626,"nodeType":"ExpressionStatement","src":"144505:88:0"}]},"id":9628,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"144423:3:0","nodeType":"FunctionDefinition","parameters":{"id":9614,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9607,"mutability":"mutable","name":"p0","nameLocation":"144432:2:0","nodeType":"VariableDeclaration","scope":9628,"src":"144427:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9606,"name":"bool","nodeType":"ElementaryTypeName","src":"144427:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9609,"mutability":"mutable","name":"p1","nameLocation":"144450:2:0","nodeType":"VariableDeclaration","scope":9628,"src":"144436:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9608,"name":"string","nodeType":"ElementaryTypeName","src":"144436:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9611,"mutability":"mutable","name":"p2","nameLocation":"144459:2:0","nodeType":"VariableDeclaration","scope":9628,"src":"144454:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9610,"name":"uint","nodeType":"ElementaryTypeName","src":"144454:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9613,"mutability":"mutable","name":"p3","nameLocation":"144477:2:0","nodeType":"VariableDeclaration","scope":9628,"src":"144463:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9612,"name":"string","nodeType":"ElementaryTypeName","src":"144463:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"144426:54:0"},"returnParameters":{"id":9615,"nodeType":"ParameterList","parameters":[],"src":"144495:0:0"},"scope":12159,"src":"144414:186:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9650,"nodeType":"Block","src":"144678:103:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c75696e742c626f6f6c29","id":9642,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"144728:28:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_20bbc9af7c6bae926ffd73678c9130310d497610a5c76e6e2ae48edff96f38a8","typeString":"literal_string \"log(bool,string,uint,bool)\""},"value":"log(bool,string,uint,bool)"},{"id":9643,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9630,"src":"144758:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9644,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9632,"src":"144762:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9645,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9634,"src":"144766:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9646,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9636,"src":"144770:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_20bbc9af7c6bae926ffd73678c9130310d497610a5c76e6e2ae48edff96f38a8","typeString":"literal_string \"log(bool,string,uint,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":9640,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"144704:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9641,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"144708:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"144704:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"144704:69:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9639,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"144688:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"144688:86:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9649,"nodeType":"ExpressionStatement","src":"144688:86:0"}]},"id":9651,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"144615:3:0","nodeType":"FunctionDefinition","parameters":{"id":9637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9630,"mutability":"mutable","name":"p0","nameLocation":"144624:2:0","nodeType":"VariableDeclaration","scope":9651,"src":"144619:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9629,"name":"bool","nodeType":"ElementaryTypeName","src":"144619:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9632,"mutability":"mutable","name":"p1","nameLocation":"144642:2:0","nodeType":"VariableDeclaration","scope":9651,"src":"144628:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9631,"name":"string","nodeType":"ElementaryTypeName","src":"144628:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9634,"mutability":"mutable","name":"p2","nameLocation":"144651:2:0","nodeType":"VariableDeclaration","scope":9651,"src":"144646:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9633,"name":"uint","nodeType":"ElementaryTypeName","src":"144646:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9636,"mutability":"mutable","name":"p3","nameLocation":"144660:2:0","nodeType":"VariableDeclaration","scope":9651,"src":"144655:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9635,"name":"bool","nodeType":"ElementaryTypeName","src":"144655:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"144618:45:0"},"returnParameters":{"id":9638,"nodeType":"ParameterList","parameters":[],"src":"144678:0:0"},"scope":12159,"src":"144606:175:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9673,"nodeType":"Block","src":"144862:106:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c75696e742c6164647265737329","id":9665,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"144912:31:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_5b22b938264abfc98de8ea025ac5bd87df03cbffd23b96cdfe194e0ef6fb136a","typeString":"literal_string \"log(bool,string,uint,address)\""},"value":"log(bool,string,uint,address)"},{"id":9666,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9653,"src":"144945:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9667,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9655,"src":"144949:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9668,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9657,"src":"144953:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9669,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9659,"src":"144957:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5b22b938264abfc98de8ea025ac5bd87df03cbffd23b96cdfe194e0ef6fb136a","typeString":"literal_string \"log(bool,string,uint,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9663,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"144888:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9664,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"144892:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"144888:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"144888:72:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9662,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"144872:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"144872:89:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9672,"nodeType":"ExpressionStatement","src":"144872:89:0"}]},"id":9674,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"144796:3:0","nodeType":"FunctionDefinition","parameters":{"id":9660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9653,"mutability":"mutable","name":"p0","nameLocation":"144805:2:0","nodeType":"VariableDeclaration","scope":9674,"src":"144800:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9652,"name":"bool","nodeType":"ElementaryTypeName","src":"144800:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9655,"mutability":"mutable","name":"p1","nameLocation":"144823:2:0","nodeType":"VariableDeclaration","scope":9674,"src":"144809:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9654,"name":"string","nodeType":"ElementaryTypeName","src":"144809:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9657,"mutability":"mutable","name":"p2","nameLocation":"144832:2:0","nodeType":"VariableDeclaration","scope":9674,"src":"144827:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9656,"name":"uint","nodeType":"ElementaryTypeName","src":"144827:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9659,"mutability":"mutable","name":"p3","nameLocation":"144844:2:0","nodeType":"VariableDeclaration","scope":9674,"src":"144836:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9658,"name":"address","nodeType":"ElementaryTypeName","src":"144836:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"144799:48:0"},"returnParameters":{"id":9661,"nodeType":"ParameterList","parameters":[],"src":"144862:0:0"},"scope":12159,"src":"144787:181:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9696,"nodeType":"Block","src":"145055:105:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c737472696e672c75696e7429","id":9688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"145105:30:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ddb259214a75c0fc75757e8e19b1cf1c4ec17a5eef635b4715f04b86884d5df","typeString":"literal_string \"log(bool,string,string,uint)\""},"value":"log(bool,string,string,uint)"},{"id":9689,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9676,"src":"145137:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9690,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9678,"src":"145141:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9691,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9680,"src":"145145:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9692,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9682,"src":"145149:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5ddb259214a75c0fc75757e8e19b1cf1c4ec17a5eef635b4715f04b86884d5df","typeString":"literal_string \"log(bool,string,string,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9686,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"145081:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9687,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"145085:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"145081:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"145081:71:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9685,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"145065:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"145065:88:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9695,"nodeType":"ExpressionStatement","src":"145065:88:0"}]},"id":9697,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"144983:3:0","nodeType":"FunctionDefinition","parameters":{"id":9683,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9676,"mutability":"mutable","name":"p0","nameLocation":"144992:2:0","nodeType":"VariableDeclaration","scope":9697,"src":"144987:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9675,"name":"bool","nodeType":"ElementaryTypeName","src":"144987:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9678,"mutability":"mutable","name":"p1","nameLocation":"145010:2:0","nodeType":"VariableDeclaration","scope":9697,"src":"144996:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9677,"name":"string","nodeType":"ElementaryTypeName","src":"144996:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9680,"mutability":"mutable","name":"p2","nameLocation":"145028:2:0","nodeType":"VariableDeclaration","scope":9697,"src":"145014:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9679,"name":"string","nodeType":"ElementaryTypeName","src":"145014:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9682,"mutability":"mutable","name":"p3","nameLocation":"145037:2:0","nodeType":"VariableDeclaration","scope":9697,"src":"145032:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9681,"name":"uint","nodeType":"ElementaryTypeName","src":"145032:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"144986:54:0"},"returnParameters":{"id":9684,"nodeType":"ParameterList","parameters":[],"src":"145055:0:0"},"scope":12159,"src":"144974:186:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9719,"nodeType":"Block","src":"145256:107:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c737472696e672c737472696e6729","id":9711,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"145306:32:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_1762e32af9fa924f818d8f4a6c92011d30129df73749081e0b95feea819a17c9","typeString":"literal_string \"log(bool,string,string,string)\""},"value":"log(bool,string,string,string)"},{"id":9712,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9699,"src":"145340:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9713,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9701,"src":"145344:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9714,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9703,"src":"145348:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9715,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9705,"src":"145352:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1762e32af9fa924f818d8f4a6c92011d30129df73749081e0b95feea819a17c9","typeString":"literal_string \"log(bool,string,string,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":9709,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"145282:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9710,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"145286:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"145282:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"145282:73:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9708,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"145266:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"145266:90:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9718,"nodeType":"ExpressionStatement","src":"145266:90:0"}]},"id":9720,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"145175:3:0","nodeType":"FunctionDefinition","parameters":{"id":9706,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9699,"mutability":"mutable","name":"p0","nameLocation":"145184:2:0","nodeType":"VariableDeclaration","scope":9720,"src":"145179:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9698,"name":"bool","nodeType":"ElementaryTypeName","src":"145179:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9701,"mutability":"mutable","name":"p1","nameLocation":"145202:2:0","nodeType":"VariableDeclaration","scope":9720,"src":"145188:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9700,"name":"string","nodeType":"ElementaryTypeName","src":"145188:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9703,"mutability":"mutable","name":"p2","nameLocation":"145220:2:0","nodeType":"VariableDeclaration","scope":9720,"src":"145206:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9702,"name":"string","nodeType":"ElementaryTypeName","src":"145206:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9705,"mutability":"mutable","name":"p3","nameLocation":"145238:2:0","nodeType":"VariableDeclaration","scope":9720,"src":"145224:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9704,"name":"string","nodeType":"ElementaryTypeName","src":"145224:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"145178:63:0"},"returnParameters":{"id":9707,"nodeType":"ParameterList","parameters":[],"src":"145256:0:0"},"scope":12159,"src":"145166:197:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9742,"nodeType":"Block","src":"145450:105:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c737472696e672c626f6f6c29","id":9734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"145500:30:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e4b87e52d13efc5b368defba0463e423637ec55125c6230945d005f817198d1","typeString":"literal_string \"log(bool,string,string,bool)\""},"value":"log(bool,string,string,bool)"},{"id":9735,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9722,"src":"145532:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9736,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9724,"src":"145536:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9737,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9726,"src":"145540:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9738,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9728,"src":"145544:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1e4b87e52d13efc5b368defba0463e423637ec55125c6230945d005f817198d1","typeString":"literal_string \"log(bool,string,string,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":9732,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"145476:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9733,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"145480:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"145476:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"145476:71:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9731,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"145460:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"145460:88:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9741,"nodeType":"ExpressionStatement","src":"145460:88:0"}]},"id":9743,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"145378:3:0","nodeType":"FunctionDefinition","parameters":{"id":9729,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9722,"mutability":"mutable","name":"p0","nameLocation":"145387:2:0","nodeType":"VariableDeclaration","scope":9743,"src":"145382:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9721,"name":"bool","nodeType":"ElementaryTypeName","src":"145382:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9724,"mutability":"mutable","name":"p1","nameLocation":"145405:2:0","nodeType":"VariableDeclaration","scope":9743,"src":"145391:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9723,"name":"string","nodeType":"ElementaryTypeName","src":"145391:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9726,"mutability":"mutable","name":"p2","nameLocation":"145423:2:0","nodeType":"VariableDeclaration","scope":9743,"src":"145409:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9725,"name":"string","nodeType":"ElementaryTypeName","src":"145409:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9728,"mutability":"mutable","name":"p3","nameLocation":"145432:2:0","nodeType":"VariableDeclaration","scope":9743,"src":"145427:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9727,"name":"bool","nodeType":"ElementaryTypeName","src":"145427:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"145381:54:0"},"returnParameters":{"id":9730,"nodeType":"ParameterList","parameters":[],"src":"145450:0:0"},"scope":12159,"src":"145369:186:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9765,"nodeType":"Block","src":"145645:108:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c737472696e672c6164647265737329","id":9757,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"145695:33:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_97d394d89551bd441d1340d1c3dcc3b6160871bf042c6884bcb4049b2fa2bdb5","typeString":"literal_string \"log(bool,string,string,address)\""},"value":"log(bool,string,string,address)"},{"id":9758,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9745,"src":"145730:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9759,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9747,"src":"145734:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9760,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9749,"src":"145738:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9761,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9751,"src":"145742:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_97d394d89551bd441d1340d1c3dcc3b6160871bf042c6884bcb4049b2fa2bdb5","typeString":"literal_string \"log(bool,string,string,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9755,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"145671:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9756,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"145675:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"145671:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"145671:74:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9754,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"145655:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"145655:91:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9764,"nodeType":"ExpressionStatement","src":"145655:91:0"}]},"id":9766,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"145570:3:0","nodeType":"FunctionDefinition","parameters":{"id":9752,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9745,"mutability":"mutable","name":"p0","nameLocation":"145579:2:0","nodeType":"VariableDeclaration","scope":9766,"src":"145574:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9744,"name":"bool","nodeType":"ElementaryTypeName","src":"145574:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9747,"mutability":"mutable","name":"p1","nameLocation":"145597:2:0","nodeType":"VariableDeclaration","scope":9766,"src":"145583:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9746,"name":"string","nodeType":"ElementaryTypeName","src":"145583:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9749,"mutability":"mutable","name":"p2","nameLocation":"145615:2:0","nodeType":"VariableDeclaration","scope":9766,"src":"145601:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9748,"name":"string","nodeType":"ElementaryTypeName","src":"145601:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9751,"mutability":"mutable","name":"p3","nameLocation":"145627:2:0","nodeType":"VariableDeclaration","scope":9766,"src":"145619:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9750,"name":"address","nodeType":"ElementaryTypeName","src":"145619:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"145573:57:0"},"returnParameters":{"id":9753,"nodeType":"ParameterList","parameters":[],"src":"145645:0:0"},"scope":12159,"src":"145561:192:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9788,"nodeType":"Block","src":"145831:103:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c626f6f6c2c75696e7429","id":9780,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"145881:28:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_8d6f9ca539d16169f184b68d5f2cbc34ada538d6737083559aa5a96068582055","typeString":"literal_string \"log(bool,string,bool,uint)\""},"value":"log(bool,string,bool,uint)"},{"id":9781,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9768,"src":"145911:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9782,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9770,"src":"145915:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9783,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9772,"src":"145919:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9784,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9774,"src":"145923:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8d6f9ca539d16169f184b68d5f2cbc34ada538d6737083559aa5a96068582055","typeString":"literal_string \"log(bool,string,bool,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9778,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"145857:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9779,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"145861:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"145857:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"145857:69:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9777,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"145841:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"145841:86:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9787,"nodeType":"ExpressionStatement","src":"145841:86:0"}]},"id":9789,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"145768:3:0","nodeType":"FunctionDefinition","parameters":{"id":9775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9768,"mutability":"mutable","name":"p0","nameLocation":"145777:2:0","nodeType":"VariableDeclaration","scope":9789,"src":"145772:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9767,"name":"bool","nodeType":"ElementaryTypeName","src":"145772:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9770,"mutability":"mutable","name":"p1","nameLocation":"145795:2:0","nodeType":"VariableDeclaration","scope":9789,"src":"145781:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9769,"name":"string","nodeType":"ElementaryTypeName","src":"145781:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9772,"mutability":"mutable","name":"p2","nameLocation":"145804:2:0","nodeType":"VariableDeclaration","scope":9789,"src":"145799:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9771,"name":"bool","nodeType":"ElementaryTypeName","src":"145799:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9774,"mutability":"mutable","name":"p3","nameLocation":"145813:2:0","nodeType":"VariableDeclaration","scope":9789,"src":"145808:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9773,"name":"uint","nodeType":"ElementaryTypeName","src":"145808:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"145771:45:0"},"returnParameters":{"id":9776,"nodeType":"ParameterList","parameters":[],"src":"145831:0:0"},"scope":12159,"src":"145759:175:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9811,"nodeType":"Block","src":"146021:105:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c626f6f6c2c737472696e6729","id":9803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"146071:30:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_483d0416329d0c81c68975a0cac822497c590c00f8ae8be66af490d0f9215468","typeString":"literal_string \"log(bool,string,bool,string)\""},"value":"log(bool,string,bool,string)"},{"id":9804,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9791,"src":"146103:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9805,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9793,"src":"146107:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9806,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9795,"src":"146111:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9807,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9797,"src":"146115:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_483d0416329d0c81c68975a0cac822497c590c00f8ae8be66af490d0f9215468","typeString":"literal_string \"log(bool,string,bool,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":9801,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"146047:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9802,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"146051:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"146047:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"146047:71:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9800,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"146031:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"146031:88:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9810,"nodeType":"ExpressionStatement","src":"146031:88:0"}]},"id":9812,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"145949:3:0","nodeType":"FunctionDefinition","parameters":{"id":9798,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9791,"mutability":"mutable","name":"p0","nameLocation":"145958:2:0","nodeType":"VariableDeclaration","scope":9812,"src":"145953:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9790,"name":"bool","nodeType":"ElementaryTypeName","src":"145953:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9793,"mutability":"mutable","name":"p1","nameLocation":"145976:2:0","nodeType":"VariableDeclaration","scope":9812,"src":"145962:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9792,"name":"string","nodeType":"ElementaryTypeName","src":"145962:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9795,"mutability":"mutable","name":"p2","nameLocation":"145985:2:0","nodeType":"VariableDeclaration","scope":9812,"src":"145980:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9794,"name":"bool","nodeType":"ElementaryTypeName","src":"145980:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9797,"mutability":"mutable","name":"p3","nameLocation":"146003:2:0","nodeType":"VariableDeclaration","scope":9812,"src":"145989:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9796,"name":"string","nodeType":"ElementaryTypeName","src":"145989:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"145952:54:0"},"returnParameters":{"id":9799,"nodeType":"ParameterList","parameters":[],"src":"146021:0:0"},"scope":12159,"src":"145940:186:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9834,"nodeType":"Block","src":"146204:103:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c626f6f6c2c626f6f6c29","id":9826,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"146254:28:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_dc5e935b9ccf45ff13b5900aeaf3a593df3e9479fc07e9c213f5fcaa0951e91f","typeString":"literal_string \"log(bool,string,bool,bool)\""},"value":"log(bool,string,bool,bool)"},{"id":9827,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9814,"src":"146284:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9828,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9816,"src":"146288:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9829,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9818,"src":"146292:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9830,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9820,"src":"146296:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_dc5e935b9ccf45ff13b5900aeaf3a593df3e9479fc07e9c213f5fcaa0951e91f","typeString":"literal_string \"log(bool,string,bool,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":9824,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"146230:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9825,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"146234:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"146230:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"146230:69:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9823,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"146214:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"146214:86:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9833,"nodeType":"ExpressionStatement","src":"146214:86:0"}]},"id":9835,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"146141:3:0","nodeType":"FunctionDefinition","parameters":{"id":9821,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9814,"mutability":"mutable","name":"p0","nameLocation":"146150:2:0","nodeType":"VariableDeclaration","scope":9835,"src":"146145:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9813,"name":"bool","nodeType":"ElementaryTypeName","src":"146145:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9816,"mutability":"mutable","name":"p1","nameLocation":"146168:2:0","nodeType":"VariableDeclaration","scope":9835,"src":"146154:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9815,"name":"string","nodeType":"ElementaryTypeName","src":"146154:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9818,"mutability":"mutable","name":"p2","nameLocation":"146177:2:0","nodeType":"VariableDeclaration","scope":9835,"src":"146172:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9817,"name":"bool","nodeType":"ElementaryTypeName","src":"146172:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9820,"mutability":"mutable","name":"p3","nameLocation":"146186:2:0","nodeType":"VariableDeclaration","scope":9835,"src":"146181:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9819,"name":"bool","nodeType":"ElementaryTypeName","src":"146181:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"146144:45:0"},"returnParameters":{"id":9822,"nodeType":"ParameterList","parameters":[],"src":"146204:0:0"},"scope":12159,"src":"146132:175:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9857,"nodeType":"Block","src":"146388:106:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c626f6f6c2c6164647265737329","id":9849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"146438:31:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_538e06ab06366b189ea53da7c11628ee5730bc373b0bc64719bea1a2afab03c5","typeString":"literal_string \"log(bool,string,bool,address)\""},"value":"log(bool,string,bool,address)"},{"id":9850,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9837,"src":"146471:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9851,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9839,"src":"146475:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9852,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9841,"src":"146479:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9853,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9843,"src":"146483:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_538e06ab06366b189ea53da7c11628ee5730bc373b0bc64719bea1a2afab03c5","typeString":"literal_string \"log(bool,string,bool,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9847,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"146414:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9848,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"146418:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"146414:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9854,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"146414:72:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9846,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"146398:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"146398:89:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9856,"nodeType":"ExpressionStatement","src":"146398:89:0"}]},"id":9858,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"146322:3:0","nodeType":"FunctionDefinition","parameters":{"id":9844,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9837,"mutability":"mutable","name":"p0","nameLocation":"146331:2:0","nodeType":"VariableDeclaration","scope":9858,"src":"146326:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9836,"name":"bool","nodeType":"ElementaryTypeName","src":"146326:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9839,"mutability":"mutable","name":"p1","nameLocation":"146349:2:0","nodeType":"VariableDeclaration","scope":9858,"src":"146335:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9838,"name":"string","nodeType":"ElementaryTypeName","src":"146335:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9841,"mutability":"mutable","name":"p2","nameLocation":"146358:2:0","nodeType":"VariableDeclaration","scope":9858,"src":"146353:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9840,"name":"bool","nodeType":"ElementaryTypeName","src":"146353:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9843,"mutability":"mutable","name":"p3","nameLocation":"146370:2:0","nodeType":"VariableDeclaration","scope":9858,"src":"146362:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9842,"name":"address","nodeType":"ElementaryTypeName","src":"146362:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"146325:48:0"},"returnParameters":{"id":9845,"nodeType":"ParameterList","parameters":[],"src":"146388:0:0"},"scope":12159,"src":"146313:181:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9880,"nodeType":"Block","src":"146575:106:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c616464726573732c75696e7429","id":9872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"146625:31:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_1b0b955b558cd224468bb20ba92b23519cb59fe363a105b00d7a815c1673c4ca","typeString":"literal_string \"log(bool,string,address,uint)\""},"value":"log(bool,string,address,uint)"},{"id":9873,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9860,"src":"146658:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9874,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9862,"src":"146662:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9875,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9864,"src":"146666:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9876,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9866,"src":"146670:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1b0b955b558cd224468bb20ba92b23519cb59fe363a105b00d7a815c1673c4ca","typeString":"literal_string \"log(bool,string,address,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9870,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"146601:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9871,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"146605:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"146601:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"146601:72:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9869,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"146585:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"146585:89:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9879,"nodeType":"ExpressionStatement","src":"146585:89:0"}]},"id":9881,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"146509:3:0","nodeType":"FunctionDefinition","parameters":{"id":9867,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9860,"mutability":"mutable","name":"p0","nameLocation":"146518:2:0","nodeType":"VariableDeclaration","scope":9881,"src":"146513:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9859,"name":"bool","nodeType":"ElementaryTypeName","src":"146513:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9862,"mutability":"mutable","name":"p1","nameLocation":"146536:2:0","nodeType":"VariableDeclaration","scope":9881,"src":"146522:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9861,"name":"string","nodeType":"ElementaryTypeName","src":"146522:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9864,"mutability":"mutable","name":"p2","nameLocation":"146548:2:0","nodeType":"VariableDeclaration","scope":9881,"src":"146540:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9863,"name":"address","nodeType":"ElementaryTypeName","src":"146540:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9866,"mutability":"mutable","name":"p3","nameLocation":"146557:2:0","nodeType":"VariableDeclaration","scope":9881,"src":"146552:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9865,"name":"uint","nodeType":"ElementaryTypeName","src":"146552:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"146512:48:0"},"returnParameters":{"id":9868,"nodeType":"ParameterList","parameters":[],"src":"146575:0:0"},"scope":12159,"src":"146500:181:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9903,"nodeType":"Block","src":"146771:108:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c616464726573732c737472696e6729","id":9895,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"146821:33:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_12d6c788fea4d6144f2607e1e8821bec55a5c2dfdc4cece41a536f7b7831e7a7","typeString":"literal_string \"log(bool,string,address,string)\""},"value":"log(bool,string,address,string)"},{"id":9896,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9883,"src":"146856:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9897,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9885,"src":"146860:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9898,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9887,"src":"146864:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9899,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9889,"src":"146868:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_12d6c788fea4d6144f2607e1e8821bec55a5c2dfdc4cece41a536f7b7831e7a7","typeString":"literal_string \"log(bool,string,address,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":9893,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"146797:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9894,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"146801:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"146797:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"146797:74:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9892,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"146781:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"146781:91:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9902,"nodeType":"ExpressionStatement","src":"146781:91:0"}]},"id":9904,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"146696:3:0","nodeType":"FunctionDefinition","parameters":{"id":9890,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9883,"mutability":"mutable","name":"p0","nameLocation":"146705:2:0","nodeType":"VariableDeclaration","scope":9904,"src":"146700:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9882,"name":"bool","nodeType":"ElementaryTypeName","src":"146700:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9885,"mutability":"mutable","name":"p1","nameLocation":"146723:2:0","nodeType":"VariableDeclaration","scope":9904,"src":"146709:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9884,"name":"string","nodeType":"ElementaryTypeName","src":"146709:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9887,"mutability":"mutable","name":"p2","nameLocation":"146735:2:0","nodeType":"VariableDeclaration","scope":9904,"src":"146727:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9886,"name":"address","nodeType":"ElementaryTypeName","src":"146727:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9889,"mutability":"mutable","name":"p3","nameLocation":"146753:2:0","nodeType":"VariableDeclaration","scope":9904,"src":"146739:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9888,"name":"string","nodeType":"ElementaryTypeName","src":"146739:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"146699:57:0"},"returnParameters":{"id":9891,"nodeType":"ParameterList","parameters":[],"src":"146771:0:0"},"scope":12159,"src":"146687:192:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9926,"nodeType":"Block","src":"146960:106:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c616464726573732c626f6f6c29","id":9918,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"147010:31:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_6dd434ca1fa26d491bcd72b7fe69eb72d41cae8eadbda5a7f985734e1b80c67d","typeString":"literal_string \"log(bool,string,address,bool)\""},"value":"log(bool,string,address,bool)"},{"id":9919,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9906,"src":"147043:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9920,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9908,"src":"147047:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9921,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9910,"src":"147051:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9922,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9912,"src":"147055:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6dd434ca1fa26d491bcd72b7fe69eb72d41cae8eadbda5a7f985734e1b80c67d","typeString":"literal_string \"log(bool,string,address,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":9916,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"146986:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9917,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"146990:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"146986:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"146986:72:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9915,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"146970:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"146970:89:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9925,"nodeType":"ExpressionStatement","src":"146970:89:0"}]},"id":9927,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"146894:3:0","nodeType":"FunctionDefinition","parameters":{"id":9913,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9906,"mutability":"mutable","name":"p0","nameLocation":"146903:2:0","nodeType":"VariableDeclaration","scope":9927,"src":"146898:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9905,"name":"bool","nodeType":"ElementaryTypeName","src":"146898:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9908,"mutability":"mutable","name":"p1","nameLocation":"146921:2:0","nodeType":"VariableDeclaration","scope":9927,"src":"146907:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9907,"name":"string","nodeType":"ElementaryTypeName","src":"146907:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9910,"mutability":"mutable","name":"p2","nameLocation":"146933:2:0","nodeType":"VariableDeclaration","scope":9927,"src":"146925:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9909,"name":"address","nodeType":"ElementaryTypeName","src":"146925:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9912,"mutability":"mutable","name":"p3","nameLocation":"146942:2:0","nodeType":"VariableDeclaration","scope":9927,"src":"146937:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9911,"name":"bool","nodeType":"ElementaryTypeName","src":"146937:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"146897:48:0"},"returnParameters":{"id":9914,"nodeType":"ParameterList","parameters":[],"src":"146960:0:0"},"scope":12159,"src":"146885:181:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9949,"nodeType":"Block","src":"147150:109:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c616464726573732c6164647265737329","id":9941,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"147200:34:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_2b2b18dc50ecc75180f201de41eca533fbda0c7bf525c06b5b8e87bc1d010822","typeString":"literal_string \"log(bool,string,address,address)\""},"value":"log(bool,string,address,address)"},{"id":9942,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9929,"src":"147236:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9943,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9931,"src":"147240:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9944,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9933,"src":"147244:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9945,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9935,"src":"147248:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2b2b18dc50ecc75180f201de41eca533fbda0c7bf525c06b5b8e87bc1d010822","typeString":"literal_string \"log(bool,string,address,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9939,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"147176:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9940,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"147180:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"147176:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"147176:75:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9938,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"147160:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"147160:92:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9948,"nodeType":"ExpressionStatement","src":"147160:92:0"}]},"id":9950,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"147081:3:0","nodeType":"FunctionDefinition","parameters":{"id":9936,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9929,"mutability":"mutable","name":"p0","nameLocation":"147090:2:0","nodeType":"VariableDeclaration","scope":9950,"src":"147085:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9928,"name":"bool","nodeType":"ElementaryTypeName","src":"147085:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9931,"mutability":"mutable","name":"p1","nameLocation":"147108:2:0","nodeType":"VariableDeclaration","scope":9950,"src":"147094:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9930,"name":"string","nodeType":"ElementaryTypeName","src":"147094:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9933,"mutability":"mutable","name":"p2","nameLocation":"147120:2:0","nodeType":"VariableDeclaration","scope":9950,"src":"147112:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9932,"name":"address","nodeType":"ElementaryTypeName","src":"147112:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9935,"mutability":"mutable","name":"p3","nameLocation":"147132:2:0","nodeType":"VariableDeclaration","scope":9950,"src":"147124:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9934,"name":"address","nodeType":"ElementaryTypeName","src":"147124:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"147084:51:0"},"returnParameters":{"id":9937,"nodeType":"ParameterList","parameters":[],"src":"147150:0:0"},"scope":12159,"src":"147072:187:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9972,"nodeType":"Block","src":"147328:101:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c75696e742c75696e7429","id":9964,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"147378:26:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_4667de8ece32e91ade336fb6d8a14a500512d40e1162a34636a5bca908b16e6a","typeString":"literal_string \"log(bool,bool,uint,uint)\""},"value":"log(bool,bool,uint,uint)"},{"id":9965,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9952,"src":"147406:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9966,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9954,"src":"147410:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9967,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9956,"src":"147414:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9968,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9958,"src":"147418:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4667de8ece32e91ade336fb6d8a14a500512d40e1162a34636a5bca908b16e6a","typeString":"literal_string \"log(bool,bool,uint,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9962,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"147354:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9963,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"147358:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"147354:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"147354:67:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9961,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"147338:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"147338:84:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9971,"nodeType":"ExpressionStatement","src":"147338:84:0"}]},"id":9973,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"147274:3:0","nodeType":"FunctionDefinition","parameters":{"id":9959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9952,"mutability":"mutable","name":"p0","nameLocation":"147283:2:0","nodeType":"VariableDeclaration","scope":9973,"src":"147278:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9951,"name":"bool","nodeType":"ElementaryTypeName","src":"147278:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9954,"mutability":"mutable","name":"p1","nameLocation":"147292:2:0","nodeType":"VariableDeclaration","scope":9973,"src":"147287:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9953,"name":"bool","nodeType":"ElementaryTypeName","src":"147287:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9956,"mutability":"mutable","name":"p2","nameLocation":"147301:2:0","nodeType":"VariableDeclaration","scope":9973,"src":"147296:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9955,"name":"uint","nodeType":"ElementaryTypeName","src":"147296:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9958,"mutability":"mutable","name":"p3","nameLocation":"147310:2:0","nodeType":"VariableDeclaration","scope":9973,"src":"147305:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9957,"name":"uint","nodeType":"ElementaryTypeName","src":"147305:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"147277:36:0"},"returnParameters":{"id":9960,"nodeType":"ParameterList","parameters":[],"src":"147328:0:0"},"scope":12159,"src":"147265:164:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9995,"nodeType":"Block","src":"147507:103:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c75696e742c737472696e6729","id":9987,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"147557:28:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_50618937639b3b1cb3bbe247efb1fae4eb9a85d1e66ac66dfc77c62561966adc","typeString":"literal_string \"log(bool,bool,uint,string)\""},"value":"log(bool,bool,uint,string)"},{"id":9988,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9975,"src":"147587:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9989,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9977,"src":"147591:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9990,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9979,"src":"147595:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9991,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9981,"src":"147599:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_50618937639b3b1cb3bbe247efb1fae4eb9a85d1e66ac66dfc77c62561966adc","typeString":"literal_string \"log(bool,bool,uint,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":9985,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"147533:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9986,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"147537:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"147533:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"147533:69:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9984,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"147517:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"147517:86:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9994,"nodeType":"ExpressionStatement","src":"147517:86:0"}]},"id":9996,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"147444:3:0","nodeType":"FunctionDefinition","parameters":{"id":9982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9975,"mutability":"mutable","name":"p0","nameLocation":"147453:2:0","nodeType":"VariableDeclaration","scope":9996,"src":"147448:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9974,"name":"bool","nodeType":"ElementaryTypeName","src":"147448:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9977,"mutability":"mutable","name":"p1","nameLocation":"147462:2:0","nodeType":"VariableDeclaration","scope":9996,"src":"147457:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9976,"name":"bool","nodeType":"ElementaryTypeName","src":"147457:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9979,"mutability":"mutable","name":"p2","nameLocation":"147471:2:0","nodeType":"VariableDeclaration","scope":9996,"src":"147466:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9978,"name":"uint","nodeType":"ElementaryTypeName","src":"147466:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9981,"mutability":"mutable","name":"p3","nameLocation":"147489:2:0","nodeType":"VariableDeclaration","scope":9996,"src":"147475:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9980,"name":"string","nodeType":"ElementaryTypeName","src":"147475:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"147447:45:0"},"returnParameters":{"id":9983,"nodeType":"ParameterList","parameters":[],"src":"147507:0:0"},"scope":12159,"src":"147435:175:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10018,"nodeType":"Block","src":"147679:101:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c75696e742c626f6f6c29","id":10010,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"147729:26:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_ab5cc1c47d926d79461c86216768f32b6ec0ac12d51c1eb543ea3bd1cfec0110","typeString":"literal_string \"log(bool,bool,uint,bool)\""},"value":"log(bool,bool,uint,bool)"},{"id":10011,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9998,"src":"147757:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10012,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10000,"src":"147761:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10013,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10002,"src":"147765:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10014,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10004,"src":"147769:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ab5cc1c47d926d79461c86216768f32b6ec0ac12d51c1eb543ea3bd1cfec0110","typeString":"literal_string \"log(bool,bool,uint,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":10008,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"147705:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10009,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"147709:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"147705:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"147705:67:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10007,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"147689:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"147689:84:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10017,"nodeType":"ExpressionStatement","src":"147689:84:0"}]},"id":10019,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"147625:3:0","nodeType":"FunctionDefinition","parameters":{"id":10005,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9998,"mutability":"mutable","name":"p0","nameLocation":"147634:2:0","nodeType":"VariableDeclaration","scope":10019,"src":"147629:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9997,"name":"bool","nodeType":"ElementaryTypeName","src":"147629:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10000,"mutability":"mutable","name":"p1","nameLocation":"147643:2:0","nodeType":"VariableDeclaration","scope":10019,"src":"147638:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9999,"name":"bool","nodeType":"ElementaryTypeName","src":"147638:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10002,"mutability":"mutable","name":"p2","nameLocation":"147652:2:0","nodeType":"VariableDeclaration","scope":10019,"src":"147647:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10001,"name":"uint","nodeType":"ElementaryTypeName","src":"147647:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10004,"mutability":"mutable","name":"p3","nameLocation":"147661:2:0","nodeType":"VariableDeclaration","scope":10019,"src":"147656:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10003,"name":"bool","nodeType":"ElementaryTypeName","src":"147656:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"147628:36:0"},"returnParameters":{"id":10006,"nodeType":"ParameterList","parameters":[],"src":"147679:0:0"},"scope":12159,"src":"147616:164:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10041,"nodeType":"Block","src":"147852:104:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c75696e742c6164647265737329","id":10033,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"147902:29:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_0bff950dc175e3e278946e4adb75fffc4ee67cda33555121dd293b95b27a39a7","typeString":"literal_string \"log(bool,bool,uint,address)\""},"value":"log(bool,bool,uint,address)"},{"id":10034,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10021,"src":"147933:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10035,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10023,"src":"147937:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10036,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10025,"src":"147941:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10037,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10027,"src":"147945:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0bff950dc175e3e278946e4adb75fffc4ee67cda33555121dd293b95b27a39a7","typeString":"literal_string \"log(bool,bool,uint,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10031,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"147878:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10032,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"147882:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"147878:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"147878:70:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10030,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"147862:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"147862:87:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10040,"nodeType":"ExpressionStatement","src":"147862:87:0"}]},"id":10042,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"147795:3:0","nodeType":"FunctionDefinition","parameters":{"id":10028,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10021,"mutability":"mutable","name":"p0","nameLocation":"147804:2:0","nodeType":"VariableDeclaration","scope":10042,"src":"147799:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10020,"name":"bool","nodeType":"ElementaryTypeName","src":"147799:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10023,"mutability":"mutable","name":"p1","nameLocation":"147813:2:0","nodeType":"VariableDeclaration","scope":10042,"src":"147808:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10022,"name":"bool","nodeType":"ElementaryTypeName","src":"147808:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10025,"mutability":"mutable","name":"p2","nameLocation":"147822:2:0","nodeType":"VariableDeclaration","scope":10042,"src":"147817:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10024,"name":"uint","nodeType":"ElementaryTypeName","src":"147817:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10027,"mutability":"mutable","name":"p3","nameLocation":"147834:2:0","nodeType":"VariableDeclaration","scope":10042,"src":"147826:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10026,"name":"address","nodeType":"ElementaryTypeName","src":"147826:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"147798:39:0"},"returnParameters":{"id":10029,"nodeType":"ParameterList","parameters":[],"src":"147852:0:0"},"scope":12159,"src":"147786:170:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10064,"nodeType":"Block","src":"148034:103:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c737472696e672c75696e7429","id":10056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"148084:28:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_178b4685db1dff62c4ee472c2e6bf50abba0dc230768235e43c6259152d1244e","typeString":"literal_string \"log(bool,bool,string,uint)\""},"value":"log(bool,bool,string,uint)"},{"id":10057,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10044,"src":"148114:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10058,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10046,"src":"148118:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10059,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10048,"src":"148122:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10060,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10050,"src":"148126:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_178b4685db1dff62c4ee472c2e6bf50abba0dc230768235e43c6259152d1244e","typeString":"literal_string \"log(bool,bool,string,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10054,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"148060:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10055,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"148064:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"148060:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"148060:69:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10053,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"148044:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"148044:86:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10063,"nodeType":"ExpressionStatement","src":"148044:86:0"}]},"id":10065,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"147971:3:0","nodeType":"FunctionDefinition","parameters":{"id":10051,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10044,"mutability":"mutable","name":"p0","nameLocation":"147980:2:0","nodeType":"VariableDeclaration","scope":10065,"src":"147975:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10043,"name":"bool","nodeType":"ElementaryTypeName","src":"147975:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10046,"mutability":"mutable","name":"p1","nameLocation":"147989:2:0","nodeType":"VariableDeclaration","scope":10065,"src":"147984:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10045,"name":"bool","nodeType":"ElementaryTypeName","src":"147984:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10048,"mutability":"mutable","name":"p2","nameLocation":"148007:2:0","nodeType":"VariableDeclaration","scope":10065,"src":"147993:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10047,"name":"string","nodeType":"ElementaryTypeName","src":"147993:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10050,"mutability":"mutable","name":"p3","nameLocation":"148016:2:0","nodeType":"VariableDeclaration","scope":10065,"src":"148011:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10049,"name":"uint","nodeType":"ElementaryTypeName","src":"148011:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"147974:45:0"},"returnParameters":{"id":10052,"nodeType":"ParameterList","parameters":[],"src":"148034:0:0"},"scope":12159,"src":"147962:175:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10087,"nodeType":"Block","src":"148224:105:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c737472696e672c737472696e6729","id":10079,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"148274:30:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_6d1e87518c98344bc3efd52648f61de340bda51607aec409d641f3467caafaaf","typeString":"literal_string \"log(bool,bool,string,string)\""},"value":"log(bool,bool,string,string)"},{"id":10080,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10067,"src":"148306:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10081,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10069,"src":"148310:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10082,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10071,"src":"148314:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10083,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10073,"src":"148318:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6d1e87518c98344bc3efd52648f61de340bda51607aec409d641f3467caafaaf","typeString":"literal_string \"log(bool,bool,string,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":10077,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"148250:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10078,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"148254:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"148250:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"148250:71:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10076,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"148234:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"148234:88:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10086,"nodeType":"ExpressionStatement","src":"148234:88:0"}]},"id":10088,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"148152:3:0","nodeType":"FunctionDefinition","parameters":{"id":10074,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10067,"mutability":"mutable","name":"p0","nameLocation":"148161:2:0","nodeType":"VariableDeclaration","scope":10088,"src":"148156:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10066,"name":"bool","nodeType":"ElementaryTypeName","src":"148156:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10069,"mutability":"mutable","name":"p1","nameLocation":"148170:2:0","nodeType":"VariableDeclaration","scope":10088,"src":"148165:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10068,"name":"bool","nodeType":"ElementaryTypeName","src":"148165:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10071,"mutability":"mutable","name":"p2","nameLocation":"148188:2:0","nodeType":"VariableDeclaration","scope":10088,"src":"148174:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10070,"name":"string","nodeType":"ElementaryTypeName","src":"148174:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10073,"mutability":"mutable","name":"p3","nameLocation":"148206:2:0","nodeType":"VariableDeclaration","scope":10088,"src":"148192:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10072,"name":"string","nodeType":"ElementaryTypeName","src":"148192:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"148155:54:0"},"returnParameters":{"id":10075,"nodeType":"ParameterList","parameters":[],"src":"148224:0:0"},"scope":12159,"src":"148143:186:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10110,"nodeType":"Block","src":"148407:103:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c737472696e672c626f6f6c29","id":10102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"148457:28:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_b857163a2b7b8273ed53cefa410aa148f1833bdfc22da11e1e2fb89c6e625d02","typeString":"literal_string \"log(bool,bool,string,bool)\""},"value":"log(bool,bool,string,bool)"},{"id":10103,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10090,"src":"148487:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10104,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10092,"src":"148491:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10105,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10094,"src":"148495:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10106,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10096,"src":"148499:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b857163a2b7b8273ed53cefa410aa148f1833bdfc22da11e1e2fb89c6e625d02","typeString":"literal_string \"log(bool,bool,string,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":10100,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"148433:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10101,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"148437:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"148433:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"148433:69:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10099,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"148417:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"148417:86:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10109,"nodeType":"ExpressionStatement","src":"148417:86:0"}]},"id":10111,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"148344:3:0","nodeType":"FunctionDefinition","parameters":{"id":10097,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10090,"mutability":"mutable","name":"p0","nameLocation":"148353:2:0","nodeType":"VariableDeclaration","scope":10111,"src":"148348:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10089,"name":"bool","nodeType":"ElementaryTypeName","src":"148348:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10092,"mutability":"mutable","name":"p1","nameLocation":"148362:2:0","nodeType":"VariableDeclaration","scope":10111,"src":"148357:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10091,"name":"bool","nodeType":"ElementaryTypeName","src":"148357:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10094,"mutability":"mutable","name":"p2","nameLocation":"148380:2:0","nodeType":"VariableDeclaration","scope":10111,"src":"148366:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10093,"name":"string","nodeType":"ElementaryTypeName","src":"148366:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10096,"mutability":"mutable","name":"p3","nameLocation":"148389:2:0","nodeType":"VariableDeclaration","scope":10111,"src":"148384:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10095,"name":"bool","nodeType":"ElementaryTypeName","src":"148384:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"148347:45:0"},"returnParameters":{"id":10098,"nodeType":"ParameterList","parameters":[],"src":"148407:0:0"},"scope":12159,"src":"148335:175:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10133,"nodeType":"Block","src":"148591:106:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c737472696e672c6164647265737329","id":10125,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"148641:31:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_f9ad2b893873fa31c02b102aa30743b2e44c102daa588ea9d1eb1f2baf23d202","typeString":"literal_string \"log(bool,bool,string,address)\""},"value":"log(bool,bool,string,address)"},{"id":10126,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10113,"src":"148674:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10127,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10115,"src":"148678:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10128,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10117,"src":"148682:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10129,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10119,"src":"148686:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f9ad2b893873fa31c02b102aa30743b2e44c102daa588ea9d1eb1f2baf23d202","typeString":"literal_string \"log(bool,bool,string,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10123,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"148617:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10124,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"148621:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"148617:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"148617:72:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10122,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"148601:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"148601:89:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10132,"nodeType":"ExpressionStatement","src":"148601:89:0"}]},"id":10134,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"148525:3:0","nodeType":"FunctionDefinition","parameters":{"id":10120,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10113,"mutability":"mutable","name":"p0","nameLocation":"148534:2:0","nodeType":"VariableDeclaration","scope":10134,"src":"148529:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10112,"name":"bool","nodeType":"ElementaryTypeName","src":"148529:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10115,"mutability":"mutable","name":"p1","nameLocation":"148543:2:0","nodeType":"VariableDeclaration","scope":10134,"src":"148538:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10114,"name":"bool","nodeType":"ElementaryTypeName","src":"148538:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10117,"mutability":"mutable","name":"p2","nameLocation":"148561:2:0","nodeType":"VariableDeclaration","scope":10134,"src":"148547:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10116,"name":"string","nodeType":"ElementaryTypeName","src":"148547:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10119,"mutability":"mutable","name":"p3","nameLocation":"148573:2:0","nodeType":"VariableDeclaration","scope":10134,"src":"148565:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10118,"name":"address","nodeType":"ElementaryTypeName","src":"148565:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"148528:48:0"},"returnParameters":{"id":10121,"nodeType":"ParameterList","parameters":[],"src":"148591:0:0"},"scope":12159,"src":"148516:181:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10156,"nodeType":"Block","src":"148766:101:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c626f6f6c2c75696e7429","id":10148,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"148816:26:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_c248834dff84ca4bcbda9cf249a0d5da3bd0a58b4562085082654d4d9851b501","typeString":"literal_string \"log(bool,bool,bool,uint)\""},"value":"log(bool,bool,bool,uint)"},{"id":10149,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10136,"src":"148844:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10150,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10138,"src":"148848:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10151,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10140,"src":"148852:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10152,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10142,"src":"148856:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c248834dff84ca4bcbda9cf249a0d5da3bd0a58b4562085082654d4d9851b501","typeString":"literal_string \"log(bool,bool,bool,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10146,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"148792:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10147,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"148796:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"148792:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10153,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"148792:67:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10145,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"148776:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"148776:84:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10155,"nodeType":"ExpressionStatement","src":"148776:84:0"}]},"id":10157,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"148712:3:0","nodeType":"FunctionDefinition","parameters":{"id":10143,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10136,"mutability":"mutable","name":"p0","nameLocation":"148721:2:0","nodeType":"VariableDeclaration","scope":10157,"src":"148716:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10135,"name":"bool","nodeType":"ElementaryTypeName","src":"148716:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10138,"mutability":"mutable","name":"p1","nameLocation":"148730:2:0","nodeType":"VariableDeclaration","scope":10157,"src":"148725:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10137,"name":"bool","nodeType":"ElementaryTypeName","src":"148725:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10140,"mutability":"mutable","name":"p2","nameLocation":"148739:2:0","nodeType":"VariableDeclaration","scope":10157,"src":"148734:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10139,"name":"bool","nodeType":"ElementaryTypeName","src":"148734:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10142,"mutability":"mutable","name":"p3","nameLocation":"148748:2:0","nodeType":"VariableDeclaration","scope":10157,"src":"148743:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10141,"name":"uint","nodeType":"ElementaryTypeName","src":"148743:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"148715:36:0"},"returnParameters":{"id":10144,"nodeType":"ParameterList","parameters":[],"src":"148766:0:0"},"scope":12159,"src":"148703:164:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10179,"nodeType":"Block","src":"148945:103:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c626f6f6c2c737472696e6729","id":10171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"148995:28:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_2ae408d4d030305a0361ad07c397f2b9653613b220d82459c7aeb9a6bab96c15","typeString":"literal_string \"log(bool,bool,bool,string)\""},"value":"log(bool,bool,bool,string)"},{"id":10172,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10159,"src":"149025:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10173,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10161,"src":"149029:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10174,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10163,"src":"149033:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10175,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10165,"src":"149037:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2ae408d4d030305a0361ad07c397f2b9653613b220d82459c7aeb9a6bab96c15","typeString":"literal_string \"log(bool,bool,bool,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":10169,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"148971:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10170,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"148975:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"148971:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"148971:69:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10168,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"148955:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"148955:86:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10178,"nodeType":"ExpressionStatement","src":"148955:86:0"}]},"id":10180,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"148882:3:0","nodeType":"FunctionDefinition","parameters":{"id":10166,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10159,"mutability":"mutable","name":"p0","nameLocation":"148891:2:0","nodeType":"VariableDeclaration","scope":10180,"src":"148886:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10158,"name":"bool","nodeType":"ElementaryTypeName","src":"148886:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10161,"mutability":"mutable","name":"p1","nameLocation":"148900:2:0","nodeType":"VariableDeclaration","scope":10180,"src":"148895:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10160,"name":"bool","nodeType":"ElementaryTypeName","src":"148895:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10163,"mutability":"mutable","name":"p2","nameLocation":"148909:2:0","nodeType":"VariableDeclaration","scope":10180,"src":"148904:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10162,"name":"bool","nodeType":"ElementaryTypeName","src":"148904:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10165,"mutability":"mutable","name":"p3","nameLocation":"148927:2:0","nodeType":"VariableDeclaration","scope":10180,"src":"148913:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10164,"name":"string","nodeType":"ElementaryTypeName","src":"148913:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"148885:45:0"},"returnParameters":{"id":10167,"nodeType":"ParameterList","parameters":[],"src":"148945:0:0"},"scope":12159,"src":"148873:175:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10202,"nodeType":"Block","src":"149117:101:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c626f6f6c2c626f6f6c29","id":10194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"149167:26:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_3b2a5ce0ddf7b166153a4354c81efba12a817983a38c6bc3b58fd91ce816d99f","typeString":"literal_string \"log(bool,bool,bool,bool)\""},"value":"log(bool,bool,bool,bool)"},{"id":10195,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10182,"src":"149195:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10196,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10184,"src":"149199:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10197,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10186,"src":"149203:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10198,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10188,"src":"149207:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3b2a5ce0ddf7b166153a4354c81efba12a817983a38c6bc3b58fd91ce816d99f","typeString":"literal_string \"log(bool,bool,bool,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":10192,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"149143:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10193,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"149147:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"149143:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"149143:67:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10191,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"149127:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"149127:84:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10201,"nodeType":"ExpressionStatement","src":"149127:84:0"}]},"id":10203,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"149063:3:0","nodeType":"FunctionDefinition","parameters":{"id":10189,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10182,"mutability":"mutable","name":"p0","nameLocation":"149072:2:0","nodeType":"VariableDeclaration","scope":10203,"src":"149067:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10181,"name":"bool","nodeType":"ElementaryTypeName","src":"149067:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10184,"mutability":"mutable","name":"p1","nameLocation":"149081:2:0","nodeType":"VariableDeclaration","scope":10203,"src":"149076:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10183,"name":"bool","nodeType":"ElementaryTypeName","src":"149076:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10186,"mutability":"mutable","name":"p2","nameLocation":"149090:2:0","nodeType":"VariableDeclaration","scope":10203,"src":"149085:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10185,"name":"bool","nodeType":"ElementaryTypeName","src":"149085:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10188,"mutability":"mutable","name":"p3","nameLocation":"149099:2:0","nodeType":"VariableDeclaration","scope":10203,"src":"149094:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10187,"name":"bool","nodeType":"ElementaryTypeName","src":"149094:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"149066:36:0"},"returnParameters":{"id":10190,"nodeType":"ParameterList","parameters":[],"src":"149117:0:0"},"scope":12159,"src":"149054:164:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10225,"nodeType":"Block","src":"149290:104:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c626f6f6c2c6164647265737329","id":10217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"149340:29:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_8c329b1a1752dedfc6b781d23096b49b7f905d62405e6e3f0ab0344786ff69f4","typeString":"literal_string \"log(bool,bool,bool,address)\""},"value":"log(bool,bool,bool,address)"},{"id":10218,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10205,"src":"149371:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10219,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10207,"src":"149375:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10220,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10209,"src":"149379:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10221,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10211,"src":"149383:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8c329b1a1752dedfc6b781d23096b49b7f905d62405e6e3f0ab0344786ff69f4","typeString":"literal_string \"log(bool,bool,bool,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10215,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"149316:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10216,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"149320:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"149316:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"149316:70:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10214,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"149300:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"149300:87:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10224,"nodeType":"ExpressionStatement","src":"149300:87:0"}]},"id":10226,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"149233:3:0","nodeType":"FunctionDefinition","parameters":{"id":10212,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10205,"mutability":"mutable","name":"p0","nameLocation":"149242:2:0","nodeType":"VariableDeclaration","scope":10226,"src":"149237:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10204,"name":"bool","nodeType":"ElementaryTypeName","src":"149237:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10207,"mutability":"mutable","name":"p1","nameLocation":"149251:2:0","nodeType":"VariableDeclaration","scope":10226,"src":"149246:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10206,"name":"bool","nodeType":"ElementaryTypeName","src":"149246:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10209,"mutability":"mutable","name":"p2","nameLocation":"149260:2:0","nodeType":"VariableDeclaration","scope":10226,"src":"149255:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10208,"name":"bool","nodeType":"ElementaryTypeName","src":"149255:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10211,"mutability":"mutable","name":"p3","nameLocation":"149272:2:0","nodeType":"VariableDeclaration","scope":10226,"src":"149264:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10210,"name":"address","nodeType":"ElementaryTypeName","src":"149264:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"149236:39:0"},"returnParameters":{"id":10213,"nodeType":"ParameterList","parameters":[],"src":"149290:0:0"},"scope":12159,"src":"149224:170:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10248,"nodeType":"Block","src":"149466:104:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c616464726573732c75696e7429","id":10240,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"149516:29:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_609386e78fd5b0eaf4b919077203f18b1606ddf72247d9e5eef9238918f7cf5e","typeString":"literal_string \"log(bool,bool,address,uint)\""},"value":"log(bool,bool,address,uint)"},{"id":10241,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10228,"src":"149547:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10242,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10230,"src":"149551:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10243,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10232,"src":"149555:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10244,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10234,"src":"149559:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_609386e78fd5b0eaf4b919077203f18b1606ddf72247d9e5eef9238918f7cf5e","typeString":"literal_string \"log(bool,bool,address,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10238,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"149492:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10239,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"149496:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"149492:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"149492:70:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10237,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"149476:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"149476:87:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10247,"nodeType":"ExpressionStatement","src":"149476:87:0"}]},"id":10249,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"149409:3:0","nodeType":"FunctionDefinition","parameters":{"id":10235,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10228,"mutability":"mutable","name":"p0","nameLocation":"149418:2:0","nodeType":"VariableDeclaration","scope":10249,"src":"149413:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10227,"name":"bool","nodeType":"ElementaryTypeName","src":"149413:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10230,"mutability":"mutable","name":"p1","nameLocation":"149427:2:0","nodeType":"VariableDeclaration","scope":10249,"src":"149422:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10229,"name":"bool","nodeType":"ElementaryTypeName","src":"149422:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10232,"mutability":"mutable","name":"p2","nameLocation":"149439:2:0","nodeType":"VariableDeclaration","scope":10249,"src":"149431:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10231,"name":"address","nodeType":"ElementaryTypeName","src":"149431:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10234,"mutability":"mutable","name":"p3","nameLocation":"149448:2:0","nodeType":"VariableDeclaration","scope":10249,"src":"149443:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10233,"name":"uint","nodeType":"ElementaryTypeName","src":"149443:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"149412:39:0"},"returnParameters":{"id":10236,"nodeType":"ParameterList","parameters":[],"src":"149466:0:0"},"scope":12159,"src":"149400:170:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10271,"nodeType":"Block","src":"149651:106:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c616464726573732c737472696e6729","id":10263,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"149701:31:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_a0a479635c05dee438b610769de0f667f2e93ee267e4cd4badf3dd44eb6271d2","typeString":"literal_string \"log(bool,bool,address,string)\""},"value":"log(bool,bool,address,string)"},{"id":10264,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10251,"src":"149734:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10265,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10253,"src":"149738:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10266,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10255,"src":"149742:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10267,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10257,"src":"149746:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a0a479635c05dee438b610769de0f667f2e93ee267e4cd4badf3dd44eb6271d2","typeString":"literal_string \"log(bool,bool,address,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":10261,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"149677:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10262,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"149681:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"149677:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"149677:72:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10260,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"149661:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"149661:89:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10270,"nodeType":"ExpressionStatement","src":"149661:89:0"}]},"id":10272,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"149585:3:0","nodeType":"FunctionDefinition","parameters":{"id":10258,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10251,"mutability":"mutable","name":"p0","nameLocation":"149594:2:0","nodeType":"VariableDeclaration","scope":10272,"src":"149589:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10250,"name":"bool","nodeType":"ElementaryTypeName","src":"149589:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10253,"mutability":"mutable","name":"p1","nameLocation":"149603:2:0","nodeType":"VariableDeclaration","scope":10272,"src":"149598:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10252,"name":"bool","nodeType":"ElementaryTypeName","src":"149598:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10255,"mutability":"mutable","name":"p2","nameLocation":"149615:2:0","nodeType":"VariableDeclaration","scope":10272,"src":"149607:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10254,"name":"address","nodeType":"ElementaryTypeName","src":"149607:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10257,"mutability":"mutable","name":"p3","nameLocation":"149633:2:0","nodeType":"VariableDeclaration","scope":10272,"src":"149619:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10256,"name":"string","nodeType":"ElementaryTypeName","src":"149619:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"149588:48:0"},"returnParameters":{"id":10259,"nodeType":"ParameterList","parameters":[],"src":"149651:0:0"},"scope":12159,"src":"149576:181:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10294,"nodeType":"Block","src":"149829:104:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c616464726573732c626f6f6c29","id":10286,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"149879:29:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_c0a302d8f11e8919127c20f396068f7014b94967efb042778db9b27b68ee1eaf","typeString":"literal_string \"log(bool,bool,address,bool)\""},"value":"log(bool,bool,address,bool)"},{"id":10287,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10274,"src":"149910:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10288,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10276,"src":"149914:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10289,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10278,"src":"149918:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10290,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10280,"src":"149922:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c0a302d8f11e8919127c20f396068f7014b94967efb042778db9b27b68ee1eaf","typeString":"literal_string \"log(bool,bool,address,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":10284,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"149855:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10285,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"149859:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"149855:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"149855:70:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10283,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"149839:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"149839:87:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10293,"nodeType":"ExpressionStatement","src":"149839:87:0"}]},"id":10295,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"149772:3:0","nodeType":"FunctionDefinition","parameters":{"id":10281,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10274,"mutability":"mutable","name":"p0","nameLocation":"149781:2:0","nodeType":"VariableDeclaration","scope":10295,"src":"149776:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10273,"name":"bool","nodeType":"ElementaryTypeName","src":"149776:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10276,"mutability":"mutable","name":"p1","nameLocation":"149790:2:0","nodeType":"VariableDeclaration","scope":10295,"src":"149785:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10275,"name":"bool","nodeType":"ElementaryTypeName","src":"149785:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10278,"mutability":"mutable","name":"p2","nameLocation":"149802:2:0","nodeType":"VariableDeclaration","scope":10295,"src":"149794:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10277,"name":"address","nodeType":"ElementaryTypeName","src":"149794:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10280,"mutability":"mutable","name":"p3","nameLocation":"149811:2:0","nodeType":"VariableDeclaration","scope":10295,"src":"149806:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10279,"name":"bool","nodeType":"ElementaryTypeName","src":"149806:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"149775:39:0"},"returnParameters":{"id":10282,"nodeType":"ParameterList","parameters":[],"src":"149829:0:0"},"scope":12159,"src":"149763:170:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10317,"nodeType":"Block","src":"150008:107:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c616464726573732c6164647265737329","id":10309,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"150058:32:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_f4880ea4063b4f7e3c68468bb4a7a3f1502aa7497bce4fb0ba02ec0450f047f4","typeString":"literal_string \"log(bool,bool,address,address)\""},"value":"log(bool,bool,address,address)"},{"id":10310,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10297,"src":"150092:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10311,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10299,"src":"150096:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10312,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10301,"src":"150100:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10313,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10303,"src":"150104:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f4880ea4063b4f7e3c68468bb4a7a3f1502aa7497bce4fb0ba02ec0450f047f4","typeString":"literal_string \"log(bool,bool,address,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10307,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"150034:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10308,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"150038:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"150034:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"150034:73:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10306,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"150018:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"150018:90:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10316,"nodeType":"ExpressionStatement","src":"150018:90:0"}]},"id":10318,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"149948:3:0","nodeType":"FunctionDefinition","parameters":{"id":10304,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10297,"mutability":"mutable","name":"p0","nameLocation":"149957:2:0","nodeType":"VariableDeclaration","scope":10318,"src":"149952:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10296,"name":"bool","nodeType":"ElementaryTypeName","src":"149952:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10299,"mutability":"mutable","name":"p1","nameLocation":"149966:2:0","nodeType":"VariableDeclaration","scope":10318,"src":"149961:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10298,"name":"bool","nodeType":"ElementaryTypeName","src":"149961:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10301,"mutability":"mutable","name":"p2","nameLocation":"149978:2:0","nodeType":"VariableDeclaration","scope":10318,"src":"149970:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10300,"name":"address","nodeType":"ElementaryTypeName","src":"149970:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10303,"mutability":"mutable","name":"p3","nameLocation":"149990:2:0","nodeType":"VariableDeclaration","scope":10318,"src":"149982:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10302,"name":"address","nodeType":"ElementaryTypeName","src":"149982:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"149951:42:0"},"returnParameters":{"id":10305,"nodeType":"ParameterList","parameters":[],"src":"150008:0:0"},"scope":12159,"src":"149939:176:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10340,"nodeType":"Block","src":"150187:104:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c75696e742c75696e7429","id":10332,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"150237:29:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_9bfe72bcae17311bf78638487cb2635e8b5b6f81761042494681e890b65ae4df","typeString":"literal_string \"log(bool,address,uint,uint)\""},"value":"log(bool,address,uint,uint)"},{"id":10333,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10320,"src":"150268:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10334,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10322,"src":"150272:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10335,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10324,"src":"150276:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10336,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10326,"src":"150280:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9bfe72bcae17311bf78638487cb2635e8b5b6f81761042494681e890b65ae4df","typeString":"literal_string \"log(bool,address,uint,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10330,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"150213:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10331,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"150217:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"150213:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"150213:70:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10329,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"150197:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"150197:87:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10339,"nodeType":"ExpressionStatement","src":"150197:87:0"}]},"id":10341,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"150130:3:0","nodeType":"FunctionDefinition","parameters":{"id":10327,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10320,"mutability":"mutable","name":"p0","nameLocation":"150139:2:0","nodeType":"VariableDeclaration","scope":10341,"src":"150134:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10319,"name":"bool","nodeType":"ElementaryTypeName","src":"150134:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10322,"mutability":"mutable","name":"p1","nameLocation":"150151:2:0","nodeType":"VariableDeclaration","scope":10341,"src":"150143:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10321,"name":"address","nodeType":"ElementaryTypeName","src":"150143:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10324,"mutability":"mutable","name":"p2","nameLocation":"150160:2:0","nodeType":"VariableDeclaration","scope":10341,"src":"150155:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10323,"name":"uint","nodeType":"ElementaryTypeName","src":"150155:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10326,"mutability":"mutable","name":"p3","nameLocation":"150169:2:0","nodeType":"VariableDeclaration","scope":10341,"src":"150164:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10325,"name":"uint","nodeType":"ElementaryTypeName","src":"150164:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"150133:39:0"},"returnParameters":{"id":10328,"nodeType":"ParameterList","parameters":[],"src":"150187:0:0"},"scope":12159,"src":"150121:170:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10363,"nodeType":"Block","src":"150372:106:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c75696e742c737472696e6729","id":10355,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"150422:31:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_a0685833a55270d98fa68e8c0a0f64fe3e03f6cdaeaebd8f87342de905392f45","typeString":"literal_string \"log(bool,address,uint,string)\""},"value":"log(bool,address,uint,string)"},{"id":10356,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10343,"src":"150455:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10357,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10345,"src":"150459:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10358,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10347,"src":"150463:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10359,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10349,"src":"150467:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a0685833a55270d98fa68e8c0a0f64fe3e03f6cdaeaebd8f87342de905392f45","typeString":"literal_string \"log(bool,address,uint,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":10353,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"150398:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10354,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"150402:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"150398:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"150398:72:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10352,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"150382:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10361,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"150382:89:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10362,"nodeType":"ExpressionStatement","src":"150382:89:0"}]},"id":10364,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"150306:3:0","nodeType":"FunctionDefinition","parameters":{"id":10350,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10343,"mutability":"mutable","name":"p0","nameLocation":"150315:2:0","nodeType":"VariableDeclaration","scope":10364,"src":"150310:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10342,"name":"bool","nodeType":"ElementaryTypeName","src":"150310:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10345,"mutability":"mutable","name":"p1","nameLocation":"150327:2:0","nodeType":"VariableDeclaration","scope":10364,"src":"150319:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10344,"name":"address","nodeType":"ElementaryTypeName","src":"150319:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10347,"mutability":"mutable","name":"p2","nameLocation":"150336:2:0","nodeType":"VariableDeclaration","scope":10364,"src":"150331:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10346,"name":"uint","nodeType":"ElementaryTypeName","src":"150331:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10349,"mutability":"mutable","name":"p3","nameLocation":"150354:2:0","nodeType":"VariableDeclaration","scope":10364,"src":"150340:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10348,"name":"string","nodeType":"ElementaryTypeName","src":"150340:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"150309:48:0"},"returnParameters":{"id":10351,"nodeType":"ParameterList","parameters":[],"src":"150372:0:0"},"scope":12159,"src":"150297:181:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10386,"nodeType":"Block","src":"150550:104:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c75696e742c626f6f6c29","id":10378,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"150600:29:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_ee8d8672273fdba9089296874ea62335af7f94273edab558dd69c0c81ad5275f","typeString":"literal_string \"log(bool,address,uint,bool)\""},"value":"log(bool,address,uint,bool)"},{"id":10379,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10366,"src":"150631:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10380,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10368,"src":"150635:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10381,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10370,"src":"150639:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10382,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10372,"src":"150643:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ee8d8672273fdba9089296874ea62335af7f94273edab558dd69c0c81ad5275f","typeString":"literal_string \"log(bool,address,uint,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":10376,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"150576:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10377,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"150580:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"150576:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"150576:70:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10375,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"150560:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"150560:87:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10385,"nodeType":"ExpressionStatement","src":"150560:87:0"}]},"id":10387,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"150493:3:0","nodeType":"FunctionDefinition","parameters":{"id":10373,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10366,"mutability":"mutable","name":"p0","nameLocation":"150502:2:0","nodeType":"VariableDeclaration","scope":10387,"src":"150497:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10365,"name":"bool","nodeType":"ElementaryTypeName","src":"150497:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10368,"mutability":"mutable","name":"p1","nameLocation":"150514:2:0","nodeType":"VariableDeclaration","scope":10387,"src":"150506:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10367,"name":"address","nodeType":"ElementaryTypeName","src":"150506:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10370,"mutability":"mutable","name":"p2","nameLocation":"150523:2:0","nodeType":"VariableDeclaration","scope":10387,"src":"150518:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10369,"name":"uint","nodeType":"ElementaryTypeName","src":"150518:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10372,"mutability":"mutable","name":"p3","nameLocation":"150532:2:0","nodeType":"VariableDeclaration","scope":10387,"src":"150527:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10371,"name":"bool","nodeType":"ElementaryTypeName","src":"150527:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"150496:39:0"},"returnParameters":{"id":10374,"nodeType":"ParameterList","parameters":[],"src":"150550:0:0"},"scope":12159,"src":"150484:170:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10409,"nodeType":"Block","src":"150729:107:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c75696e742c6164647265737329","id":10401,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"150779:32:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_68f158b5f9bd826807d19c20c2d71bd298a10503195154a299bf8d64baa18687","typeString":"literal_string \"log(bool,address,uint,address)\""},"value":"log(bool,address,uint,address)"},{"id":10402,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10389,"src":"150813:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10403,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10391,"src":"150817:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10404,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10393,"src":"150821:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10405,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10395,"src":"150825:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_68f158b5f9bd826807d19c20c2d71bd298a10503195154a299bf8d64baa18687","typeString":"literal_string \"log(bool,address,uint,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10399,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"150755:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10400,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"150759:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"150755:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"150755:73:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10398,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"150739:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"150739:90:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10408,"nodeType":"ExpressionStatement","src":"150739:90:0"}]},"id":10410,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"150669:3:0","nodeType":"FunctionDefinition","parameters":{"id":10396,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10389,"mutability":"mutable","name":"p0","nameLocation":"150678:2:0","nodeType":"VariableDeclaration","scope":10410,"src":"150673:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10388,"name":"bool","nodeType":"ElementaryTypeName","src":"150673:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10391,"mutability":"mutable","name":"p1","nameLocation":"150690:2:0","nodeType":"VariableDeclaration","scope":10410,"src":"150682:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10390,"name":"address","nodeType":"ElementaryTypeName","src":"150682:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10393,"mutability":"mutable","name":"p2","nameLocation":"150699:2:0","nodeType":"VariableDeclaration","scope":10410,"src":"150694:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10392,"name":"uint","nodeType":"ElementaryTypeName","src":"150694:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10395,"mutability":"mutable","name":"p3","nameLocation":"150711:2:0","nodeType":"VariableDeclaration","scope":10410,"src":"150703:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10394,"name":"address","nodeType":"ElementaryTypeName","src":"150703:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"150672:42:0"},"returnParameters":{"id":10397,"nodeType":"ParameterList","parameters":[],"src":"150729:0:0"},"scope":12159,"src":"150660:176:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10432,"nodeType":"Block","src":"150917:106:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c737472696e672c75696e7429","id":10424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"150967:31:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_0b99fc2207222410afd35c7faf7feba54ff2367ba89f893584c27ce75693de6e","typeString":"literal_string \"log(bool,address,string,uint)\""},"value":"log(bool,address,string,uint)"},{"id":10425,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10412,"src":"151000:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10426,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10414,"src":"151004:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10427,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10416,"src":"151008:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10428,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10418,"src":"151012:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0b99fc2207222410afd35c7faf7feba54ff2367ba89f893584c27ce75693de6e","typeString":"literal_string \"log(bool,address,string,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10422,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"150943:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10423,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"150947:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"150943:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"150943:72:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10421,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"150927:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"150927:89:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10431,"nodeType":"ExpressionStatement","src":"150927:89:0"}]},"id":10433,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"150851:3:0","nodeType":"FunctionDefinition","parameters":{"id":10419,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10412,"mutability":"mutable","name":"p0","nameLocation":"150860:2:0","nodeType":"VariableDeclaration","scope":10433,"src":"150855:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10411,"name":"bool","nodeType":"ElementaryTypeName","src":"150855:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10414,"mutability":"mutable","name":"p1","nameLocation":"150872:2:0","nodeType":"VariableDeclaration","scope":10433,"src":"150864:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10413,"name":"address","nodeType":"ElementaryTypeName","src":"150864:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10416,"mutability":"mutable","name":"p2","nameLocation":"150890:2:0","nodeType":"VariableDeclaration","scope":10433,"src":"150876:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10415,"name":"string","nodeType":"ElementaryTypeName","src":"150876:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10418,"mutability":"mutable","name":"p3","nameLocation":"150899:2:0","nodeType":"VariableDeclaration","scope":10433,"src":"150894:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10417,"name":"uint","nodeType":"ElementaryTypeName","src":"150894:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"150854:48:0"},"returnParameters":{"id":10420,"nodeType":"ParameterList","parameters":[],"src":"150917:0:0"},"scope":12159,"src":"150842:181:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10455,"nodeType":"Block","src":"151113:108:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c737472696e672c737472696e6729","id":10447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"151163:33:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_a73c1db639dbf1382c9113eacdf5b14a7ccd81fc001ac60393623936011bf49d","typeString":"literal_string \"log(bool,address,string,string)\""},"value":"log(bool,address,string,string)"},{"id":10448,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10435,"src":"151198:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10449,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10437,"src":"151202:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10450,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10439,"src":"151206:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10451,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10441,"src":"151210:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a73c1db639dbf1382c9113eacdf5b14a7ccd81fc001ac60393623936011bf49d","typeString":"literal_string \"log(bool,address,string,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":10445,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"151139:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10446,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"151143:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"151139:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"151139:74:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10444,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"151123:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"151123:91:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10454,"nodeType":"ExpressionStatement","src":"151123:91:0"}]},"id":10456,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"151038:3:0","nodeType":"FunctionDefinition","parameters":{"id":10442,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10435,"mutability":"mutable","name":"p0","nameLocation":"151047:2:0","nodeType":"VariableDeclaration","scope":10456,"src":"151042:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10434,"name":"bool","nodeType":"ElementaryTypeName","src":"151042:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10437,"mutability":"mutable","name":"p1","nameLocation":"151059:2:0","nodeType":"VariableDeclaration","scope":10456,"src":"151051:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10436,"name":"address","nodeType":"ElementaryTypeName","src":"151051:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10439,"mutability":"mutable","name":"p2","nameLocation":"151077:2:0","nodeType":"VariableDeclaration","scope":10456,"src":"151063:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10438,"name":"string","nodeType":"ElementaryTypeName","src":"151063:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10441,"mutability":"mutable","name":"p3","nameLocation":"151095:2:0","nodeType":"VariableDeclaration","scope":10456,"src":"151081:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10440,"name":"string","nodeType":"ElementaryTypeName","src":"151081:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"151041:57:0"},"returnParameters":{"id":10443,"nodeType":"ParameterList","parameters":[],"src":"151113:0:0"},"scope":12159,"src":"151029:192:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10478,"nodeType":"Block","src":"151302:106:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c737472696e672c626f6f6c29","id":10470,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"151352:31:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e2bfd60b4f6acdab0603dda631b69bf37ab7cbf71bc5953f9ed72c1f2a76f7dc","typeString":"literal_string \"log(bool,address,string,bool)\""},"value":"log(bool,address,string,bool)"},{"id":10471,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10458,"src":"151385:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10472,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10460,"src":"151389:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10473,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10462,"src":"151393:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10474,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10464,"src":"151397:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e2bfd60b4f6acdab0603dda631b69bf37ab7cbf71bc5953f9ed72c1f2a76f7dc","typeString":"literal_string \"log(bool,address,string,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":10468,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"151328:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10469,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"151332:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"151328:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"151328:72:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10467,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"151312:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"151312:89:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10477,"nodeType":"ExpressionStatement","src":"151312:89:0"}]},"id":10479,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"151236:3:0","nodeType":"FunctionDefinition","parameters":{"id":10465,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10458,"mutability":"mutable","name":"p0","nameLocation":"151245:2:0","nodeType":"VariableDeclaration","scope":10479,"src":"151240:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10457,"name":"bool","nodeType":"ElementaryTypeName","src":"151240:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10460,"mutability":"mutable","name":"p1","nameLocation":"151257:2:0","nodeType":"VariableDeclaration","scope":10479,"src":"151249:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10459,"name":"address","nodeType":"ElementaryTypeName","src":"151249:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10462,"mutability":"mutable","name":"p2","nameLocation":"151275:2:0","nodeType":"VariableDeclaration","scope":10479,"src":"151261:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10461,"name":"string","nodeType":"ElementaryTypeName","src":"151261:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10464,"mutability":"mutable","name":"p3","nameLocation":"151284:2:0","nodeType":"VariableDeclaration","scope":10479,"src":"151279:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10463,"name":"bool","nodeType":"ElementaryTypeName","src":"151279:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"151239:48:0"},"returnParameters":{"id":10466,"nodeType":"ParameterList","parameters":[],"src":"151302:0:0"},"scope":12159,"src":"151227:181:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10501,"nodeType":"Block","src":"151492:109:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c737472696e672c6164647265737329","id":10493,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"151542:34:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_6f7c603e9035cbc7959bb3d44ec862ddc6711eecebd67d54ceb0010f42f85654","typeString":"literal_string \"log(bool,address,string,address)\""},"value":"log(bool,address,string,address)"},{"id":10494,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10481,"src":"151578:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10495,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10483,"src":"151582:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10496,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10485,"src":"151586:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10497,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10487,"src":"151590:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6f7c603e9035cbc7959bb3d44ec862ddc6711eecebd67d54ceb0010f42f85654","typeString":"literal_string \"log(bool,address,string,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10491,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"151518:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10492,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"151522:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"151518:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"151518:75:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10490,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"151502:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"151502:92:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10500,"nodeType":"ExpressionStatement","src":"151502:92:0"}]},"id":10502,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"151423:3:0","nodeType":"FunctionDefinition","parameters":{"id":10488,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10481,"mutability":"mutable","name":"p0","nameLocation":"151432:2:0","nodeType":"VariableDeclaration","scope":10502,"src":"151427:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10480,"name":"bool","nodeType":"ElementaryTypeName","src":"151427:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10483,"mutability":"mutable","name":"p1","nameLocation":"151444:2:0","nodeType":"VariableDeclaration","scope":10502,"src":"151436:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10482,"name":"address","nodeType":"ElementaryTypeName","src":"151436:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10485,"mutability":"mutable","name":"p2","nameLocation":"151462:2:0","nodeType":"VariableDeclaration","scope":10502,"src":"151448:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10484,"name":"string","nodeType":"ElementaryTypeName","src":"151448:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10487,"mutability":"mutable","name":"p3","nameLocation":"151474:2:0","nodeType":"VariableDeclaration","scope":10502,"src":"151466:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10486,"name":"address","nodeType":"ElementaryTypeName","src":"151466:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"151426:51:0"},"returnParameters":{"id":10489,"nodeType":"ParameterList","parameters":[],"src":"151492:0:0"},"scope":12159,"src":"151414:187:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10524,"nodeType":"Block","src":"151673:104:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c626f6f6c2c75696e7429","id":10516,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"151723:29:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_4cb60fd1171fb665e1565124463601e5c451a362c8efbc6e1fcfbffbbb9850d9","typeString":"literal_string \"log(bool,address,bool,uint)\""},"value":"log(bool,address,bool,uint)"},{"id":10517,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10504,"src":"151754:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10518,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10506,"src":"151758:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10519,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"151762:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10520,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10510,"src":"151766:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4cb60fd1171fb665e1565124463601e5c451a362c8efbc6e1fcfbffbbb9850d9","typeString":"literal_string \"log(bool,address,bool,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10514,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"151699:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10515,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"151703:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"151699:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"151699:70:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10513,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"151683:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"151683:87:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10523,"nodeType":"ExpressionStatement","src":"151683:87:0"}]},"id":10525,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"151616:3:0","nodeType":"FunctionDefinition","parameters":{"id":10511,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10504,"mutability":"mutable","name":"p0","nameLocation":"151625:2:0","nodeType":"VariableDeclaration","scope":10525,"src":"151620:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10503,"name":"bool","nodeType":"ElementaryTypeName","src":"151620:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10506,"mutability":"mutable","name":"p1","nameLocation":"151637:2:0","nodeType":"VariableDeclaration","scope":10525,"src":"151629:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10505,"name":"address","nodeType":"ElementaryTypeName","src":"151629:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10508,"mutability":"mutable","name":"p2","nameLocation":"151646:2:0","nodeType":"VariableDeclaration","scope":10525,"src":"151641:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10507,"name":"bool","nodeType":"ElementaryTypeName","src":"151641:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10510,"mutability":"mutable","name":"p3","nameLocation":"151655:2:0","nodeType":"VariableDeclaration","scope":10525,"src":"151650:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10509,"name":"uint","nodeType":"ElementaryTypeName","src":"151650:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"151619:39:0"},"returnParameters":{"id":10512,"nodeType":"ParameterList","parameters":[],"src":"151673:0:0"},"scope":12159,"src":"151607:170:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10547,"nodeType":"Block","src":"151858:106:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c626f6f6c2c737472696e6729","id":10539,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"151908:31:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_4a66cb34796065525d301a5b87b440b55f1936e34dd66e2f2039307bc4e3ea59","typeString":"literal_string \"log(bool,address,bool,string)\""},"value":"log(bool,address,bool,string)"},{"id":10540,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10527,"src":"151941:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10541,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10529,"src":"151945:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10542,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10531,"src":"151949:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10543,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10533,"src":"151953:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4a66cb34796065525d301a5b87b440b55f1936e34dd66e2f2039307bc4e3ea59","typeString":"literal_string \"log(bool,address,bool,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":10537,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"151884:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10538,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"151888:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"151884:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"151884:72:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10536,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"151868:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"151868:89:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10546,"nodeType":"ExpressionStatement","src":"151868:89:0"}]},"id":10548,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"151792:3:0","nodeType":"FunctionDefinition","parameters":{"id":10534,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10527,"mutability":"mutable","name":"p0","nameLocation":"151801:2:0","nodeType":"VariableDeclaration","scope":10548,"src":"151796:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10526,"name":"bool","nodeType":"ElementaryTypeName","src":"151796:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10529,"mutability":"mutable","name":"p1","nameLocation":"151813:2:0","nodeType":"VariableDeclaration","scope":10548,"src":"151805:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10528,"name":"address","nodeType":"ElementaryTypeName","src":"151805:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10531,"mutability":"mutable","name":"p2","nameLocation":"151822:2:0","nodeType":"VariableDeclaration","scope":10548,"src":"151817:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10530,"name":"bool","nodeType":"ElementaryTypeName","src":"151817:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10533,"mutability":"mutable","name":"p3","nameLocation":"151840:2:0","nodeType":"VariableDeclaration","scope":10548,"src":"151826:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10532,"name":"string","nodeType":"ElementaryTypeName","src":"151826:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"151795:48:0"},"returnParameters":{"id":10535,"nodeType":"ParameterList","parameters":[],"src":"151858:0:0"},"scope":12159,"src":"151783:181:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10570,"nodeType":"Block","src":"152036:104:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c626f6f6c2c626f6f6c29","id":10562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"152086:29:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_6a9c478bc98300d44308882e2e0b5864f2536a2939cb77105f503738b5832577","typeString":"literal_string \"log(bool,address,bool,bool)\""},"value":"log(bool,address,bool,bool)"},{"id":10563,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10550,"src":"152117:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10564,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10552,"src":"152121:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10565,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10554,"src":"152125:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10566,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10556,"src":"152129:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6a9c478bc98300d44308882e2e0b5864f2536a2939cb77105f503738b5832577","typeString":"literal_string \"log(bool,address,bool,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":10560,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"152062:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10561,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"152066:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"152062:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"152062:70:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10559,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"152046:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"152046:87:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10569,"nodeType":"ExpressionStatement","src":"152046:87:0"}]},"id":10571,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"151979:3:0","nodeType":"FunctionDefinition","parameters":{"id":10557,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10550,"mutability":"mutable","name":"p0","nameLocation":"151988:2:0","nodeType":"VariableDeclaration","scope":10571,"src":"151983:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10549,"name":"bool","nodeType":"ElementaryTypeName","src":"151983:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10552,"mutability":"mutable","name":"p1","nameLocation":"152000:2:0","nodeType":"VariableDeclaration","scope":10571,"src":"151992:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10551,"name":"address","nodeType":"ElementaryTypeName","src":"151992:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10554,"mutability":"mutable","name":"p2","nameLocation":"152009:2:0","nodeType":"VariableDeclaration","scope":10571,"src":"152004:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10553,"name":"bool","nodeType":"ElementaryTypeName","src":"152004:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10556,"mutability":"mutable","name":"p3","nameLocation":"152018:2:0","nodeType":"VariableDeclaration","scope":10571,"src":"152013:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10555,"name":"bool","nodeType":"ElementaryTypeName","src":"152013:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"151982:39:0"},"returnParameters":{"id":10558,"nodeType":"ParameterList","parameters":[],"src":"152036:0:0"},"scope":12159,"src":"151970:170:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10593,"nodeType":"Block","src":"152215:107:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c626f6f6c2c6164647265737329","id":10585,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"152265:32:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_1c41a336759f1c2fe1d8b137296b2dfbdcfe7114fc53f203852c2835c09f8870","typeString":"literal_string \"log(bool,address,bool,address)\""},"value":"log(bool,address,bool,address)"},{"id":10586,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10573,"src":"152299:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10587,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10575,"src":"152303:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10588,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10577,"src":"152307:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10589,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10579,"src":"152311:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1c41a336759f1c2fe1d8b137296b2dfbdcfe7114fc53f203852c2835c09f8870","typeString":"literal_string \"log(bool,address,bool,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10583,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"152241:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10584,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"152245:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"152241:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"152241:73:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10582,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"152225:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"152225:90:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10592,"nodeType":"ExpressionStatement","src":"152225:90:0"}]},"id":10594,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"152155:3:0","nodeType":"FunctionDefinition","parameters":{"id":10580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10573,"mutability":"mutable","name":"p0","nameLocation":"152164:2:0","nodeType":"VariableDeclaration","scope":10594,"src":"152159:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10572,"name":"bool","nodeType":"ElementaryTypeName","src":"152159:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10575,"mutability":"mutable","name":"p1","nameLocation":"152176:2:0","nodeType":"VariableDeclaration","scope":10594,"src":"152168:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10574,"name":"address","nodeType":"ElementaryTypeName","src":"152168:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10577,"mutability":"mutable","name":"p2","nameLocation":"152185:2:0","nodeType":"VariableDeclaration","scope":10594,"src":"152180:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10576,"name":"bool","nodeType":"ElementaryTypeName","src":"152180:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10579,"mutability":"mutable","name":"p3","nameLocation":"152197:2:0","nodeType":"VariableDeclaration","scope":10594,"src":"152189:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10578,"name":"address","nodeType":"ElementaryTypeName","src":"152189:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"152158:42:0"},"returnParameters":{"id":10581,"nodeType":"ParameterList","parameters":[],"src":"152215:0:0"},"scope":12159,"src":"152146:176:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10616,"nodeType":"Block","src":"152397:107:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c616464726573732c75696e7429","id":10608,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"152447:32:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_5284bd6c2d02d32d79d43dcd0793be5ced63bf4e51bea38208974f6d8ca5def7","typeString":"literal_string \"log(bool,address,address,uint)\""},"value":"log(bool,address,address,uint)"},{"id":10609,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10596,"src":"152481:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10610,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10598,"src":"152485:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10611,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10600,"src":"152489:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10612,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10602,"src":"152493:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5284bd6c2d02d32d79d43dcd0793be5ced63bf4e51bea38208974f6d8ca5def7","typeString":"literal_string \"log(bool,address,address,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10606,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"152423:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10607,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"152427:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"152423:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"152423:73:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10605,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"152407:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"152407:90:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10615,"nodeType":"ExpressionStatement","src":"152407:90:0"}]},"id":10617,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"152337:3:0","nodeType":"FunctionDefinition","parameters":{"id":10603,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10596,"mutability":"mutable","name":"p0","nameLocation":"152346:2:0","nodeType":"VariableDeclaration","scope":10617,"src":"152341:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10595,"name":"bool","nodeType":"ElementaryTypeName","src":"152341:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10598,"mutability":"mutable","name":"p1","nameLocation":"152358:2:0","nodeType":"VariableDeclaration","scope":10617,"src":"152350:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10597,"name":"address","nodeType":"ElementaryTypeName","src":"152350:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10600,"mutability":"mutable","name":"p2","nameLocation":"152370:2:0","nodeType":"VariableDeclaration","scope":10617,"src":"152362:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10599,"name":"address","nodeType":"ElementaryTypeName","src":"152362:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10602,"mutability":"mutable","name":"p3","nameLocation":"152379:2:0","nodeType":"VariableDeclaration","scope":10617,"src":"152374:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10601,"name":"uint","nodeType":"ElementaryTypeName","src":"152374:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"152340:42:0"},"returnParameters":{"id":10604,"nodeType":"ParameterList","parameters":[],"src":"152397:0:0"},"scope":12159,"src":"152328:176:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10639,"nodeType":"Block","src":"152588:109:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c616464726573732c737472696e6729","id":10631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"152638:34:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_d812a167fb7ec8cf55a11f06ff411238f0a431de331592d8a735c8c8481f7432","typeString":"literal_string \"log(bool,address,address,string)\""},"value":"log(bool,address,address,string)"},{"id":10632,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10619,"src":"152674:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10633,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10621,"src":"152678:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10634,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10623,"src":"152682:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10635,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10625,"src":"152686:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d812a167fb7ec8cf55a11f06ff411238f0a431de331592d8a735c8c8481f7432","typeString":"literal_string \"log(bool,address,address,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":10629,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"152614:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10630,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"152618:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"152614:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"152614:75:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10628,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"152598:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"152598:92:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10638,"nodeType":"ExpressionStatement","src":"152598:92:0"}]},"id":10640,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"152519:3:0","nodeType":"FunctionDefinition","parameters":{"id":10626,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10619,"mutability":"mutable","name":"p0","nameLocation":"152528:2:0","nodeType":"VariableDeclaration","scope":10640,"src":"152523:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10618,"name":"bool","nodeType":"ElementaryTypeName","src":"152523:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10621,"mutability":"mutable","name":"p1","nameLocation":"152540:2:0","nodeType":"VariableDeclaration","scope":10640,"src":"152532:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10620,"name":"address","nodeType":"ElementaryTypeName","src":"152532:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10623,"mutability":"mutable","name":"p2","nameLocation":"152552:2:0","nodeType":"VariableDeclaration","scope":10640,"src":"152544:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10622,"name":"address","nodeType":"ElementaryTypeName","src":"152544:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10625,"mutability":"mutable","name":"p3","nameLocation":"152570:2:0","nodeType":"VariableDeclaration","scope":10640,"src":"152556:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10624,"name":"string","nodeType":"ElementaryTypeName","src":"152556:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"152522:51:0"},"returnParameters":{"id":10627,"nodeType":"ParameterList","parameters":[],"src":"152588:0:0"},"scope":12159,"src":"152510:187:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10662,"nodeType":"Block","src":"152772:107:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c616464726573732c626f6f6c29","id":10654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"152822:32:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_46600be071bbf2a7e3a3cb4fd0e6efe39e86453e4c4a27c400470867be7afd9e","typeString":"literal_string \"log(bool,address,address,bool)\""},"value":"log(bool,address,address,bool)"},{"id":10655,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10642,"src":"152856:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10656,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10644,"src":"152860:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10657,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10646,"src":"152864:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10658,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10648,"src":"152868:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_46600be071bbf2a7e3a3cb4fd0e6efe39e86453e4c4a27c400470867be7afd9e","typeString":"literal_string \"log(bool,address,address,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":10652,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"152798:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10653,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"152802:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"152798:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"152798:73:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10651,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"152782:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"152782:90:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10661,"nodeType":"ExpressionStatement","src":"152782:90:0"}]},"id":10663,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"152712:3:0","nodeType":"FunctionDefinition","parameters":{"id":10649,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10642,"mutability":"mutable","name":"p0","nameLocation":"152721:2:0","nodeType":"VariableDeclaration","scope":10663,"src":"152716:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10641,"name":"bool","nodeType":"ElementaryTypeName","src":"152716:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10644,"mutability":"mutable","name":"p1","nameLocation":"152733:2:0","nodeType":"VariableDeclaration","scope":10663,"src":"152725:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10643,"name":"address","nodeType":"ElementaryTypeName","src":"152725:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10646,"mutability":"mutable","name":"p2","nameLocation":"152745:2:0","nodeType":"VariableDeclaration","scope":10663,"src":"152737:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10645,"name":"address","nodeType":"ElementaryTypeName","src":"152737:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10648,"mutability":"mutable","name":"p3","nameLocation":"152754:2:0","nodeType":"VariableDeclaration","scope":10663,"src":"152749:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10647,"name":"bool","nodeType":"ElementaryTypeName","src":"152749:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"152715:42:0"},"returnParameters":{"id":10650,"nodeType":"ParameterList","parameters":[],"src":"152772:0:0"},"scope":12159,"src":"152703:176:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10685,"nodeType":"Block","src":"152957:110:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c616464726573732c6164647265737329","id":10677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"153007:35:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_1d14d00189540d88098b9fe614aa8c0efbe231c1a0fee05e7d705c0342377123","typeString":"literal_string \"log(bool,address,address,address)\""},"value":"log(bool,address,address,address)"},{"id":10678,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10665,"src":"153044:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10679,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10667,"src":"153048:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10680,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10669,"src":"153052:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10681,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10671,"src":"153056:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1d14d00189540d88098b9fe614aa8c0efbe231c1a0fee05e7d705c0342377123","typeString":"literal_string \"log(bool,address,address,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10675,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"152983:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10676,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"152987:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"152983:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"152983:76:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10674,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"152967:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"152967:93:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10684,"nodeType":"ExpressionStatement","src":"152967:93:0"}]},"id":10686,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"152894:3:0","nodeType":"FunctionDefinition","parameters":{"id":10672,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10665,"mutability":"mutable","name":"p0","nameLocation":"152903:2:0","nodeType":"VariableDeclaration","scope":10686,"src":"152898:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10664,"name":"bool","nodeType":"ElementaryTypeName","src":"152898:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10667,"mutability":"mutable","name":"p1","nameLocation":"152915:2:0","nodeType":"VariableDeclaration","scope":10686,"src":"152907:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10666,"name":"address","nodeType":"ElementaryTypeName","src":"152907:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10669,"mutability":"mutable","name":"p2","nameLocation":"152927:2:0","nodeType":"VariableDeclaration","scope":10686,"src":"152919:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10668,"name":"address","nodeType":"ElementaryTypeName","src":"152919:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10671,"mutability":"mutable","name":"p3","nameLocation":"152939:2:0","nodeType":"VariableDeclaration","scope":10686,"src":"152931:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10670,"name":"address","nodeType":"ElementaryTypeName","src":"152931:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"152897:45:0"},"returnParameters":{"id":10673,"nodeType":"ParameterList","parameters":[],"src":"152957:0:0"},"scope":12159,"src":"152885:182:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10708,"nodeType":"Block","src":"153139:104:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e742c75696e742c75696e7429","id":10700,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"153189:29:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_3d0e9de46a80fe11d0044e9599dfddd0e8b842cabe189638f7090f19867918c1","typeString":"literal_string \"log(address,uint,uint,uint)\""},"value":"log(address,uint,uint,uint)"},{"id":10701,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10688,"src":"153220:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10702,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10690,"src":"153224:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10703,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10692,"src":"153228:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10704,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10694,"src":"153232:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3d0e9de46a80fe11d0044e9599dfddd0e8b842cabe189638f7090f19867918c1","typeString":"literal_string \"log(address,uint,uint,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10698,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"153165:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10699,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"153169:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"153165:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"153165:70:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10697,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"153149:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"153149:87:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10707,"nodeType":"ExpressionStatement","src":"153149:87:0"}]},"id":10709,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"153082:3:0","nodeType":"FunctionDefinition","parameters":{"id":10695,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10688,"mutability":"mutable","name":"p0","nameLocation":"153094:2:0","nodeType":"VariableDeclaration","scope":10709,"src":"153086:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10687,"name":"address","nodeType":"ElementaryTypeName","src":"153086:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10690,"mutability":"mutable","name":"p1","nameLocation":"153103:2:0","nodeType":"VariableDeclaration","scope":10709,"src":"153098:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10689,"name":"uint","nodeType":"ElementaryTypeName","src":"153098:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10692,"mutability":"mutable","name":"p2","nameLocation":"153112:2:0","nodeType":"VariableDeclaration","scope":10709,"src":"153107:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10691,"name":"uint","nodeType":"ElementaryTypeName","src":"153107:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10694,"mutability":"mutable","name":"p3","nameLocation":"153121:2:0","nodeType":"VariableDeclaration","scope":10709,"src":"153116:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10693,"name":"uint","nodeType":"ElementaryTypeName","src":"153116:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"153085:39:0"},"returnParameters":{"id":10696,"nodeType":"ParameterList","parameters":[],"src":"153139:0:0"},"scope":12159,"src":"153073:170:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10731,"nodeType":"Block","src":"153324:106:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e742c75696e742c737472696e6729","id":10723,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"153374:31:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_89340dab4d23e956541beb32775ccfee8376ba263886dd811a646420a3a403a3","typeString":"literal_string \"log(address,uint,uint,string)\""},"value":"log(address,uint,uint,string)"},{"id":10724,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10711,"src":"153407:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10725,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10713,"src":"153411:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10726,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10715,"src":"153415:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10727,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10717,"src":"153419:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_89340dab4d23e956541beb32775ccfee8376ba263886dd811a646420a3a403a3","typeString":"literal_string \"log(address,uint,uint,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":10721,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"153350:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10722,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"153354:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"153350:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"153350:72:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10720,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"153334:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"153334:89:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10730,"nodeType":"ExpressionStatement","src":"153334:89:0"}]},"id":10732,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"153258:3:0","nodeType":"FunctionDefinition","parameters":{"id":10718,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10711,"mutability":"mutable","name":"p0","nameLocation":"153270:2:0","nodeType":"VariableDeclaration","scope":10732,"src":"153262:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10710,"name":"address","nodeType":"ElementaryTypeName","src":"153262:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10713,"mutability":"mutable","name":"p1","nameLocation":"153279:2:0","nodeType":"VariableDeclaration","scope":10732,"src":"153274:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10712,"name":"uint","nodeType":"ElementaryTypeName","src":"153274:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10715,"mutability":"mutable","name":"p2","nameLocation":"153288:2:0","nodeType":"VariableDeclaration","scope":10732,"src":"153283:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10714,"name":"uint","nodeType":"ElementaryTypeName","src":"153283:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10717,"mutability":"mutable","name":"p3","nameLocation":"153306:2:0","nodeType":"VariableDeclaration","scope":10732,"src":"153292:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10716,"name":"string","nodeType":"ElementaryTypeName","src":"153292:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"153261:48:0"},"returnParameters":{"id":10719,"nodeType":"ParameterList","parameters":[],"src":"153324:0:0"},"scope":12159,"src":"153249:181:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10754,"nodeType":"Block","src":"153502:104:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e742c75696e742c626f6f6c29","id":10746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"153552:29:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_ec4ba8a24543362f628480c68bc2d6749e97ab33d46530db336a528c77e48393","typeString":"literal_string \"log(address,uint,uint,bool)\""},"value":"log(address,uint,uint,bool)"},{"id":10747,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10734,"src":"153583:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10748,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10736,"src":"153587:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10749,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10738,"src":"153591:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10750,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10740,"src":"153595:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ec4ba8a24543362f628480c68bc2d6749e97ab33d46530db336a528c77e48393","typeString":"literal_string \"log(address,uint,uint,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":10744,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"153528:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10745,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"153532:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"153528:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"153528:70:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10743,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"153512:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"153512:87:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10753,"nodeType":"ExpressionStatement","src":"153512:87:0"}]},"id":10755,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"153445:3:0","nodeType":"FunctionDefinition","parameters":{"id":10741,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10734,"mutability":"mutable","name":"p0","nameLocation":"153457:2:0","nodeType":"VariableDeclaration","scope":10755,"src":"153449:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10733,"name":"address","nodeType":"ElementaryTypeName","src":"153449:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10736,"mutability":"mutable","name":"p1","nameLocation":"153466:2:0","nodeType":"VariableDeclaration","scope":10755,"src":"153461:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10735,"name":"uint","nodeType":"ElementaryTypeName","src":"153461:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10738,"mutability":"mutable","name":"p2","nameLocation":"153475:2:0","nodeType":"VariableDeclaration","scope":10755,"src":"153470:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10737,"name":"uint","nodeType":"ElementaryTypeName","src":"153470:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10740,"mutability":"mutable","name":"p3","nameLocation":"153484:2:0","nodeType":"VariableDeclaration","scope":10755,"src":"153479:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10739,"name":"bool","nodeType":"ElementaryTypeName","src":"153479:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"153448:39:0"},"returnParameters":{"id":10742,"nodeType":"ParameterList","parameters":[],"src":"153502:0:0"},"scope":12159,"src":"153436:170:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10777,"nodeType":"Block","src":"153681:107:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e742c75696e742c6164647265737329","id":10769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"153731:32:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_1ef634347c2e4a2aa1a4e4e13d33bf0169f02bc4d10ff6168ca604cf3134d957","typeString":"literal_string \"log(address,uint,uint,address)\""},"value":"log(address,uint,uint,address)"},{"id":10770,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10757,"src":"153765:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10771,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10759,"src":"153769:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10772,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10761,"src":"153773:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10773,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10763,"src":"153777:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1ef634347c2e4a2aa1a4e4e13d33bf0169f02bc4d10ff6168ca604cf3134d957","typeString":"literal_string \"log(address,uint,uint,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10767,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"153707:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10768,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"153711:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"153707:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"153707:73:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10766,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"153691:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"153691:90:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10776,"nodeType":"ExpressionStatement","src":"153691:90:0"}]},"id":10778,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"153621:3:0","nodeType":"FunctionDefinition","parameters":{"id":10764,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10757,"mutability":"mutable","name":"p0","nameLocation":"153633:2:0","nodeType":"VariableDeclaration","scope":10778,"src":"153625:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10756,"name":"address","nodeType":"ElementaryTypeName","src":"153625:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10759,"mutability":"mutable","name":"p1","nameLocation":"153642:2:0","nodeType":"VariableDeclaration","scope":10778,"src":"153637:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10758,"name":"uint","nodeType":"ElementaryTypeName","src":"153637:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10761,"mutability":"mutable","name":"p2","nameLocation":"153651:2:0","nodeType":"VariableDeclaration","scope":10778,"src":"153646:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10760,"name":"uint","nodeType":"ElementaryTypeName","src":"153646:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10763,"mutability":"mutable","name":"p3","nameLocation":"153663:2:0","nodeType":"VariableDeclaration","scope":10778,"src":"153655:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10762,"name":"address","nodeType":"ElementaryTypeName","src":"153655:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"153624:42:0"},"returnParameters":{"id":10765,"nodeType":"ParameterList","parameters":[],"src":"153681:0:0"},"scope":12159,"src":"153612:176:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10800,"nodeType":"Block","src":"153869:106:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e742c737472696e672c75696e7429","id":10792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"153919:31:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_f512cf9b6f6b16313e82164dab4a017b25c36dde729112fd1b69de438557701b","typeString":"literal_string \"log(address,uint,string,uint)\""},"value":"log(address,uint,string,uint)"},{"id":10793,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10780,"src":"153952:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10794,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10782,"src":"153956:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10795,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10784,"src":"153960:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10796,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10786,"src":"153964:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f512cf9b6f6b16313e82164dab4a017b25c36dde729112fd1b69de438557701b","typeString":"literal_string \"log(address,uint,string,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10790,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"153895:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10791,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"153899:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"153895:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"153895:72:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10789,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"153879:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"153879:89:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10799,"nodeType":"ExpressionStatement","src":"153879:89:0"}]},"id":10801,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"153803:3:0","nodeType":"FunctionDefinition","parameters":{"id":10787,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10780,"mutability":"mutable","name":"p0","nameLocation":"153815:2:0","nodeType":"VariableDeclaration","scope":10801,"src":"153807:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10779,"name":"address","nodeType":"ElementaryTypeName","src":"153807:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10782,"mutability":"mutable","name":"p1","nameLocation":"153824:2:0","nodeType":"VariableDeclaration","scope":10801,"src":"153819:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10781,"name":"uint","nodeType":"ElementaryTypeName","src":"153819:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10784,"mutability":"mutable","name":"p2","nameLocation":"153842:2:0","nodeType":"VariableDeclaration","scope":10801,"src":"153828:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10783,"name":"string","nodeType":"ElementaryTypeName","src":"153828:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10786,"mutability":"mutable","name":"p3","nameLocation":"153851:2:0","nodeType":"VariableDeclaration","scope":10801,"src":"153846:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10785,"name":"uint","nodeType":"ElementaryTypeName","src":"153846:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"153806:48:0"},"returnParameters":{"id":10788,"nodeType":"ParameterList","parameters":[],"src":"153869:0:0"},"scope":12159,"src":"153794:181:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10823,"nodeType":"Block","src":"154065:108:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e742c737472696e672c737472696e6729","id":10815,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"154115:33:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_7e56c693294848e354fd0e0f30db9c459984681d518306ec606cfd6f328a5ba0","typeString":"literal_string \"log(address,uint,string,string)\""},"value":"log(address,uint,string,string)"},{"id":10816,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10803,"src":"154150:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10817,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10805,"src":"154154:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10818,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10807,"src":"154158:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10819,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10809,"src":"154162:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7e56c693294848e354fd0e0f30db9c459984681d518306ec606cfd6f328a5ba0","typeString":"literal_string \"log(address,uint,string,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":10813,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"154091:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10814,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"154095:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"154091:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"154091:74:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10812,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"154075:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"154075:91:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10822,"nodeType":"ExpressionStatement","src":"154075:91:0"}]},"id":10824,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"153990:3:0","nodeType":"FunctionDefinition","parameters":{"id":10810,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10803,"mutability":"mutable","name":"p0","nameLocation":"154002:2:0","nodeType":"VariableDeclaration","scope":10824,"src":"153994:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10802,"name":"address","nodeType":"ElementaryTypeName","src":"153994:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10805,"mutability":"mutable","name":"p1","nameLocation":"154011:2:0","nodeType":"VariableDeclaration","scope":10824,"src":"154006:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10804,"name":"uint","nodeType":"ElementaryTypeName","src":"154006:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10807,"mutability":"mutable","name":"p2","nameLocation":"154029:2:0","nodeType":"VariableDeclaration","scope":10824,"src":"154015:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10806,"name":"string","nodeType":"ElementaryTypeName","src":"154015:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10809,"mutability":"mutable","name":"p3","nameLocation":"154047:2:0","nodeType":"VariableDeclaration","scope":10824,"src":"154033:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10808,"name":"string","nodeType":"ElementaryTypeName","src":"154033:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"153993:57:0"},"returnParameters":{"id":10811,"nodeType":"ParameterList","parameters":[],"src":"154065:0:0"},"scope":12159,"src":"153981:192:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10846,"nodeType":"Block","src":"154254:106:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e742c737472696e672c626f6f6c29","id":10838,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"154304:31:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_a4024f1195637e9b9bd0fa746905cf1693b1e0cd3e1c717a1cbc5279763b256a","typeString":"literal_string \"log(address,uint,string,bool)\""},"value":"log(address,uint,string,bool)"},{"id":10839,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10826,"src":"154337:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10840,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10828,"src":"154341:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10841,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10830,"src":"154345:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10842,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10832,"src":"154349:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a4024f1195637e9b9bd0fa746905cf1693b1e0cd3e1c717a1cbc5279763b256a","typeString":"literal_string \"log(address,uint,string,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":10836,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"154280:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10837,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"154284:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"154280:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"154280:72:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10835,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"154264:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"154264:89:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10845,"nodeType":"ExpressionStatement","src":"154264:89:0"}]},"id":10847,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"154188:3:0","nodeType":"FunctionDefinition","parameters":{"id":10833,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10826,"mutability":"mutable","name":"p0","nameLocation":"154200:2:0","nodeType":"VariableDeclaration","scope":10847,"src":"154192:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10825,"name":"address","nodeType":"ElementaryTypeName","src":"154192:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10828,"mutability":"mutable","name":"p1","nameLocation":"154209:2:0","nodeType":"VariableDeclaration","scope":10847,"src":"154204:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10827,"name":"uint","nodeType":"ElementaryTypeName","src":"154204:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10830,"mutability":"mutable","name":"p2","nameLocation":"154227:2:0","nodeType":"VariableDeclaration","scope":10847,"src":"154213:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10829,"name":"string","nodeType":"ElementaryTypeName","src":"154213:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10832,"mutability":"mutable","name":"p3","nameLocation":"154236:2:0","nodeType":"VariableDeclaration","scope":10847,"src":"154231:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10831,"name":"bool","nodeType":"ElementaryTypeName","src":"154231:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"154191:48:0"},"returnParameters":{"id":10834,"nodeType":"ParameterList","parameters":[],"src":"154254:0:0"},"scope":12159,"src":"154179:181:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10869,"nodeType":"Block","src":"154444:109:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e742c737472696e672c6164647265737329","id":10861,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"154494:34:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_dc792604099307de53721f0c554f3059214ac3d8d1f6cd01cd16cf188835e809","typeString":"literal_string \"log(address,uint,string,address)\""},"value":"log(address,uint,string,address)"},{"id":10862,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10849,"src":"154530:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10863,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10851,"src":"154534:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10864,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10853,"src":"154538:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10865,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10855,"src":"154542:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_dc792604099307de53721f0c554f3059214ac3d8d1f6cd01cd16cf188835e809","typeString":"literal_string \"log(address,uint,string,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10859,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"154470:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10860,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"154474:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"154470:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"154470:75:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10858,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"154454:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"154454:92:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10868,"nodeType":"ExpressionStatement","src":"154454:92:0"}]},"id":10870,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"154375:3:0","nodeType":"FunctionDefinition","parameters":{"id":10856,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10849,"mutability":"mutable","name":"p0","nameLocation":"154387:2:0","nodeType":"VariableDeclaration","scope":10870,"src":"154379:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10848,"name":"address","nodeType":"ElementaryTypeName","src":"154379:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10851,"mutability":"mutable","name":"p1","nameLocation":"154396:2:0","nodeType":"VariableDeclaration","scope":10870,"src":"154391:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10850,"name":"uint","nodeType":"ElementaryTypeName","src":"154391:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10853,"mutability":"mutable","name":"p2","nameLocation":"154414:2:0","nodeType":"VariableDeclaration","scope":10870,"src":"154400:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10852,"name":"string","nodeType":"ElementaryTypeName","src":"154400:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10855,"mutability":"mutable","name":"p3","nameLocation":"154426:2:0","nodeType":"VariableDeclaration","scope":10870,"src":"154418:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10854,"name":"address","nodeType":"ElementaryTypeName","src":"154418:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"154378:51:0"},"returnParameters":{"id":10857,"nodeType":"ParameterList","parameters":[],"src":"154444:0:0"},"scope":12159,"src":"154366:187:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10892,"nodeType":"Block","src":"154625:104:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e742c626f6f6c2c75696e7429","id":10884,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"154675:29:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_698f43923a9354f67c861ae1c111970990b11c7f948743e5f44d6ea901e7f1a2","typeString":"literal_string \"log(address,uint,bool,uint)\""},"value":"log(address,uint,bool,uint)"},{"id":10885,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10872,"src":"154706:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10886,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10874,"src":"154710:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10887,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10876,"src":"154714:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10888,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10878,"src":"154718:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_698f43923a9354f67c861ae1c111970990b11c7f948743e5f44d6ea901e7f1a2","typeString":"literal_string \"log(address,uint,bool,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10882,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"154651:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10883,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"154655:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"154651:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"154651:70:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10881,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"154635:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"154635:87:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10891,"nodeType":"ExpressionStatement","src":"154635:87:0"}]},"id":10893,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"154568:3:0","nodeType":"FunctionDefinition","parameters":{"id":10879,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10872,"mutability":"mutable","name":"p0","nameLocation":"154580:2:0","nodeType":"VariableDeclaration","scope":10893,"src":"154572:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10871,"name":"address","nodeType":"ElementaryTypeName","src":"154572:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10874,"mutability":"mutable","name":"p1","nameLocation":"154589:2:0","nodeType":"VariableDeclaration","scope":10893,"src":"154584:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10873,"name":"uint","nodeType":"ElementaryTypeName","src":"154584:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10876,"mutability":"mutable","name":"p2","nameLocation":"154598:2:0","nodeType":"VariableDeclaration","scope":10893,"src":"154593:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10875,"name":"bool","nodeType":"ElementaryTypeName","src":"154593:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10878,"mutability":"mutable","name":"p3","nameLocation":"154607:2:0","nodeType":"VariableDeclaration","scope":10893,"src":"154602:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10877,"name":"uint","nodeType":"ElementaryTypeName","src":"154602:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"154571:39:0"},"returnParameters":{"id":10880,"nodeType":"ParameterList","parameters":[],"src":"154625:0:0"},"scope":12159,"src":"154559:170:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10915,"nodeType":"Block","src":"154810:106:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e742c626f6f6c2c737472696e6729","id":10907,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"154860:31:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_8e8e4e75a8ccb3f0e11ad74335eebf7a17a78463e99c3b077ff34193a8918f3f","typeString":"literal_string \"log(address,uint,bool,string)\""},"value":"log(address,uint,bool,string)"},{"id":10908,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10895,"src":"154893:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10909,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10897,"src":"154897:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10910,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10899,"src":"154901:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10911,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10901,"src":"154905:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8e8e4e75a8ccb3f0e11ad74335eebf7a17a78463e99c3b077ff34193a8918f3f","typeString":"literal_string \"log(address,uint,bool,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":10905,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"154836:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10906,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"154840:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"154836:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"154836:72:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10904,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"154820:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"154820:89:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10914,"nodeType":"ExpressionStatement","src":"154820:89:0"}]},"id":10916,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"154744:3:0","nodeType":"FunctionDefinition","parameters":{"id":10902,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10895,"mutability":"mutable","name":"p0","nameLocation":"154756:2:0","nodeType":"VariableDeclaration","scope":10916,"src":"154748:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10894,"name":"address","nodeType":"ElementaryTypeName","src":"154748:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10897,"mutability":"mutable","name":"p1","nameLocation":"154765:2:0","nodeType":"VariableDeclaration","scope":10916,"src":"154760:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10896,"name":"uint","nodeType":"ElementaryTypeName","src":"154760:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10899,"mutability":"mutable","name":"p2","nameLocation":"154774:2:0","nodeType":"VariableDeclaration","scope":10916,"src":"154769:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10898,"name":"bool","nodeType":"ElementaryTypeName","src":"154769:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10901,"mutability":"mutable","name":"p3","nameLocation":"154792:2:0","nodeType":"VariableDeclaration","scope":10916,"src":"154778:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10900,"name":"string","nodeType":"ElementaryTypeName","src":"154778:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"154747:48:0"},"returnParameters":{"id":10903,"nodeType":"ParameterList","parameters":[],"src":"154810:0:0"},"scope":12159,"src":"154735:181:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10938,"nodeType":"Block","src":"154988:104:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e742c626f6f6c2c626f6f6c29","id":10930,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"155038:29:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_fea1d55aec42c422504acea77de45574d2fa3abd9dc9c6288741e19c3bd9849b","typeString":"literal_string \"log(address,uint,bool,bool)\""},"value":"log(address,uint,bool,bool)"},{"id":10931,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10918,"src":"155069:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10932,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10920,"src":"155073:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10933,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10922,"src":"155077:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10934,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10924,"src":"155081:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fea1d55aec42c422504acea77de45574d2fa3abd9dc9c6288741e19c3bd9849b","typeString":"literal_string \"log(address,uint,bool,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":10928,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"155014:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10929,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"155018:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"155014:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"155014:70:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10927,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"154998:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"154998:87:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10937,"nodeType":"ExpressionStatement","src":"154998:87:0"}]},"id":10939,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"154931:3:0","nodeType":"FunctionDefinition","parameters":{"id":10925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10918,"mutability":"mutable","name":"p0","nameLocation":"154943:2:0","nodeType":"VariableDeclaration","scope":10939,"src":"154935:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10917,"name":"address","nodeType":"ElementaryTypeName","src":"154935:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10920,"mutability":"mutable","name":"p1","nameLocation":"154952:2:0","nodeType":"VariableDeclaration","scope":10939,"src":"154947:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10919,"name":"uint","nodeType":"ElementaryTypeName","src":"154947:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10922,"mutability":"mutable","name":"p2","nameLocation":"154961:2:0","nodeType":"VariableDeclaration","scope":10939,"src":"154956:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10921,"name":"bool","nodeType":"ElementaryTypeName","src":"154956:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10924,"mutability":"mutable","name":"p3","nameLocation":"154970:2:0","nodeType":"VariableDeclaration","scope":10939,"src":"154965:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10923,"name":"bool","nodeType":"ElementaryTypeName","src":"154965:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"154934:39:0"},"returnParameters":{"id":10926,"nodeType":"ParameterList","parameters":[],"src":"154988:0:0"},"scope":12159,"src":"154922:170:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10961,"nodeType":"Block","src":"155167:107:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e742c626f6f6c2c6164647265737329","id":10953,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"155217:32:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_23e5497254e625e6c33a3fa3eb47ff18f6bac3345da52f847bd5571820febf2d","typeString":"literal_string \"log(address,uint,bool,address)\""},"value":"log(address,uint,bool,address)"},{"id":10954,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10941,"src":"155251:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10955,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10943,"src":"155255:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10956,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10945,"src":"155259:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10957,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10947,"src":"155263:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_23e5497254e625e6c33a3fa3eb47ff18f6bac3345da52f847bd5571820febf2d","typeString":"literal_string \"log(address,uint,bool,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10951,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"155193:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10952,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"155197:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"155193:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"155193:73:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10950,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"155177:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"155177:90:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10960,"nodeType":"ExpressionStatement","src":"155177:90:0"}]},"id":10962,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"155107:3:0","nodeType":"FunctionDefinition","parameters":{"id":10948,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10941,"mutability":"mutable","name":"p0","nameLocation":"155119:2:0","nodeType":"VariableDeclaration","scope":10962,"src":"155111:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10940,"name":"address","nodeType":"ElementaryTypeName","src":"155111:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10943,"mutability":"mutable","name":"p1","nameLocation":"155128:2:0","nodeType":"VariableDeclaration","scope":10962,"src":"155123:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10942,"name":"uint","nodeType":"ElementaryTypeName","src":"155123:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10945,"mutability":"mutable","name":"p2","nameLocation":"155137:2:0","nodeType":"VariableDeclaration","scope":10962,"src":"155132:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10944,"name":"bool","nodeType":"ElementaryTypeName","src":"155132:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10947,"mutability":"mutable","name":"p3","nameLocation":"155149:2:0","nodeType":"VariableDeclaration","scope":10962,"src":"155141:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10946,"name":"address","nodeType":"ElementaryTypeName","src":"155141:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"155110:42:0"},"returnParameters":{"id":10949,"nodeType":"ParameterList","parameters":[],"src":"155167:0:0"},"scope":12159,"src":"155098:176:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10984,"nodeType":"Block","src":"155349:107:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e742c616464726573732c75696e7429","id":10976,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"155399:32:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_a5d98768f8145ad77f2cf1b1f44790c3edb28c68feadee43b01883b75311ac0e","typeString":"literal_string \"log(address,uint,address,uint)\""},"value":"log(address,uint,address,uint)"},{"id":10977,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10964,"src":"155433:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10978,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10966,"src":"155437:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10979,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10968,"src":"155441:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10980,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10970,"src":"155445:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a5d98768f8145ad77f2cf1b1f44790c3edb28c68feadee43b01883b75311ac0e","typeString":"literal_string \"log(address,uint,address,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10974,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"155375:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10975,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"155379:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"155375:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"155375:73:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10973,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"155359:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"155359:90:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10983,"nodeType":"ExpressionStatement","src":"155359:90:0"}]},"id":10985,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"155289:3:0","nodeType":"FunctionDefinition","parameters":{"id":10971,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10964,"mutability":"mutable","name":"p0","nameLocation":"155301:2:0","nodeType":"VariableDeclaration","scope":10985,"src":"155293:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10963,"name":"address","nodeType":"ElementaryTypeName","src":"155293:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10966,"mutability":"mutable","name":"p1","nameLocation":"155310:2:0","nodeType":"VariableDeclaration","scope":10985,"src":"155305:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10965,"name":"uint","nodeType":"ElementaryTypeName","src":"155305:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10968,"mutability":"mutable","name":"p2","nameLocation":"155322:2:0","nodeType":"VariableDeclaration","scope":10985,"src":"155314:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10967,"name":"address","nodeType":"ElementaryTypeName","src":"155314:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10970,"mutability":"mutable","name":"p3","nameLocation":"155331:2:0","nodeType":"VariableDeclaration","scope":10985,"src":"155326:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10969,"name":"uint","nodeType":"ElementaryTypeName","src":"155326:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"155292:42:0"},"returnParameters":{"id":10972,"nodeType":"ParameterList","parameters":[],"src":"155349:0:0"},"scope":12159,"src":"155280:176:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11007,"nodeType":"Block","src":"155540:109:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e742c616464726573732c737472696e6729","id":10999,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"155590:34:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d71f39ef468709ab1c82c125aa1311ff96f65f56794c27c7babe5651379e4b4","typeString":"literal_string \"log(address,uint,address,string)\""},"value":"log(address,uint,address,string)"},{"id":11000,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10987,"src":"155626:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11001,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10989,"src":"155630:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11002,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10991,"src":"155634:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11003,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10993,"src":"155638:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5d71f39ef468709ab1c82c125aa1311ff96f65f56794c27c7babe5651379e4b4","typeString":"literal_string \"log(address,uint,address,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":10997,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"155566:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10998,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"155570:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"155566:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"155566:75:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10996,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"155550:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"155550:92:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11006,"nodeType":"ExpressionStatement","src":"155550:92:0"}]},"id":11008,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"155471:3:0","nodeType":"FunctionDefinition","parameters":{"id":10994,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10987,"mutability":"mutable","name":"p0","nameLocation":"155483:2:0","nodeType":"VariableDeclaration","scope":11008,"src":"155475:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10986,"name":"address","nodeType":"ElementaryTypeName","src":"155475:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10989,"mutability":"mutable","name":"p1","nameLocation":"155492:2:0","nodeType":"VariableDeclaration","scope":11008,"src":"155487:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10988,"name":"uint","nodeType":"ElementaryTypeName","src":"155487:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10991,"mutability":"mutable","name":"p2","nameLocation":"155504:2:0","nodeType":"VariableDeclaration","scope":11008,"src":"155496:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10990,"name":"address","nodeType":"ElementaryTypeName","src":"155496:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10993,"mutability":"mutable","name":"p3","nameLocation":"155522:2:0","nodeType":"VariableDeclaration","scope":11008,"src":"155508:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10992,"name":"string","nodeType":"ElementaryTypeName","src":"155508:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"155474:51:0"},"returnParameters":{"id":10995,"nodeType":"ParameterList","parameters":[],"src":"155540:0:0"},"scope":12159,"src":"155462:187:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11030,"nodeType":"Block","src":"155724:107:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e742c616464726573732c626f6f6c29","id":11022,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"155774:32:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_f181a1e98aefbb6e5d63ca72f24da9aa3686f47d72314c12e70fa7843b309ee6","typeString":"literal_string \"log(address,uint,address,bool)\""},"value":"log(address,uint,address,bool)"},{"id":11023,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11010,"src":"155808:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11024,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11012,"src":"155812:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11025,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11014,"src":"155816:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11026,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11016,"src":"155820:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f181a1e98aefbb6e5d63ca72f24da9aa3686f47d72314c12e70fa7843b309ee6","typeString":"literal_string \"log(address,uint,address,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":11020,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"155750:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11021,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"155754:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"155750:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"155750:73:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11019,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"155734:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11028,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"155734:90:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11029,"nodeType":"ExpressionStatement","src":"155734:90:0"}]},"id":11031,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"155664:3:0","nodeType":"FunctionDefinition","parameters":{"id":11017,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11010,"mutability":"mutable","name":"p0","nameLocation":"155676:2:0","nodeType":"VariableDeclaration","scope":11031,"src":"155668:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11009,"name":"address","nodeType":"ElementaryTypeName","src":"155668:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11012,"mutability":"mutable","name":"p1","nameLocation":"155685:2:0","nodeType":"VariableDeclaration","scope":11031,"src":"155680:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11011,"name":"uint","nodeType":"ElementaryTypeName","src":"155680:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11014,"mutability":"mutable","name":"p2","nameLocation":"155697:2:0","nodeType":"VariableDeclaration","scope":11031,"src":"155689:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11013,"name":"address","nodeType":"ElementaryTypeName","src":"155689:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11016,"mutability":"mutable","name":"p3","nameLocation":"155706:2:0","nodeType":"VariableDeclaration","scope":11031,"src":"155701:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11015,"name":"bool","nodeType":"ElementaryTypeName","src":"155701:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"155667:42:0"},"returnParameters":{"id":11018,"nodeType":"ParameterList","parameters":[],"src":"155724:0:0"},"scope":12159,"src":"155655:176:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11053,"nodeType":"Block","src":"155909:110:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e742c616464726573732c6164647265737329","id":11045,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"155959:35:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_ec24846f1ed52bfa5dc64139c1bf8b03f991fdd5156eccb50dfe44ca5a2ca40e","typeString":"literal_string \"log(address,uint,address,address)\""},"value":"log(address,uint,address,address)"},{"id":11046,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11033,"src":"155996:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11047,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11035,"src":"156000:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11048,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11037,"src":"156004:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11049,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11039,"src":"156008:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ec24846f1ed52bfa5dc64139c1bf8b03f991fdd5156eccb50dfe44ca5a2ca40e","typeString":"literal_string \"log(address,uint,address,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11043,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"155935:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11044,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"155939:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"155935:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"155935:76:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11042,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"155919:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"155919:93:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11052,"nodeType":"ExpressionStatement","src":"155919:93:0"}]},"id":11054,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"155846:3:0","nodeType":"FunctionDefinition","parameters":{"id":11040,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11033,"mutability":"mutable","name":"p0","nameLocation":"155858:2:0","nodeType":"VariableDeclaration","scope":11054,"src":"155850:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11032,"name":"address","nodeType":"ElementaryTypeName","src":"155850:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11035,"mutability":"mutable","name":"p1","nameLocation":"155867:2:0","nodeType":"VariableDeclaration","scope":11054,"src":"155862:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11034,"name":"uint","nodeType":"ElementaryTypeName","src":"155862:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11037,"mutability":"mutable","name":"p2","nameLocation":"155879:2:0","nodeType":"VariableDeclaration","scope":11054,"src":"155871:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11036,"name":"address","nodeType":"ElementaryTypeName","src":"155871:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11039,"mutability":"mutable","name":"p3","nameLocation":"155891:2:0","nodeType":"VariableDeclaration","scope":11054,"src":"155883:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11038,"name":"address","nodeType":"ElementaryTypeName","src":"155883:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"155849:45:0"},"returnParameters":{"id":11041,"nodeType":"ParameterList","parameters":[],"src":"155909:0:0"},"scope":12159,"src":"155837:182:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11076,"nodeType":"Block","src":"156100:106:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c75696e742c75696e7429","id":11068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"156150:31:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_a4c92a60ad8c7136a44d442238a838fba251b421248205a77f1a522d55c988af","typeString":"literal_string \"log(address,string,uint,uint)\""},"value":"log(address,string,uint,uint)"},{"id":11069,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11056,"src":"156183:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11070,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11058,"src":"156187:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11071,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11060,"src":"156191:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11072,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11062,"src":"156195:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a4c92a60ad8c7136a44d442238a838fba251b421248205a77f1a522d55c988af","typeString":"literal_string \"log(address,string,uint,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11066,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"156126:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11067,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"156130:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"156126:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"156126:72:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11065,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"156110:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"156110:89:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11075,"nodeType":"ExpressionStatement","src":"156110:89:0"}]},"id":11077,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"156034:3:0","nodeType":"FunctionDefinition","parameters":{"id":11063,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11056,"mutability":"mutable","name":"p0","nameLocation":"156046:2:0","nodeType":"VariableDeclaration","scope":11077,"src":"156038:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11055,"name":"address","nodeType":"ElementaryTypeName","src":"156038:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11058,"mutability":"mutable","name":"p1","nameLocation":"156064:2:0","nodeType":"VariableDeclaration","scope":11077,"src":"156050:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11057,"name":"string","nodeType":"ElementaryTypeName","src":"156050:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11060,"mutability":"mutable","name":"p2","nameLocation":"156073:2:0","nodeType":"VariableDeclaration","scope":11077,"src":"156068:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11059,"name":"uint","nodeType":"ElementaryTypeName","src":"156068:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11062,"mutability":"mutable","name":"p3","nameLocation":"156082:2:0","nodeType":"VariableDeclaration","scope":11077,"src":"156077:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11061,"name":"uint","nodeType":"ElementaryTypeName","src":"156077:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"156037:48:0"},"returnParameters":{"id":11064,"nodeType":"ParameterList","parameters":[],"src":"156100:0:0"},"scope":12159,"src":"156025:181:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11099,"nodeType":"Block","src":"156296:108:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c75696e742c737472696e6729","id":11091,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"156346:33:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d1365c94e45374e792b786edc547d0277c401db24a4303b5dd1e8a93df0829e","typeString":"literal_string \"log(address,string,uint,string)\""},"value":"log(address,string,uint,string)"},{"id":11092,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11079,"src":"156381:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11093,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11081,"src":"156385:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11094,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11083,"src":"156389:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11095,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11085,"src":"156393:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5d1365c94e45374e792b786edc547d0277c401db24a4303b5dd1e8a93df0829e","typeString":"literal_string \"log(address,string,uint,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":11089,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"156322:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11090,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"156326:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"156322:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"156322:74:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11088,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"156306:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"156306:91:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11098,"nodeType":"ExpressionStatement","src":"156306:91:0"}]},"id":11100,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"156221:3:0","nodeType":"FunctionDefinition","parameters":{"id":11086,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11079,"mutability":"mutable","name":"p0","nameLocation":"156233:2:0","nodeType":"VariableDeclaration","scope":11100,"src":"156225:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11078,"name":"address","nodeType":"ElementaryTypeName","src":"156225:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11081,"mutability":"mutable","name":"p1","nameLocation":"156251:2:0","nodeType":"VariableDeclaration","scope":11100,"src":"156237:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11080,"name":"string","nodeType":"ElementaryTypeName","src":"156237:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11083,"mutability":"mutable","name":"p2","nameLocation":"156260:2:0","nodeType":"VariableDeclaration","scope":11100,"src":"156255:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11082,"name":"uint","nodeType":"ElementaryTypeName","src":"156255:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11085,"mutability":"mutable","name":"p3","nameLocation":"156278:2:0","nodeType":"VariableDeclaration","scope":11100,"src":"156264:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11084,"name":"string","nodeType":"ElementaryTypeName","src":"156264:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"156224:57:0"},"returnParameters":{"id":11087,"nodeType":"ParameterList","parameters":[],"src":"156296:0:0"},"scope":12159,"src":"156212:192:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11122,"nodeType":"Block","src":"156485:106:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c75696e742c626f6f6c29","id":11114,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"156535:31:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_7e250d5bf3975165268961c2b6dbe143f053bed03d903630f547f1fbab28b895","typeString":"literal_string \"log(address,string,uint,bool)\""},"value":"log(address,string,uint,bool)"},{"id":11115,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11102,"src":"156568:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11116,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11104,"src":"156572:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11117,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11106,"src":"156576:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11118,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11108,"src":"156580:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7e250d5bf3975165268961c2b6dbe143f053bed03d903630f547f1fbab28b895","typeString":"literal_string \"log(address,string,uint,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":11112,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"156511:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11113,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"156515:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"156511:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"156511:72:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11111,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"156495:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"156495:89:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11121,"nodeType":"ExpressionStatement","src":"156495:89:0"}]},"id":11123,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"156419:3:0","nodeType":"FunctionDefinition","parameters":{"id":11109,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11102,"mutability":"mutable","name":"p0","nameLocation":"156431:2:0","nodeType":"VariableDeclaration","scope":11123,"src":"156423:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11101,"name":"address","nodeType":"ElementaryTypeName","src":"156423:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11104,"mutability":"mutable","name":"p1","nameLocation":"156449:2:0","nodeType":"VariableDeclaration","scope":11123,"src":"156435:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11103,"name":"string","nodeType":"ElementaryTypeName","src":"156435:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11106,"mutability":"mutable","name":"p2","nameLocation":"156458:2:0","nodeType":"VariableDeclaration","scope":11123,"src":"156453:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11105,"name":"uint","nodeType":"ElementaryTypeName","src":"156453:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11108,"mutability":"mutable","name":"p3","nameLocation":"156467:2:0","nodeType":"VariableDeclaration","scope":11123,"src":"156462:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11107,"name":"bool","nodeType":"ElementaryTypeName","src":"156462:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"156422:48:0"},"returnParameters":{"id":11110,"nodeType":"ParameterList","parameters":[],"src":"156485:0:0"},"scope":12159,"src":"156410:181:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11145,"nodeType":"Block","src":"156675:109:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c75696e742c6164647265737329","id":11137,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"156725:34:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_dfd7d80b4150ea6b0b2772758d6e66d8c7f141bfd7de11119a8fee2a703664e4","typeString":"literal_string \"log(address,string,uint,address)\""},"value":"log(address,string,uint,address)"},{"id":11138,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11125,"src":"156761:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11139,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11127,"src":"156765:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11140,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11129,"src":"156769:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11141,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11131,"src":"156773:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_dfd7d80b4150ea6b0b2772758d6e66d8c7f141bfd7de11119a8fee2a703664e4","typeString":"literal_string \"log(address,string,uint,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11135,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"156701:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11136,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"156705:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"156701:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"156701:75:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11134,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"156685:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"156685:92:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11144,"nodeType":"ExpressionStatement","src":"156685:92:0"}]},"id":11146,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"156606:3:0","nodeType":"FunctionDefinition","parameters":{"id":11132,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11125,"mutability":"mutable","name":"p0","nameLocation":"156618:2:0","nodeType":"VariableDeclaration","scope":11146,"src":"156610:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11124,"name":"address","nodeType":"ElementaryTypeName","src":"156610:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11127,"mutability":"mutable","name":"p1","nameLocation":"156636:2:0","nodeType":"VariableDeclaration","scope":11146,"src":"156622:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11126,"name":"string","nodeType":"ElementaryTypeName","src":"156622:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11129,"mutability":"mutable","name":"p2","nameLocation":"156645:2:0","nodeType":"VariableDeclaration","scope":11146,"src":"156640:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11128,"name":"uint","nodeType":"ElementaryTypeName","src":"156640:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11131,"mutability":"mutable","name":"p3","nameLocation":"156657:2:0","nodeType":"VariableDeclaration","scope":11146,"src":"156649:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11130,"name":"address","nodeType":"ElementaryTypeName","src":"156649:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"156609:51:0"},"returnParameters":{"id":11133,"nodeType":"ParameterList","parameters":[],"src":"156675:0:0"},"scope":12159,"src":"156597:187:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11168,"nodeType":"Block","src":"156874:108:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c737472696e672c75696e7429","id":11160,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"156924:33:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_a14fd039ae37435afa9d1674d6d48b37ffbd5da4cd9166a3f673f5f0db01a4c5","typeString":"literal_string \"log(address,string,string,uint)\""},"value":"log(address,string,string,uint)"},{"id":11161,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11148,"src":"156959:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11162,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11150,"src":"156963:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11163,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11152,"src":"156967:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11164,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11154,"src":"156971:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a14fd039ae37435afa9d1674d6d48b37ffbd5da4cd9166a3f673f5f0db01a4c5","typeString":"literal_string \"log(address,string,string,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11158,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"156900:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11159,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"156904:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"156900:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"156900:74:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11157,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"156884:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"156884:91:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11167,"nodeType":"ExpressionStatement","src":"156884:91:0"}]},"id":11169,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"156799:3:0","nodeType":"FunctionDefinition","parameters":{"id":11155,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11148,"mutability":"mutable","name":"p0","nameLocation":"156811:2:0","nodeType":"VariableDeclaration","scope":11169,"src":"156803:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11147,"name":"address","nodeType":"ElementaryTypeName","src":"156803:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11150,"mutability":"mutable","name":"p1","nameLocation":"156829:2:0","nodeType":"VariableDeclaration","scope":11169,"src":"156815:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11149,"name":"string","nodeType":"ElementaryTypeName","src":"156815:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11152,"mutability":"mutable","name":"p2","nameLocation":"156847:2:0","nodeType":"VariableDeclaration","scope":11169,"src":"156833:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11151,"name":"string","nodeType":"ElementaryTypeName","src":"156833:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11154,"mutability":"mutable","name":"p3","nameLocation":"156856:2:0","nodeType":"VariableDeclaration","scope":11169,"src":"156851:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11153,"name":"uint","nodeType":"ElementaryTypeName","src":"156851:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"156802:57:0"},"returnParameters":{"id":11156,"nodeType":"ParameterList","parameters":[],"src":"156874:0:0"},"scope":12159,"src":"156790:192:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11191,"nodeType":"Block","src":"157081:110:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c737472696e672c737472696e6729","id":11183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"157131:35:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d02c50b371ad9a1f5c638dc99b5e9b545011f148f0be5233c530a4b2a12665c","typeString":"literal_string \"log(address,string,string,string)\""},"value":"log(address,string,string,string)"},{"id":11184,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11171,"src":"157168:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11185,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11173,"src":"157172:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11186,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11175,"src":"157176:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11187,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11177,"src":"157180:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5d02c50b371ad9a1f5c638dc99b5e9b545011f148f0be5233c530a4b2a12665c","typeString":"literal_string \"log(address,string,string,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":11181,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"157107:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11182,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"157111:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"157107:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"157107:76:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11180,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"157091:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"157091:93:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11190,"nodeType":"ExpressionStatement","src":"157091:93:0"}]},"id":11192,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"156997:3:0","nodeType":"FunctionDefinition","parameters":{"id":11178,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11171,"mutability":"mutable","name":"p0","nameLocation":"157009:2:0","nodeType":"VariableDeclaration","scope":11192,"src":"157001:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11170,"name":"address","nodeType":"ElementaryTypeName","src":"157001:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11173,"mutability":"mutable","name":"p1","nameLocation":"157027:2:0","nodeType":"VariableDeclaration","scope":11192,"src":"157013:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11172,"name":"string","nodeType":"ElementaryTypeName","src":"157013:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11175,"mutability":"mutable","name":"p2","nameLocation":"157045:2:0","nodeType":"VariableDeclaration","scope":11192,"src":"157031:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11174,"name":"string","nodeType":"ElementaryTypeName","src":"157031:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11177,"mutability":"mutable","name":"p3","nameLocation":"157063:2:0","nodeType":"VariableDeclaration","scope":11192,"src":"157049:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11176,"name":"string","nodeType":"ElementaryTypeName","src":"157049:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"157000:66:0"},"returnParameters":{"id":11179,"nodeType":"ParameterList","parameters":[],"src":"157081:0:0"},"scope":12159,"src":"156988:203:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11214,"nodeType":"Block","src":"157281:108:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c737472696e672c626f6f6c29","id":11206,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"157331:33:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_35a5071fa9f4610e50772083182f21e949e7a02301a3936e315dd1c4fc39a9ed","typeString":"literal_string \"log(address,string,string,bool)\""},"value":"log(address,string,string,bool)"},{"id":11207,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11194,"src":"157366:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11208,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11196,"src":"157370:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11209,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11198,"src":"157374:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11210,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11200,"src":"157378:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_35a5071fa9f4610e50772083182f21e949e7a02301a3936e315dd1c4fc39a9ed","typeString":"literal_string \"log(address,string,string,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":11204,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"157307:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11205,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"157311:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"157307:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"157307:74:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11203,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"157291:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"157291:91:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11213,"nodeType":"ExpressionStatement","src":"157291:91:0"}]},"id":11215,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"157206:3:0","nodeType":"FunctionDefinition","parameters":{"id":11201,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11194,"mutability":"mutable","name":"p0","nameLocation":"157218:2:0","nodeType":"VariableDeclaration","scope":11215,"src":"157210:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11193,"name":"address","nodeType":"ElementaryTypeName","src":"157210:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11196,"mutability":"mutable","name":"p1","nameLocation":"157236:2:0","nodeType":"VariableDeclaration","scope":11215,"src":"157222:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11195,"name":"string","nodeType":"ElementaryTypeName","src":"157222:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11198,"mutability":"mutable","name":"p2","nameLocation":"157254:2:0","nodeType":"VariableDeclaration","scope":11215,"src":"157240:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11197,"name":"string","nodeType":"ElementaryTypeName","src":"157240:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11200,"mutability":"mutable","name":"p3","nameLocation":"157263:2:0","nodeType":"VariableDeclaration","scope":11215,"src":"157258:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11199,"name":"bool","nodeType":"ElementaryTypeName","src":"157258:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"157209:57:0"},"returnParameters":{"id":11202,"nodeType":"ParameterList","parameters":[],"src":"157281:0:0"},"scope":12159,"src":"157197:192:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11237,"nodeType":"Block","src":"157482:111:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c737472696e672c6164647265737329","id":11229,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"157532:36:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_a04e2f87a739673cc9223810c24b00b35c6b2c9f3ef123cc82866752e1fa816f","typeString":"literal_string \"log(address,string,string,address)\""},"value":"log(address,string,string,address)"},{"id":11230,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11217,"src":"157570:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11231,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11219,"src":"157574:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11232,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11221,"src":"157578:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11233,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11223,"src":"157582:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a04e2f87a739673cc9223810c24b00b35c6b2c9f3ef123cc82866752e1fa816f","typeString":"literal_string \"log(address,string,string,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11227,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"157508:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11228,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"157512:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"157508:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"157508:77:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11226,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"157492:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"157492:94:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11236,"nodeType":"ExpressionStatement","src":"157492:94:0"}]},"id":11238,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"157404:3:0","nodeType":"FunctionDefinition","parameters":{"id":11224,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11217,"mutability":"mutable","name":"p0","nameLocation":"157416:2:0","nodeType":"VariableDeclaration","scope":11238,"src":"157408:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11216,"name":"address","nodeType":"ElementaryTypeName","src":"157408:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11219,"mutability":"mutable","name":"p1","nameLocation":"157434:2:0","nodeType":"VariableDeclaration","scope":11238,"src":"157420:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11218,"name":"string","nodeType":"ElementaryTypeName","src":"157420:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11221,"mutability":"mutable","name":"p2","nameLocation":"157452:2:0","nodeType":"VariableDeclaration","scope":11238,"src":"157438:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11220,"name":"string","nodeType":"ElementaryTypeName","src":"157438:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11223,"mutability":"mutable","name":"p3","nameLocation":"157464:2:0","nodeType":"VariableDeclaration","scope":11238,"src":"157456:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11222,"name":"address","nodeType":"ElementaryTypeName","src":"157456:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"157407:60:0"},"returnParameters":{"id":11225,"nodeType":"ParameterList","parameters":[],"src":"157482:0:0"},"scope":12159,"src":"157395:198:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11260,"nodeType":"Block","src":"157674:106:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c626f6f6c2c75696e7429","id":11252,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"157724:31:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e720521cc58e36659b0c45689a38054bd7300ff30d5ec0cfec7bae3dc2e9689a","typeString":"literal_string \"log(address,string,bool,uint)\""},"value":"log(address,string,bool,uint)"},{"id":11253,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11240,"src":"157757:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11254,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11242,"src":"157761:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11255,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11244,"src":"157765:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11256,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11246,"src":"157769:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e720521cc58e36659b0c45689a38054bd7300ff30d5ec0cfec7bae3dc2e9689a","typeString":"literal_string \"log(address,string,bool,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11250,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"157700:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11251,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"157704:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"157700:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"157700:72:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11249,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"157684:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"157684:89:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11259,"nodeType":"ExpressionStatement","src":"157684:89:0"}]},"id":11261,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"157608:3:0","nodeType":"FunctionDefinition","parameters":{"id":11247,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11240,"mutability":"mutable","name":"p0","nameLocation":"157620:2:0","nodeType":"VariableDeclaration","scope":11261,"src":"157612:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11239,"name":"address","nodeType":"ElementaryTypeName","src":"157612:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11242,"mutability":"mutable","name":"p1","nameLocation":"157638:2:0","nodeType":"VariableDeclaration","scope":11261,"src":"157624:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11241,"name":"string","nodeType":"ElementaryTypeName","src":"157624:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11244,"mutability":"mutable","name":"p2","nameLocation":"157647:2:0","nodeType":"VariableDeclaration","scope":11261,"src":"157642:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11243,"name":"bool","nodeType":"ElementaryTypeName","src":"157642:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11246,"mutability":"mutable","name":"p3","nameLocation":"157656:2:0","nodeType":"VariableDeclaration","scope":11261,"src":"157651:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11245,"name":"uint","nodeType":"ElementaryTypeName","src":"157651:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"157611:48:0"},"returnParameters":{"id":11248,"nodeType":"ParameterList","parameters":[],"src":"157674:0:0"},"scope":12159,"src":"157599:181:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11283,"nodeType":"Block","src":"157870:108:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c626f6f6c2c737472696e6729","id":11275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"157920:33:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_bc0b61fe9497b47eb6a51a5a6a4bf26b32ddcbc9407ccae8cc7de64b3e3d84cc","typeString":"literal_string \"log(address,string,bool,string)\""},"value":"log(address,string,bool,string)"},{"id":11276,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11263,"src":"157955:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11277,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11265,"src":"157959:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11278,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11267,"src":"157963:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11279,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11269,"src":"157967:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_bc0b61fe9497b47eb6a51a5a6a4bf26b32ddcbc9407ccae8cc7de64b3e3d84cc","typeString":"literal_string \"log(address,string,bool,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":11273,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"157896:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11274,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"157900:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"157896:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"157896:74:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11272,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"157880:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"157880:91:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11282,"nodeType":"ExpressionStatement","src":"157880:91:0"}]},"id":11284,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"157795:3:0","nodeType":"FunctionDefinition","parameters":{"id":11270,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11263,"mutability":"mutable","name":"p0","nameLocation":"157807:2:0","nodeType":"VariableDeclaration","scope":11284,"src":"157799:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11262,"name":"address","nodeType":"ElementaryTypeName","src":"157799:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11265,"mutability":"mutable","name":"p1","nameLocation":"157825:2:0","nodeType":"VariableDeclaration","scope":11284,"src":"157811:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11264,"name":"string","nodeType":"ElementaryTypeName","src":"157811:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11267,"mutability":"mutable","name":"p2","nameLocation":"157834:2:0","nodeType":"VariableDeclaration","scope":11284,"src":"157829:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11266,"name":"bool","nodeType":"ElementaryTypeName","src":"157829:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11269,"mutability":"mutable","name":"p3","nameLocation":"157852:2:0","nodeType":"VariableDeclaration","scope":11284,"src":"157838:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11268,"name":"string","nodeType":"ElementaryTypeName","src":"157838:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"157798:57:0"},"returnParameters":{"id":11271,"nodeType":"ParameterList","parameters":[],"src":"157870:0:0"},"scope":12159,"src":"157786:192:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11306,"nodeType":"Block","src":"158059:106:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c626f6f6c2c626f6f6c29","id":11298,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"158109:31:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_5f1d5c9f0de8c048364058d1d6842804ada33dbc34bf9eaff8f2be978f384e08","typeString":"literal_string \"log(address,string,bool,bool)\""},"value":"log(address,string,bool,bool)"},{"id":11299,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11286,"src":"158142:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11300,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11288,"src":"158146:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11301,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11290,"src":"158150:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11302,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11292,"src":"158154:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5f1d5c9f0de8c048364058d1d6842804ada33dbc34bf9eaff8f2be978f384e08","typeString":"literal_string \"log(address,string,bool,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":11296,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"158085:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11297,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"158089:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"158085:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"158085:72:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11295,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"158069:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"158069:89:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11305,"nodeType":"ExpressionStatement","src":"158069:89:0"}]},"id":11307,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"157993:3:0","nodeType":"FunctionDefinition","parameters":{"id":11293,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11286,"mutability":"mutable","name":"p0","nameLocation":"158005:2:0","nodeType":"VariableDeclaration","scope":11307,"src":"157997:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11285,"name":"address","nodeType":"ElementaryTypeName","src":"157997:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11288,"mutability":"mutable","name":"p1","nameLocation":"158023:2:0","nodeType":"VariableDeclaration","scope":11307,"src":"158009:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11287,"name":"string","nodeType":"ElementaryTypeName","src":"158009:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11290,"mutability":"mutable","name":"p2","nameLocation":"158032:2:0","nodeType":"VariableDeclaration","scope":11307,"src":"158027:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11289,"name":"bool","nodeType":"ElementaryTypeName","src":"158027:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11292,"mutability":"mutable","name":"p3","nameLocation":"158041:2:0","nodeType":"VariableDeclaration","scope":11307,"src":"158036:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11291,"name":"bool","nodeType":"ElementaryTypeName","src":"158036:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"157996:48:0"},"returnParameters":{"id":11294,"nodeType":"ParameterList","parameters":[],"src":"158059:0:0"},"scope":12159,"src":"157984:181:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11329,"nodeType":"Block","src":"158249:109:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c626f6f6c2c6164647265737329","id":11321,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"158299:34:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_205871c2f2d320acdd350939b5fc035cc20b1a9cc058fb26f1c9fb3d2ba59970","typeString":"literal_string \"log(address,string,bool,address)\""},"value":"log(address,string,bool,address)"},{"id":11322,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11309,"src":"158335:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11323,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11311,"src":"158339:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11324,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11313,"src":"158343:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11325,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11315,"src":"158347:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_205871c2f2d320acdd350939b5fc035cc20b1a9cc058fb26f1c9fb3d2ba59970","typeString":"literal_string \"log(address,string,bool,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11319,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"158275:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11320,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"158279:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"158275:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"158275:75:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11318,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"158259:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"158259:92:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11328,"nodeType":"ExpressionStatement","src":"158259:92:0"}]},"id":11330,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"158180:3:0","nodeType":"FunctionDefinition","parameters":{"id":11316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11309,"mutability":"mutable","name":"p0","nameLocation":"158192:2:0","nodeType":"VariableDeclaration","scope":11330,"src":"158184:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11308,"name":"address","nodeType":"ElementaryTypeName","src":"158184:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11311,"mutability":"mutable","name":"p1","nameLocation":"158210:2:0","nodeType":"VariableDeclaration","scope":11330,"src":"158196:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11310,"name":"string","nodeType":"ElementaryTypeName","src":"158196:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11313,"mutability":"mutable","name":"p2","nameLocation":"158219:2:0","nodeType":"VariableDeclaration","scope":11330,"src":"158214:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11312,"name":"bool","nodeType":"ElementaryTypeName","src":"158214:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11315,"mutability":"mutable","name":"p3","nameLocation":"158231:2:0","nodeType":"VariableDeclaration","scope":11330,"src":"158223:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11314,"name":"address","nodeType":"ElementaryTypeName","src":"158223:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"158183:51:0"},"returnParameters":{"id":11317,"nodeType":"ParameterList","parameters":[],"src":"158249:0:0"},"scope":12159,"src":"158171:187:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11352,"nodeType":"Block","src":"158442:109:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c616464726573732c75696e7429","id":11344,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"158492:34:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_8c1933a9a9c61e3dc8d3ebdfa929712b21dab3dcf7188e7d35cbf8aaaf476582","typeString":"literal_string \"log(address,string,address,uint)\""},"value":"log(address,string,address,uint)"},{"id":11345,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11332,"src":"158528:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11346,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11334,"src":"158532:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11347,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11336,"src":"158536:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11348,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11338,"src":"158540:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8c1933a9a9c61e3dc8d3ebdfa929712b21dab3dcf7188e7d35cbf8aaaf476582","typeString":"literal_string \"log(address,string,address,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11342,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"158468:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11343,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"158472:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"158468:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"158468:75:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11341,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"158452:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"158452:92:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11351,"nodeType":"ExpressionStatement","src":"158452:92:0"}]},"id":11353,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"158373:3:0","nodeType":"FunctionDefinition","parameters":{"id":11339,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11332,"mutability":"mutable","name":"p0","nameLocation":"158385:2:0","nodeType":"VariableDeclaration","scope":11353,"src":"158377:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11331,"name":"address","nodeType":"ElementaryTypeName","src":"158377:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11334,"mutability":"mutable","name":"p1","nameLocation":"158403:2:0","nodeType":"VariableDeclaration","scope":11353,"src":"158389:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11333,"name":"string","nodeType":"ElementaryTypeName","src":"158389:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11336,"mutability":"mutable","name":"p2","nameLocation":"158415:2:0","nodeType":"VariableDeclaration","scope":11353,"src":"158407:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11335,"name":"address","nodeType":"ElementaryTypeName","src":"158407:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11338,"mutability":"mutable","name":"p3","nameLocation":"158424:2:0","nodeType":"VariableDeclaration","scope":11353,"src":"158419:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11337,"name":"uint","nodeType":"ElementaryTypeName","src":"158419:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"158376:51:0"},"returnParameters":{"id":11340,"nodeType":"ParameterList","parameters":[],"src":"158442:0:0"},"scope":12159,"src":"158364:187:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11375,"nodeType":"Block","src":"158644:111:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c616464726573732c737472696e6729","id":11367,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"158694:36:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_f7e3624510fc5618feb98a49f5d4404e3749dacbdc916c267fea7b2051a08dea","typeString":"literal_string \"log(address,string,address,string)\""},"value":"log(address,string,address,string)"},{"id":11368,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11355,"src":"158732:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11369,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11357,"src":"158736:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11370,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11359,"src":"158740:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11371,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11361,"src":"158744:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f7e3624510fc5618feb98a49f5d4404e3749dacbdc916c267fea7b2051a08dea","typeString":"literal_string \"log(address,string,address,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":11365,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"158670:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11366,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"158674:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"158670:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"158670:77:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11364,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"158654:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"158654:94:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11374,"nodeType":"ExpressionStatement","src":"158654:94:0"}]},"id":11376,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"158566:3:0","nodeType":"FunctionDefinition","parameters":{"id":11362,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11355,"mutability":"mutable","name":"p0","nameLocation":"158578:2:0","nodeType":"VariableDeclaration","scope":11376,"src":"158570:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11354,"name":"address","nodeType":"ElementaryTypeName","src":"158570:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11357,"mutability":"mutable","name":"p1","nameLocation":"158596:2:0","nodeType":"VariableDeclaration","scope":11376,"src":"158582:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11356,"name":"string","nodeType":"ElementaryTypeName","src":"158582:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11359,"mutability":"mutable","name":"p2","nameLocation":"158608:2:0","nodeType":"VariableDeclaration","scope":11376,"src":"158600:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11358,"name":"address","nodeType":"ElementaryTypeName","src":"158600:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11361,"mutability":"mutable","name":"p3","nameLocation":"158626:2:0","nodeType":"VariableDeclaration","scope":11376,"src":"158612:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11360,"name":"string","nodeType":"ElementaryTypeName","src":"158612:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"158569:60:0"},"returnParameters":{"id":11363,"nodeType":"ParameterList","parameters":[],"src":"158644:0:0"},"scope":12159,"src":"158557:198:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11398,"nodeType":"Block","src":"158839:109:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c616464726573732c626f6f6c29","id":11390,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"158889:34:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_0df12b7620e0bad204ac79fe9930fef9b9a40702161764a681594d50d657b081","typeString":"literal_string \"log(address,string,address,bool)\""},"value":"log(address,string,address,bool)"},{"id":11391,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11378,"src":"158925:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11392,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11380,"src":"158929:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11393,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11382,"src":"158933:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11394,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11384,"src":"158937:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0df12b7620e0bad204ac79fe9930fef9b9a40702161764a681594d50d657b081","typeString":"literal_string \"log(address,string,address,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":11388,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"158865:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11389,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"158869:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"158865:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"158865:75:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11387,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"158849:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"158849:92:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11397,"nodeType":"ExpressionStatement","src":"158849:92:0"}]},"id":11399,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"158770:3:0","nodeType":"FunctionDefinition","parameters":{"id":11385,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11378,"mutability":"mutable","name":"p0","nameLocation":"158782:2:0","nodeType":"VariableDeclaration","scope":11399,"src":"158774:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11377,"name":"address","nodeType":"ElementaryTypeName","src":"158774:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11380,"mutability":"mutable","name":"p1","nameLocation":"158800:2:0","nodeType":"VariableDeclaration","scope":11399,"src":"158786:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11379,"name":"string","nodeType":"ElementaryTypeName","src":"158786:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11382,"mutability":"mutable","name":"p2","nameLocation":"158812:2:0","nodeType":"VariableDeclaration","scope":11399,"src":"158804:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11381,"name":"address","nodeType":"ElementaryTypeName","src":"158804:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11384,"mutability":"mutable","name":"p3","nameLocation":"158821:2:0","nodeType":"VariableDeclaration","scope":11399,"src":"158816:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11383,"name":"bool","nodeType":"ElementaryTypeName","src":"158816:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"158773:51:0"},"returnParameters":{"id":11386,"nodeType":"ParameterList","parameters":[],"src":"158839:0:0"},"scope":12159,"src":"158761:187:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11421,"nodeType":"Block","src":"159035:112:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c616464726573732c6164647265737329","id":11413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"159085:37:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_0d36fa2022fafb45586a59914be3ad4c57b76e89535385dcff89c28c80605121","typeString":"literal_string \"log(address,string,address,address)\""},"value":"log(address,string,address,address)"},{"id":11414,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11401,"src":"159124:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11415,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11403,"src":"159128:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11416,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11405,"src":"159132:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11417,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11407,"src":"159136:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0d36fa2022fafb45586a59914be3ad4c57b76e89535385dcff89c28c80605121","typeString":"literal_string \"log(address,string,address,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11411,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"159061:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11412,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"159065:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"159061:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"159061:78:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11410,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"159045:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"159045:95:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11420,"nodeType":"ExpressionStatement","src":"159045:95:0"}]},"id":11422,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"158963:3:0","nodeType":"FunctionDefinition","parameters":{"id":11408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11401,"mutability":"mutable","name":"p0","nameLocation":"158975:2:0","nodeType":"VariableDeclaration","scope":11422,"src":"158967:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11400,"name":"address","nodeType":"ElementaryTypeName","src":"158967:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11403,"mutability":"mutable","name":"p1","nameLocation":"158993:2:0","nodeType":"VariableDeclaration","scope":11422,"src":"158979:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11402,"name":"string","nodeType":"ElementaryTypeName","src":"158979:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11405,"mutability":"mutable","name":"p2","nameLocation":"159005:2:0","nodeType":"VariableDeclaration","scope":11422,"src":"158997:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11404,"name":"address","nodeType":"ElementaryTypeName","src":"158997:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11407,"mutability":"mutable","name":"p3","nameLocation":"159017:2:0","nodeType":"VariableDeclaration","scope":11422,"src":"159009:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11406,"name":"address","nodeType":"ElementaryTypeName","src":"159009:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"158966:54:0"},"returnParameters":{"id":11409,"nodeType":"ParameterList","parameters":[],"src":"159035:0:0"},"scope":12159,"src":"158954:193:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11444,"nodeType":"Block","src":"159219:104:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c75696e742c75696e7429","id":11436,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"159269:29:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_c210a01e60a7d88137859e75abc2d14430087408747ac6787f0acb2f0f8bfd59","typeString":"literal_string \"log(address,bool,uint,uint)\""},"value":"log(address,bool,uint,uint)"},{"id":11437,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11424,"src":"159300:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11438,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11426,"src":"159304:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11439,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11428,"src":"159308:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11440,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11430,"src":"159312:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c210a01e60a7d88137859e75abc2d14430087408747ac6787f0acb2f0f8bfd59","typeString":"literal_string \"log(address,bool,uint,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11434,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"159245:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11435,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"159249:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"159245:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"159245:70:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11433,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"159229:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"159229:87:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11443,"nodeType":"ExpressionStatement","src":"159229:87:0"}]},"id":11445,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"159162:3:0","nodeType":"FunctionDefinition","parameters":{"id":11431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11424,"mutability":"mutable","name":"p0","nameLocation":"159174:2:0","nodeType":"VariableDeclaration","scope":11445,"src":"159166:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11423,"name":"address","nodeType":"ElementaryTypeName","src":"159166:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11426,"mutability":"mutable","name":"p1","nameLocation":"159183:2:0","nodeType":"VariableDeclaration","scope":11445,"src":"159178:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11425,"name":"bool","nodeType":"ElementaryTypeName","src":"159178:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11428,"mutability":"mutable","name":"p2","nameLocation":"159192:2:0","nodeType":"VariableDeclaration","scope":11445,"src":"159187:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11427,"name":"uint","nodeType":"ElementaryTypeName","src":"159187:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11430,"mutability":"mutable","name":"p3","nameLocation":"159201:2:0","nodeType":"VariableDeclaration","scope":11445,"src":"159196:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11429,"name":"uint","nodeType":"ElementaryTypeName","src":"159196:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"159165:39:0"},"returnParameters":{"id":11432,"nodeType":"ParameterList","parameters":[],"src":"159219:0:0"},"scope":12159,"src":"159153:170:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11467,"nodeType":"Block","src":"159404:106:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c75696e742c737472696e6729","id":11459,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"159454:31:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_9b588eccef132ec49572951d33e9b0d1b814d54c82133831f78cdc5d923bc6e6","typeString":"literal_string \"log(address,bool,uint,string)\""},"value":"log(address,bool,uint,string)"},{"id":11460,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11447,"src":"159487:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11461,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11449,"src":"159491:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11462,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11451,"src":"159495:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11463,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11453,"src":"159499:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9b588eccef132ec49572951d33e9b0d1b814d54c82133831f78cdc5d923bc6e6","typeString":"literal_string \"log(address,bool,uint,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":11457,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"159430:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11458,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"159434:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"159430:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"159430:72:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11456,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"159414:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"159414:89:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11466,"nodeType":"ExpressionStatement","src":"159414:89:0"}]},"id":11468,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"159338:3:0","nodeType":"FunctionDefinition","parameters":{"id":11454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11447,"mutability":"mutable","name":"p0","nameLocation":"159350:2:0","nodeType":"VariableDeclaration","scope":11468,"src":"159342:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11446,"name":"address","nodeType":"ElementaryTypeName","src":"159342:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11449,"mutability":"mutable","name":"p1","nameLocation":"159359:2:0","nodeType":"VariableDeclaration","scope":11468,"src":"159354:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11448,"name":"bool","nodeType":"ElementaryTypeName","src":"159354:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11451,"mutability":"mutable","name":"p2","nameLocation":"159368:2:0","nodeType":"VariableDeclaration","scope":11468,"src":"159363:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11450,"name":"uint","nodeType":"ElementaryTypeName","src":"159363:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11453,"mutability":"mutable","name":"p3","nameLocation":"159386:2:0","nodeType":"VariableDeclaration","scope":11468,"src":"159372:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11452,"name":"string","nodeType":"ElementaryTypeName","src":"159372:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"159341:48:0"},"returnParameters":{"id":11455,"nodeType":"ParameterList","parameters":[],"src":"159404:0:0"},"scope":12159,"src":"159329:181:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11490,"nodeType":"Block","src":"159582:104:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c75696e742c626f6f6c29","id":11482,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"159632:29:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_85cdc5af22f2a2b52749c228b5bc379bac815d0d3575c2899b6657bce00fab33","typeString":"literal_string \"log(address,bool,uint,bool)\""},"value":"log(address,bool,uint,bool)"},{"id":11483,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11470,"src":"159663:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11484,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11472,"src":"159667:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11485,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11474,"src":"159671:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11486,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11476,"src":"159675:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_85cdc5af22f2a2b52749c228b5bc379bac815d0d3575c2899b6657bce00fab33","typeString":"literal_string \"log(address,bool,uint,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":11480,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"159608:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11481,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"159612:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"159608:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"159608:70:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11479,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"159592:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"159592:87:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11489,"nodeType":"ExpressionStatement","src":"159592:87:0"}]},"id":11491,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"159525:3:0","nodeType":"FunctionDefinition","parameters":{"id":11477,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11470,"mutability":"mutable","name":"p0","nameLocation":"159537:2:0","nodeType":"VariableDeclaration","scope":11491,"src":"159529:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11469,"name":"address","nodeType":"ElementaryTypeName","src":"159529:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11472,"mutability":"mutable","name":"p1","nameLocation":"159546:2:0","nodeType":"VariableDeclaration","scope":11491,"src":"159541:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11471,"name":"bool","nodeType":"ElementaryTypeName","src":"159541:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11474,"mutability":"mutable","name":"p2","nameLocation":"159555:2:0","nodeType":"VariableDeclaration","scope":11491,"src":"159550:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11473,"name":"uint","nodeType":"ElementaryTypeName","src":"159550:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11476,"mutability":"mutable","name":"p3","nameLocation":"159564:2:0","nodeType":"VariableDeclaration","scope":11491,"src":"159559:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11475,"name":"bool","nodeType":"ElementaryTypeName","src":"159559:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"159528:39:0"},"returnParameters":{"id":11478,"nodeType":"ParameterList","parameters":[],"src":"159582:0:0"},"scope":12159,"src":"159516:170:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11513,"nodeType":"Block","src":"159761:107:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c75696e742c6164647265737329","id":11505,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"159811:32:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_0d8ce61ee7d058fd1e588343a35fb1aff71b8e7f74d553220d0e20088cb908bf","typeString":"literal_string \"log(address,bool,uint,address)\""},"value":"log(address,bool,uint,address)"},{"id":11506,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11493,"src":"159845:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11507,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11495,"src":"159849:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11508,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11497,"src":"159853:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11509,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11499,"src":"159857:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0d8ce61ee7d058fd1e588343a35fb1aff71b8e7f74d553220d0e20088cb908bf","typeString":"literal_string \"log(address,bool,uint,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11503,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"159787:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11504,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"159791:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"159787:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"159787:73:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11502,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"159771:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"159771:90:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11512,"nodeType":"ExpressionStatement","src":"159771:90:0"}]},"id":11514,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"159701:3:0","nodeType":"FunctionDefinition","parameters":{"id":11500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11493,"mutability":"mutable","name":"p0","nameLocation":"159713:2:0","nodeType":"VariableDeclaration","scope":11514,"src":"159705:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11492,"name":"address","nodeType":"ElementaryTypeName","src":"159705:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11495,"mutability":"mutable","name":"p1","nameLocation":"159722:2:0","nodeType":"VariableDeclaration","scope":11514,"src":"159717:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11494,"name":"bool","nodeType":"ElementaryTypeName","src":"159717:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11497,"mutability":"mutable","name":"p2","nameLocation":"159731:2:0","nodeType":"VariableDeclaration","scope":11514,"src":"159726:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11496,"name":"uint","nodeType":"ElementaryTypeName","src":"159726:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11499,"mutability":"mutable","name":"p3","nameLocation":"159743:2:0","nodeType":"VariableDeclaration","scope":11514,"src":"159735:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11498,"name":"address","nodeType":"ElementaryTypeName","src":"159735:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"159704:42:0"},"returnParameters":{"id":11501,"nodeType":"ParameterList","parameters":[],"src":"159761:0:0"},"scope":12159,"src":"159692:176:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11536,"nodeType":"Block","src":"159949:106:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c737472696e672c75696e7429","id":11528,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"159999:31:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_9e127b6e4348bc33b3ea7f05f6479d3e1b1fe2b3727e1f4ba94b6a36e7abac9b","typeString":"literal_string \"log(address,bool,string,uint)\""},"value":"log(address,bool,string,uint)"},{"id":11529,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11516,"src":"160032:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11530,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11518,"src":"160036:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11531,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11520,"src":"160040:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11532,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11522,"src":"160044:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9e127b6e4348bc33b3ea7f05f6479d3e1b1fe2b3727e1f4ba94b6a36e7abac9b","typeString":"literal_string \"log(address,bool,string,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11526,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"159975:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11527,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"159979:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"159975:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"159975:72:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11525,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"159959:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"159959:89:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11535,"nodeType":"ExpressionStatement","src":"159959:89:0"}]},"id":11537,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"159883:3:0","nodeType":"FunctionDefinition","parameters":{"id":11523,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11516,"mutability":"mutable","name":"p0","nameLocation":"159895:2:0","nodeType":"VariableDeclaration","scope":11537,"src":"159887:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11515,"name":"address","nodeType":"ElementaryTypeName","src":"159887:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11518,"mutability":"mutable","name":"p1","nameLocation":"159904:2:0","nodeType":"VariableDeclaration","scope":11537,"src":"159899:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11517,"name":"bool","nodeType":"ElementaryTypeName","src":"159899:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11520,"mutability":"mutable","name":"p2","nameLocation":"159922:2:0","nodeType":"VariableDeclaration","scope":11537,"src":"159908:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11519,"name":"string","nodeType":"ElementaryTypeName","src":"159908:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11522,"mutability":"mutable","name":"p3","nameLocation":"159931:2:0","nodeType":"VariableDeclaration","scope":11537,"src":"159926:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11521,"name":"uint","nodeType":"ElementaryTypeName","src":"159926:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"159886:48:0"},"returnParameters":{"id":11524,"nodeType":"ParameterList","parameters":[],"src":"159949:0:0"},"scope":12159,"src":"159874:181:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11559,"nodeType":"Block","src":"160145:108:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c737472696e672c737472696e6729","id":11551,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"160195:33:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_475c5c33f91155b7a0e86c9fac7985c60ab58f4bfb411ee9b31d994a7fc95d1f","typeString":"literal_string \"log(address,bool,string,string)\""},"value":"log(address,bool,string,string)"},{"id":11552,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11539,"src":"160230:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11553,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11541,"src":"160234:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11554,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11543,"src":"160238:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11555,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11545,"src":"160242:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_475c5c33f91155b7a0e86c9fac7985c60ab58f4bfb411ee9b31d994a7fc95d1f","typeString":"literal_string \"log(address,bool,string,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":11549,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"160171:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11550,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"160175:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"160171:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"160171:74:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11548,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"160155:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"160155:91:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11558,"nodeType":"ExpressionStatement","src":"160155:91:0"}]},"id":11560,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"160070:3:0","nodeType":"FunctionDefinition","parameters":{"id":11546,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11539,"mutability":"mutable","name":"p0","nameLocation":"160082:2:0","nodeType":"VariableDeclaration","scope":11560,"src":"160074:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11538,"name":"address","nodeType":"ElementaryTypeName","src":"160074:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11541,"mutability":"mutable","name":"p1","nameLocation":"160091:2:0","nodeType":"VariableDeclaration","scope":11560,"src":"160086:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11540,"name":"bool","nodeType":"ElementaryTypeName","src":"160086:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11543,"mutability":"mutable","name":"p2","nameLocation":"160109:2:0","nodeType":"VariableDeclaration","scope":11560,"src":"160095:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11542,"name":"string","nodeType":"ElementaryTypeName","src":"160095:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11545,"mutability":"mutable","name":"p3","nameLocation":"160127:2:0","nodeType":"VariableDeclaration","scope":11560,"src":"160113:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11544,"name":"string","nodeType":"ElementaryTypeName","src":"160113:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"160073:57:0"},"returnParameters":{"id":11547,"nodeType":"ParameterList","parameters":[],"src":"160145:0:0"},"scope":12159,"src":"160061:192:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11582,"nodeType":"Block","src":"160334:106:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c737472696e672c626f6f6c29","id":11574,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"160384:31:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_50ad461db24803fc9b2ba76f072192e0a4d8fbb3667a50c400f504443380890f","typeString":"literal_string \"log(address,bool,string,bool)\""},"value":"log(address,bool,string,bool)"},{"id":11575,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11562,"src":"160417:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11576,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11564,"src":"160421:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11577,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11566,"src":"160425:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11578,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11568,"src":"160429:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_50ad461db24803fc9b2ba76f072192e0a4d8fbb3667a50c400f504443380890f","typeString":"literal_string \"log(address,bool,string,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":11572,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"160360:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11573,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"160364:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"160360:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"160360:72:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11571,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"160344:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"160344:89:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11581,"nodeType":"ExpressionStatement","src":"160344:89:0"}]},"id":11583,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"160268:3:0","nodeType":"FunctionDefinition","parameters":{"id":11569,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11562,"mutability":"mutable","name":"p0","nameLocation":"160280:2:0","nodeType":"VariableDeclaration","scope":11583,"src":"160272:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11561,"name":"address","nodeType":"ElementaryTypeName","src":"160272:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11564,"mutability":"mutable","name":"p1","nameLocation":"160289:2:0","nodeType":"VariableDeclaration","scope":11583,"src":"160284:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11563,"name":"bool","nodeType":"ElementaryTypeName","src":"160284:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11566,"mutability":"mutable","name":"p2","nameLocation":"160307:2:0","nodeType":"VariableDeclaration","scope":11583,"src":"160293:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11565,"name":"string","nodeType":"ElementaryTypeName","src":"160293:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11568,"mutability":"mutable","name":"p3","nameLocation":"160316:2:0","nodeType":"VariableDeclaration","scope":11583,"src":"160311:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11567,"name":"bool","nodeType":"ElementaryTypeName","src":"160311:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"160271:48:0"},"returnParameters":{"id":11570,"nodeType":"ParameterList","parameters":[],"src":"160334:0:0"},"scope":12159,"src":"160259:181:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11605,"nodeType":"Block","src":"160524:109:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c737472696e672c6164647265737329","id":11597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"160574:34:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_19fd495659df511498cf8dde03672830bd109ef2d9b9bec18e72190917c328bc","typeString":"literal_string \"log(address,bool,string,address)\""},"value":"log(address,bool,string,address)"},{"id":11598,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11585,"src":"160610:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11599,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11587,"src":"160614:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11600,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11589,"src":"160618:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11601,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11591,"src":"160622:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_19fd495659df511498cf8dde03672830bd109ef2d9b9bec18e72190917c328bc","typeString":"literal_string \"log(address,bool,string,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11595,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"160550:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11596,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"160554:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"160550:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"160550:75:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11594,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"160534:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"160534:92:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11604,"nodeType":"ExpressionStatement","src":"160534:92:0"}]},"id":11606,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"160455:3:0","nodeType":"FunctionDefinition","parameters":{"id":11592,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11585,"mutability":"mutable","name":"p0","nameLocation":"160467:2:0","nodeType":"VariableDeclaration","scope":11606,"src":"160459:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11584,"name":"address","nodeType":"ElementaryTypeName","src":"160459:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11587,"mutability":"mutable","name":"p1","nameLocation":"160476:2:0","nodeType":"VariableDeclaration","scope":11606,"src":"160471:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11586,"name":"bool","nodeType":"ElementaryTypeName","src":"160471:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11589,"mutability":"mutable","name":"p2","nameLocation":"160494:2:0","nodeType":"VariableDeclaration","scope":11606,"src":"160480:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11588,"name":"string","nodeType":"ElementaryTypeName","src":"160480:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11591,"mutability":"mutable","name":"p3","nameLocation":"160506:2:0","nodeType":"VariableDeclaration","scope":11606,"src":"160498:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11590,"name":"address","nodeType":"ElementaryTypeName","src":"160498:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"160458:51:0"},"returnParameters":{"id":11593,"nodeType":"ParameterList","parameters":[],"src":"160524:0:0"},"scope":12159,"src":"160446:187:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11628,"nodeType":"Block","src":"160705:104:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c626f6f6c2c75696e7429","id":11620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"160755:29:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_cfb587569c9e063cd7daed07e27d9193980aad24c48787cb6531c47fa694e463","typeString":"literal_string \"log(address,bool,bool,uint)\""},"value":"log(address,bool,bool,uint)"},{"id":11621,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11608,"src":"160786:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11622,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11610,"src":"160790:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11623,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11612,"src":"160794:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11624,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11614,"src":"160798:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cfb587569c9e063cd7daed07e27d9193980aad24c48787cb6531c47fa694e463","typeString":"literal_string \"log(address,bool,bool,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11618,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"160731:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11619,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"160735:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"160731:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"160731:70:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11617,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"160715:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"160715:87:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11627,"nodeType":"ExpressionStatement","src":"160715:87:0"}]},"id":11629,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"160648:3:0","nodeType":"FunctionDefinition","parameters":{"id":11615,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11608,"mutability":"mutable","name":"p0","nameLocation":"160660:2:0","nodeType":"VariableDeclaration","scope":11629,"src":"160652:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11607,"name":"address","nodeType":"ElementaryTypeName","src":"160652:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11610,"mutability":"mutable","name":"p1","nameLocation":"160669:2:0","nodeType":"VariableDeclaration","scope":11629,"src":"160664:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11609,"name":"bool","nodeType":"ElementaryTypeName","src":"160664:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11612,"mutability":"mutable","name":"p2","nameLocation":"160678:2:0","nodeType":"VariableDeclaration","scope":11629,"src":"160673:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11611,"name":"bool","nodeType":"ElementaryTypeName","src":"160673:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11614,"mutability":"mutable","name":"p3","nameLocation":"160687:2:0","nodeType":"VariableDeclaration","scope":11629,"src":"160682:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11613,"name":"uint","nodeType":"ElementaryTypeName","src":"160682:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"160651:39:0"},"returnParameters":{"id":11616,"nodeType":"ParameterList","parameters":[],"src":"160705:0:0"},"scope":12159,"src":"160639:170:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11651,"nodeType":"Block","src":"160890:106:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c626f6f6c2c737472696e6729","id":11643,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"160940:31:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_dfc4a2e8c56809b44edbbc6d92d0a8441e551ad5387596bf8b629c56d9a91300","typeString":"literal_string \"log(address,bool,bool,string)\""},"value":"log(address,bool,bool,string)"},{"id":11644,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11631,"src":"160973:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11645,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11633,"src":"160977:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11646,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11635,"src":"160981:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11647,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11637,"src":"160985:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_dfc4a2e8c56809b44edbbc6d92d0a8441e551ad5387596bf8b629c56d9a91300","typeString":"literal_string \"log(address,bool,bool,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":11641,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"160916:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11642,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"160920:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"160916:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"160916:72:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11640,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"160900:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"160900:89:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11650,"nodeType":"ExpressionStatement","src":"160900:89:0"}]},"id":11652,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"160824:3:0","nodeType":"FunctionDefinition","parameters":{"id":11638,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11631,"mutability":"mutable","name":"p0","nameLocation":"160836:2:0","nodeType":"VariableDeclaration","scope":11652,"src":"160828:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11630,"name":"address","nodeType":"ElementaryTypeName","src":"160828:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11633,"mutability":"mutable","name":"p1","nameLocation":"160845:2:0","nodeType":"VariableDeclaration","scope":11652,"src":"160840:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11632,"name":"bool","nodeType":"ElementaryTypeName","src":"160840:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11635,"mutability":"mutable","name":"p2","nameLocation":"160854:2:0","nodeType":"VariableDeclaration","scope":11652,"src":"160849:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11634,"name":"bool","nodeType":"ElementaryTypeName","src":"160849:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11637,"mutability":"mutable","name":"p3","nameLocation":"160872:2:0","nodeType":"VariableDeclaration","scope":11652,"src":"160858:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11636,"name":"string","nodeType":"ElementaryTypeName","src":"160858:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"160827:48:0"},"returnParameters":{"id":11639,"nodeType":"ParameterList","parameters":[],"src":"160890:0:0"},"scope":12159,"src":"160815:181:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11674,"nodeType":"Block","src":"161068:104:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c626f6f6c2c626f6f6c29","id":11666,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"161118:29:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_cac434792b973db16714db96d2aeda353b2253f27255abe42b9960b2dc550634","typeString":"literal_string \"log(address,bool,bool,bool)\""},"value":"log(address,bool,bool,bool)"},{"id":11667,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11654,"src":"161149:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11668,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11656,"src":"161153:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11669,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11658,"src":"161157:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11670,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11660,"src":"161161:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cac434792b973db16714db96d2aeda353b2253f27255abe42b9960b2dc550634","typeString":"literal_string \"log(address,bool,bool,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":11664,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"161094:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11665,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"161098:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"161094:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"161094:70:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11663,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"161078:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"161078:87:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11673,"nodeType":"ExpressionStatement","src":"161078:87:0"}]},"id":11675,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"161011:3:0","nodeType":"FunctionDefinition","parameters":{"id":11661,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11654,"mutability":"mutable","name":"p0","nameLocation":"161023:2:0","nodeType":"VariableDeclaration","scope":11675,"src":"161015:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11653,"name":"address","nodeType":"ElementaryTypeName","src":"161015:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11656,"mutability":"mutable","name":"p1","nameLocation":"161032:2:0","nodeType":"VariableDeclaration","scope":11675,"src":"161027:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11655,"name":"bool","nodeType":"ElementaryTypeName","src":"161027:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11658,"mutability":"mutable","name":"p2","nameLocation":"161041:2:0","nodeType":"VariableDeclaration","scope":11675,"src":"161036:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11657,"name":"bool","nodeType":"ElementaryTypeName","src":"161036:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11660,"mutability":"mutable","name":"p3","nameLocation":"161050:2:0","nodeType":"VariableDeclaration","scope":11675,"src":"161045:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11659,"name":"bool","nodeType":"ElementaryTypeName","src":"161045:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"161014:39:0"},"returnParameters":{"id":11662,"nodeType":"ParameterList","parameters":[],"src":"161068:0:0"},"scope":12159,"src":"161002:170:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11697,"nodeType":"Block","src":"161247:107:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c626f6f6c2c6164647265737329","id":11689,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"161297:32:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_cf394485abbd1f04b85b0f2c1a2cfc07e3d51c1c6f28386bf16d9e45161e8953","typeString":"literal_string \"log(address,bool,bool,address)\""},"value":"log(address,bool,bool,address)"},{"id":11690,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11677,"src":"161331:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11691,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11679,"src":"161335:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11692,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11681,"src":"161339:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11693,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11683,"src":"161343:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cf394485abbd1f04b85b0f2c1a2cfc07e3d51c1c6f28386bf16d9e45161e8953","typeString":"literal_string \"log(address,bool,bool,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11687,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"161273:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11688,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"161277:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"161273:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"161273:73:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11686,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"161257:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"161257:90:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11696,"nodeType":"ExpressionStatement","src":"161257:90:0"}]},"id":11698,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"161187:3:0","nodeType":"FunctionDefinition","parameters":{"id":11684,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11677,"mutability":"mutable","name":"p0","nameLocation":"161199:2:0","nodeType":"VariableDeclaration","scope":11698,"src":"161191:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11676,"name":"address","nodeType":"ElementaryTypeName","src":"161191:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11679,"mutability":"mutable","name":"p1","nameLocation":"161208:2:0","nodeType":"VariableDeclaration","scope":11698,"src":"161203:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11678,"name":"bool","nodeType":"ElementaryTypeName","src":"161203:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11681,"mutability":"mutable","name":"p2","nameLocation":"161217:2:0","nodeType":"VariableDeclaration","scope":11698,"src":"161212:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11680,"name":"bool","nodeType":"ElementaryTypeName","src":"161212:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11683,"mutability":"mutable","name":"p3","nameLocation":"161229:2:0","nodeType":"VariableDeclaration","scope":11698,"src":"161221:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11682,"name":"address","nodeType":"ElementaryTypeName","src":"161221:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"161190:42:0"},"returnParameters":{"id":11685,"nodeType":"ParameterList","parameters":[],"src":"161247:0:0"},"scope":12159,"src":"161178:176:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11720,"nodeType":"Block","src":"161429:107:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c616464726573732c75696e7429","id":11712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"161479:32:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_dc7116d2e67ccd625262e6814a6f82f2367beea9919409c81fcbb94bea1b6b84","typeString":"literal_string \"log(address,bool,address,uint)\""},"value":"log(address,bool,address,uint)"},{"id":11713,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11700,"src":"161513:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11714,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11702,"src":"161517:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11715,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11704,"src":"161521:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11716,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11706,"src":"161525:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_dc7116d2e67ccd625262e6814a6f82f2367beea9919409c81fcbb94bea1b6b84","typeString":"literal_string \"log(address,bool,address,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11710,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"161455:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11711,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"161459:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"161455:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"161455:73:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11709,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"161439:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"161439:90:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11719,"nodeType":"ExpressionStatement","src":"161439:90:0"}]},"id":11721,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"161369:3:0","nodeType":"FunctionDefinition","parameters":{"id":11707,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11700,"mutability":"mutable","name":"p0","nameLocation":"161381:2:0","nodeType":"VariableDeclaration","scope":11721,"src":"161373:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11699,"name":"address","nodeType":"ElementaryTypeName","src":"161373:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11702,"mutability":"mutable","name":"p1","nameLocation":"161390:2:0","nodeType":"VariableDeclaration","scope":11721,"src":"161385:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11701,"name":"bool","nodeType":"ElementaryTypeName","src":"161385:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11704,"mutability":"mutable","name":"p2","nameLocation":"161402:2:0","nodeType":"VariableDeclaration","scope":11721,"src":"161394:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11703,"name":"address","nodeType":"ElementaryTypeName","src":"161394:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11706,"mutability":"mutable","name":"p3","nameLocation":"161411:2:0","nodeType":"VariableDeclaration","scope":11721,"src":"161406:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11705,"name":"uint","nodeType":"ElementaryTypeName","src":"161406:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"161372:42:0"},"returnParameters":{"id":11708,"nodeType":"ParameterList","parameters":[],"src":"161429:0:0"},"scope":12159,"src":"161360:176:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11743,"nodeType":"Block","src":"161620:109:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c616464726573732c737472696e6729","id":11735,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"161670:34:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_2dd778e616be9386b5911da1a074bbaf979640681783fca6396ea75c8caf6453","typeString":"literal_string \"log(address,bool,address,string)\""},"value":"log(address,bool,address,string)"},{"id":11736,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11723,"src":"161706:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11737,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11725,"src":"161710:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11738,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11727,"src":"161714:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11739,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11729,"src":"161718:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2dd778e616be9386b5911da1a074bbaf979640681783fca6396ea75c8caf6453","typeString":"literal_string \"log(address,bool,address,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":11733,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"161646:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11734,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"161650:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"161646:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"161646:75:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11732,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"161630:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"161630:92:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11742,"nodeType":"ExpressionStatement","src":"161630:92:0"}]},"id":11744,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"161551:3:0","nodeType":"FunctionDefinition","parameters":{"id":11730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11723,"mutability":"mutable","name":"p0","nameLocation":"161563:2:0","nodeType":"VariableDeclaration","scope":11744,"src":"161555:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11722,"name":"address","nodeType":"ElementaryTypeName","src":"161555:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11725,"mutability":"mutable","name":"p1","nameLocation":"161572:2:0","nodeType":"VariableDeclaration","scope":11744,"src":"161567:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11724,"name":"bool","nodeType":"ElementaryTypeName","src":"161567:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11727,"mutability":"mutable","name":"p2","nameLocation":"161584:2:0","nodeType":"VariableDeclaration","scope":11744,"src":"161576:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11726,"name":"address","nodeType":"ElementaryTypeName","src":"161576:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11729,"mutability":"mutable","name":"p3","nameLocation":"161602:2:0","nodeType":"VariableDeclaration","scope":11744,"src":"161588:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11728,"name":"string","nodeType":"ElementaryTypeName","src":"161588:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"161554:51:0"},"returnParameters":{"id":11731,"nodeType":"ParameterList","parameters":[],"src":"161620:0:0"},"scope":12159,"src":"161542:187:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11766,"nodeType":"Block","src":"161804:107:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c616464726573732c626f6f6c29","id":11758,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"161854:32:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_a6f50b0f122c916fe81861751b94bdddb5e453947768e8af206397bb510790b1","typeString":"literal_string \"log(address,bool,address,bool)\""},"value":"log(address,bool,address,bool)"},{"id":11759,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11746,"src":"161888:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11760,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11748,"src":"161892:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11761,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11750,"src":"161896:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11762,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11752,"src":"161900:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a6f50b0f122c916fe81861751b94bdddb5e453947768e8af206397bb510790b1","typeString":"literal_string \"log(address,bool,address,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":11756,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"161830:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11757,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"161834:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"161830:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"161830:73:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11755,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"161814:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"161814:90:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11765,"nodeType":"ExpressionStatement","src":"161814:90:0"}]},"id":11767,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"161744:3:0","nodeType":"FunctionDefinition","parameters":{"id":11753,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11746,"mutability":"mutable","name":"p0","nameLocation":"161756:2:0","nodeType":"VariableDeclaration","scope":11767,"src":"161748:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11745,"name":"address","nodeType":"ElementaryTypeName","src":"161748:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11748,"mutability":"mutable","name":"p1","nameLocation":"161765:2:0","nodeType":"VariableDeclaration","scope":11767,"src":"161760:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11747,"name":"bool","nodeType":"ElementaryTypeName","src":"161760:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11750,"mutability":"mutable","name":"p2","nameLocation":"161777:2:0","nodeType":"VariableDeclaration","scope":11767,"src":"161769:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11749,"name":"address","nodeType":"ElementaryTypeName","src":"161769:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11752,"mutability":"mutable","name":"p3","nameLocation":"161786:2:0","nodeType":"VariableDeclaration","scope":11767,"src":"161781:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11751,"name":"bool","nodeType":"ElementaryTypeName","src":"161781:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"161747:42:0"},"returnParameters":{"id":11754,"nodeType":"ParameterList","parameters":[],"src":"161804:0:0"},"scope":12159,"src":"161735:176:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11789,"nodeType":"Block","src":"161989:110:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c616464726573732c6164647265737329","id":11781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"162039:35:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_660375ddb58761b4ce952ec7e1ae63efe9f8e9e69831fd72875968fec9046e35","typeString":"literal_string \"log(address,bool,address,address)\""},"value":"log(address,bool,address,address)"},{"id":11782,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11769,"src":"162076:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11783,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11771,"src":"162080:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11784,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11773,"src":"162084:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11785,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11775,"src":"162088:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_660375ddb58761b4ce952ec7e1ae63efe9f8e9e69831fd72875968fec9046e35","typeString":"literal_string \"log(address,bool,address,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11779,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"162015:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11780,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"162019:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"162015:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"162015:76:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11778,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"161999:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"161999:93:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11788,"nodeType":"ExpressionStatement","src":"161999:93:0"}]},"id":11790,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"161926:3:0","nodeType":"FunctionDefinition","parameters":{"id":11776,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11769,"mutability":"mutable","name":"p0","nameLocation":"161938:2:0","nodeType":"VariableDeclaration","scope":11790,"src":"161930:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11768,"name":"address","nodeType":"ElementaryTypeName","src":"161930:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11771,"mutability":"mutable","name":"p1","nameLocation":"161947:2:0","nodeType":"VariableDeclaration","scope":11790,"src":"161942:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11770,"name":"bool","nodeType":"ElementaryTypeName","src":"161942:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11773,"mutability":"mutable","name":"p2","nameLocation":"161959:2:0","nodeType":"VariableDeclaration","scope":11790,"src":"161951:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11772,"name":"address","nodeType":"ElementaryTypeName","src":"161951:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11775,"mutability":"mutable","name":"p3","nameLocation":"161971:2:0","nodeType":"VariableDeclaration","scope":11790,"src":"161963:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11774,"name":"address","nodeType":"ElementaryTypeName","src":"161963:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"161929:45:0"},"returnParameters":{"id":11777,"nodeType":"ParameterList","parameters":[],"src":"161989:0:0"},"scope":12159,"src":"161917:182:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11812,"nodeType":"Block","src":"162174:107:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c75696e742c75696e7429","id":11804,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"162224:32:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_54fdf3e4fb94f9bebc9a1c60d5b71090f9817e68730b5af20b69dff283044ed6","typeString":"literal_string \"log(address,address,uint,uint)\""},"value":"log(address,address,uint,uint)"},{"id":11805,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11792,"src":"162258:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11806,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11794,"src":"162262:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11807,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11796,"src":"162266:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11808,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11798,"src":"162270:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_54fdf3e4fb94f9bebc9a1c60d5b71090f9817e68730b5af20b69dff283044ed6","typeString":"literal_string \"log(address,address,uint,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11802,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"162200:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11803,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"162204:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"162200:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"162200:73:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11801,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"162184:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"162184:90:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11811,"nodeType":"ExpressionStatement","src":"162184:90:0"}]},"id":11813,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"162114:3:0","nodeType":"FunctionDefinition","parameters":{"id":11799,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11792,"mutability":"mutable","name":"p0","nameLocation":"162126:2:0","nodeType":"VariableDeclaration","scope":11813,"src":"162118:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11791,"name":"address","nodeType":"ElementaryTypeName","src":"162118:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11794,"mutability":"mutable","name":"p1","nameLocation":"162138:2:0","nodeType":"VariableDeclaration","scope":11813,"src":"162130:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11793,"name":"address","nodeType":"ElementaryTypeName","src":"162130:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11796,"mutability":"mutable","name":"p2","nameLocation":"162147:2:0","nodeType":"VariableDeclaration","scope":11813,"src":"162142:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11795,"name":"uint","nodeType":"ElementaryTypeName","src":"162142:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11798,"mutability":"mutable","name":"p3","nameLocation":"162156:2:0","nodeType":"VariableDeclaration","scope":11813,"src":"162151:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11797,"name":"uint","nodeType":"ElementaryTypeName","src":"162151:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"162117:42:0"},"returnParameters":{"id":11800,"nodeType":"ParameterList","parameters":[],"src":"162174:0:0"},"scope":12159,"src":"162105:176:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11835,"nodeType":"Block","src":"162365:109:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c75696e742c737472696e6729","id":11827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"162415:34:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_9dd12eadc51edb79b050f95e9310706b305e500a52025b74b024df3cbcb53815","typeString":"literal_string \"log(address,address,uint,string)\""},"value":"log(address,address,uint,string)"},{"id":11828,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11815,"src":"162451:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11829,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11817,"src":"162455:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11830,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11819,"src":"162459:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11831,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11821,"src":"162463:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9dd12eadc51edb79b050f95e9310706b305e500a52025b74b024df3cbcb53815","typeString":"literal_string \"log(address,address,uint,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":11825,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"162391:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11826,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"162395:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"162391:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"162391:75:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11824,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"162375:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"162375:92:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11834,"nodeType":"ExpressionStatement","src":"162375:92:0"}]},"id":11836,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"162296:3:0","nodeType":"FunctionDefinition","parameters":{"id":11822,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11815,"mutability":"mutable","name":"p0","nameLocation":"162308:2:0","nodeType":"VariableDeclaration","scope":11836,"src":"162300:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11814,"name":"address","nodeType":"ElementaryTypeName","src":"162300:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11817,"mutability":"mutable","name":"p1","nameLocation":"162320:2:0","nodeType":"VariableDeclaration","scope":11836,"src":"162312:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11816,"name":"address","nodeType":"ElementaryTypeName","src":"162312:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11819,"mutability":"mutable","name":"p2","nameLocation":"162329:2:0","nodeType":"VariableDeclaration","scope":11836,"src":"162324:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11818,"name":"uint","nodeType":"ElementaryTypeName","src":"162324:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11821,"mutability":"mutable","name":"p3","nameLocation":"162347:2:0","nodeType":"VariableDeclaration","scope":11836,"src":"162333:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11820,"name":"string","nodeType":"ElementaryTypeName","src":"162333:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"162299:51:0"},"returnParameters":{"id":11823,"nodeType":"ParameterList","parameters":[],"src":"162365:0:0"},"scope":12159,"src":"162287:187:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11858,"nodeType":"Block","src":"162549:107:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c75696e742c626f6f6c29","id":11850,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"162599:32:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_c2f688eccc5824e4375e54ae0df7ae9f757b0758319e26fa7dcc6a4450e1d411","typeString":"literal_string \"log(address,address,uint,bool)\""},"value":"log(address,address,uint,bool)"},{"id":11851,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11838,"src":"162633:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11852,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11840,"src":"162637:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11853,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11842,"src":"162641:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11854,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11844,"src":"162645:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c2f688eccc5824e4375e54ae0df7ae9f757b0758319e26fa7dcc6a4450e1d411","typeString":"literal_string \"log(address,address,uint,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":11848,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"162575:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11849,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"162579:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"162575:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"162575:73:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11847,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"162559:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"162559:90:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11857,"nodeType":"ExpressionStatement","src":"162559:90:0"}]},"id":11859,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"162489:3:0","nodeType":"FunctionDefinition","parameters":{"id":11845,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11838,"mutability":"mutable","name":"p0","nameLocation":"162501:2:0","nodeType":"VariableDeclaration","scope":11859,"src":"162493:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11837,"name":"address","nodeType":"ElementaryTypeName","src":"162493:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11840,"mutability":"mutable","name":"p1","nameLocation":"162513:2:0","nodeType":"VariableDeclaration","scope":11859,"src":"162505:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11839,"name":"address","nodeType":"ElementaryTypeName","src":"162505:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11842,"mutability":"mutable","name":"p2","nameLocation":"162522:2:0","nodeType":"VariableDeclaration","scope":11859,"src":"162517:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11841,"name":"uint","nodeType":"ElementaryTypeName","src":"162517:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11844,"mutability":"mutable","name":"p3","nameLocation":"162531:2:0","nodeType":"VariableDeclaration","scope":11859,"src":"162526:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11843,"name":"bool","nodeType":"ElementaryTypeName","src":"162526:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"162492:42:0"},"returnParameters":{"id":11846,"nodeType":"ParameterList","parameters":[],"src":"162549:0:0"},"scope":12159,"src":"162480:176:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11881,"nodeType":"Block","src":"162734:110:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c75696e742c6164647265737329","id":11873,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"162784:35:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_d6c65276d9b81968c5dbc7d91412af8260979b88b9036d81153645629a214556","typeString":"literal_string \"log(address,address,uint,address)\""},"value":"log(address,address,uint,address)"},{"id":11874,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11861,"src":"162821:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11875,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11863,"src":"162825:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11876,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11865,"src":"162829:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11877,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11867,"src":"162833:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d6c65276d9b81968c5dbc7d91412af8260979b88b9036d81153645629a214556","typeString":"literal_string \"log(address,address,uint,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11871,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"162760:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11872,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"162764:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"162760:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"162760:76:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11870,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"162744:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"162744:93:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11880,"nodeType":"ExpressionStatement","src":"162744:93:0"}]},"id":11882,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"162671:3:0","nodeType":"FunctionDefinition","parameters":{"id":11868,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11861,"mutability":"mutable","name":"p0","nameLocation":"162683:2:0","nodeType":"VariableDeclaration","scope":11882,"src":"162675:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11860,"name":"address","nodeType":"ElementaryTypeName","src":"162675:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11863,"mutability":"mutable","name":"p1","nameLocation":"162695:2:0","nodeType":"VariableDeclaration","scope":11882,"src":"162687:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11862,"name":"address","nodeType":"ElementaryTypeName","src":"162687:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11865,"mutability":"mutable","name":"p2","nameLocation":"162704:2:0","nodeType":"VariableDeclaration","scope":11882,"src":"162699:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11864,"name":"uint","nodeType":"ElementaryTypeName","src":"162699:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11867,"mutability":"mutable","name":"p3","nameLocation":"162716:2:0","nodeType":"VariableDeclaration","scope":11882,"src":"162708:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11866,"name":"address","nodeType":"ElementaryTypeName","src":"162708:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"162674:45:0"},"returnParameters":{"id":11869,"nodeType":"ParameterList","parameters":[],"src":"162734:0:0"},"scope":12159,"src":"162662:182:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11904,"nodeType":"Block","src":"162928:109:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c737472696e672c75696e7429","id":11896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"162978:34:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_04289300eaed00bb9d0d7894f7439ff06a8c4040945c0625e94f6f0c87fb11ba","typeString":"literal_string \"log(address,address,string,uint)\""},"value":"log(address,address,string,uint)"},{"id":11897,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11884,"src":"163014:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11898,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11886,"src":"163018:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11899,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11888,"src":"163022:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11900,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11890,"src":"163026:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_04289300eaed00bb9d0d7894f7439ff06a8c4040945c0625e94f6f0c87fb11ba","typeString":"literal_string \"log(address,address,string,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11894,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"162954:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11895,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"162958:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"162954:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"162954:75:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11893,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"162938:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"162938:92:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11903,"nodeType":"ExpressionStatement","src":"162938:92:0"}]},"id":11905,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"162859:3:0","nodeType":"FunctionDefinition","parameters":{"id":11891,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11884,"mutability":"mutable","name":"p0","nameLocation":"162871:2:0","nodeType":"VariableDeclaration","scope":11905,"src":"162863:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11883,"name":"address","nodeType":"ElementaryTypeName","src":"162863:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11886,"mutability":"mutable","name":"p1","nameLocation":"162883:2:0","nodeType":"VariableDeclaration","scope":11905,"src":"162875:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11885,"name":"address","nodeType":"ElementaryTypeName","src":"162875:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11888,"mutability":"mutable","name":"p2","nameLocation":"162901:2:0","nodeType":"VariableDeclaration","scope":11905,"src":"162887:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11887,"name":"string","nodeType":"ElementaryTypeName","src":"162887:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11890,"mutability":"mutable","name":"p3","nameLocation":"162910:2:0","nodeType":"VariableDeclaration","scope":11905,"src":"162905:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11889,"name":"uint","nodeType":"ElementaryTypeName","src":"162905:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"162862:51:0"},"returnParameters":{"id":11892,"nodeType":"ParameterList","parameters":[],"src":"162928:0:0"},"scope":12159,"src":"162850:187:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11927,"nodeType":"Block","src":"163130:111:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c737472696e672c737472696e6729","id":11919,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"163180:36:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_21bdaf25c85279ffda21e4e2b9f685ff585c62a37c0ebe7ae25670fd06df3aa1","typeString":"literal_string \"log(address,address,string,string)\""},"value":"log(address,address,string,string)"},{"id":11920,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11907,"src":"163218:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11921,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11909,"src":"163222:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11922,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11911,"src":"163226:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11923,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11913,"src":"163230:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_21bdaf25c85279ffda21e4e2b9f685ff585c62a37c0ebe7ae25670fd06df3aa1","typeString":"literal_string \"log(address,address,string,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":11917,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"163156:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11918,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"163160:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"163156:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"163156:77:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11916,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"163140:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"163140:94:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11926,"nodeType":"ExpressionStatement","src":"163140:94:0"}]},"id":11928,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"163052:3:0","nodeType":"FunctionDefinition","parameters":{"id":11914,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11907,"mutability":"mutable","name":"p0","nameLocation":"163064:2:0","nodeType":"VariableDeclaration","scope":11928,"src":"163056:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11906,"name":"address","nodeType":"ElementaryTypeName","src":"163056:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11909,"mutability":"mutable","name":"p1","nameLocation":"163076:2:0","nodeType":"VariableDeclaration","scope":11928,"src":"163068:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11908,"name":"address","nodeType":"ElementaryTypeName","src":"163068:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11911,"mutability":"mutable","name":"p2","nameLocation":"163094:2:0","nodeType":"VariableDeclaration","scope":11928,"src":"163080:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11910,"name":"string","nodeType":"ElementaryTypeName","src":"163080:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11913,"mutability":"mutable","name":"p3","nameLocation":"163112:2:0","nodeType":"VariableDeclaration","scope":11928,"src":"163098:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11912,"name":"string","nodeType":"ElementaryTypeName","src":"163098:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"163055:60:0"},"returnParameters":{"id":11915,"nodeType":"ParameterList","parameters":[],"src":"163130:0:0"},"scope":12159,"src":"163043:198:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11950,"nodeType":"Block","src":"163325:109:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c737472696e672c626f6f6c29","id":11942,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"163375:34:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_6f1a594e70810560eaae5bbc82bc991f1120ac326ec142f6fb212682169447fd","typeString":"literal_string \"log(address,address,string,bool)\""},"value":"log(address,address,string,bool)"},{"id":11943,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11930,"src":"163411:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11944,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11932,"src":"163415:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11945,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11934,"src":"163419:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11946,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11936,"src":"163423:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6f1a594e70810560eaae5bbc82bc991f1120ac326ec142f6fb212682169447fd","typeString":"literal_string \"log(address,address,string,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":11940,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"163351:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11941,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"163355:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"163351:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"163351:75:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11939,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"163335:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"163335:92:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11949,"nodeType":"ExpressionStatement","src":"163335:92:0"}]},"id":11951,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"163256:3:0","nodeType":"FunctionDefinition","parameters":{"id":11937,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11930,"mutability":"mutable","name":"p0","nameLocation":"163268:2:0","nodeType":"VariableDeclaration","scope":11951,"src":"163260:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11929,"name":"address","nodeType":"ElementaryTypeName","src":"163260:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11932,"mutability":"mutable","name":"p1","nameLocation":"163280:2:0","nodeType":"VariableDeclaration","scope":11951,"src":"163272:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11931,"name":"address","nodeType":"ElementaryTypeName","src":"163272:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11934,"mutability":"mutable","name":"p2","nameLocation":"163298:2:0","nodeType":"VariableDeclaration","scope":11951,"src":"163284:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11933,"name":"string","nodeType":"ElementaryTypeName","src":"163284:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11936,"mutability":"mutable","name":"p3","nameLocation":"163307:2:0","nodeType":"VariableDeclaration","scope":11951,"src":"163302:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11935,"name":"bool","nodeType":"ElementaryTypeName","src":"163302:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"163259:51:0"},"returnParameters":{"id":11938,"nodeType":"ParameterList","parameters":[],"src":"163325:0:0"},"scope":12159,"src":"163247:187:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11973,"nodeType":"Block","src":"163521:112:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c737472696e672c6164647265737329","id":11965,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"163571:37:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_8f736d1685010d3a1ac02ed96109cdd5141fd92077c14203bc63442ad9b6a687","typeString":"literal_string \"log(address,address,string,address)\""},"value":"log(address,address,string,address)"},{"id":11966,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11953,"src":"163610:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11967,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11955,"src":"163614:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11968,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11957,"src":"163618:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11969,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11959,"src":"163622:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8f736d1685010d3a1ac02ed96109cdd5141fd92077c14203bc63442ad9b6a687","typeString":"literal_string \"log(address,address,string,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11963,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"163547:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11964,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"163551:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"163547:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"163547:78:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11962,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"163531:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"163531:95:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11972,"nodeType":"ExpressionStatement","src":"163531:95:0"}]},"id":11974,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"163449:3:0","nodeType":"FunctionDefinition","parameters":{"id":11960,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11953,"mutability":"mutable","name":"p0","nameLocation":"163461:2:0","nodeType":"VariableDeclaration","scope":11974,"src":"163453:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11952,"name":"address","nodeType":"ElementaryTypeName","src":"163453:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11955,"mutability":"mutable","name":"p1","nameLocation":"163473:2:0","nodeType":"VariableDeclaration","scope":11974,"src":"163465:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11954,"name":"address","nodeType":"ElementaryTypeName","src":"163465:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11957,"mutability":"mutable","name":"p2","nameLocation":"163491:2:0","nodeType":"VariableDeclaration","scope":11974,"src":"163477:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11956,"name":"string","nodeType":"ElementaryTypeName","src":"163477:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11959,"mutability":"mutable","name":"p3","nameLocation":"163503:2:0","nodeType":"VariableDeclaration","scope":11974,"src":"163495:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11958,"name":"address","nodeType":"ElementaryTypeName","src":"163495:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"163452:54:0"},"returnParameters":{"id":11961,"nodeType":"ParameterList","parameters":[],"src":"163521:0:0"},"scope":12159,"src":"163440:193:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11996,"nodeType":"Block","src":"163708:107:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c626f6f6c2c75696e7429","id":11988,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"163758:32:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_95d65f110e4042ee84d162cfc6d17a44c2f2784259e33c97679d21e7a95a841e","typeString":"literal_string \"log(address,address,bool,uint)\""},"value":"log(address,address,bool,uint)"},{"id":11989,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11976,"src":"163792:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11990,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11978,"src":"163796:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11991,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11980,"src":"163800:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11992,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11982,"src":"163804:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_95d65f110e4042ee84d162cfc6d17a44c2f2784259e33c97679d21e7a95a841e","typeString":"literal_string \"log(address,address,bool,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11986,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"163734:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11987,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"163738:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"163734:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"163734:73:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11985,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"163718:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"163718:90:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11995,"nodeType":"ExpressionStatement","src":"163718:90:0"}]},"id":11997,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"163648:3:0","nodeType":"FunctionDefinition","parameters":{"id":11983,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11976,"mutability":"mutable","name":"p0","nameLocation":"163660:2:0","nodeType":"VariableDeclaration","scope":11997,"src":"163652:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11975,"name":"address","nodeType":"ElementaryTypeName","src":"163652:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11978,"mutability":"mutable","name":"p1","nameLocation":"163672:2:0","nodeType":"VariableDeclaration","scope":11997,"src":"163664:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11977,"name":"address","nodeType":"ElementaryTypeName","src":"163664:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11980,"mutability":"mutable","name":"p2","nameLocation":"163681:2:0","nodeType":"VariableDeclaration","scope":11997,"src":"163676:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11979,"name":"bool","nodeType":"ElementaryTypeName","src":"163676:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11982,"mutability":"mutable","name":"p3","nameLocation":"163690:2:0","nodeType":"VariableDeclaration","scope":11997,"src":"163685:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11981,"name":"uint","nodeType":"ElementaryTypeName","src":"163685:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"163651:42:0"},"returnParameters":{"id":11984,"nodeType":"ParameterList","parameters":[],"src":"163708:0:0"},"scope":12159,"src":"163639:176:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12019,"nodeType":"Block","src":"163899:109:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c626f6f6c2c737472696e6729","id":12011,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"163949:34:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_aa6540c8e9a40f69e022e01a14ab22c94aae4999f1d7a246236f464d7c933b88","typeString":"literal_string \"log(address,address,bool,string)\""},"value":"log(address,address,bool,string)"},{"id":12012,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11999,"src":"163985:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12013,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12001,"src":"163989:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12014,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12003,"src":"163993:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12015,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12005,"src":"163997:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_aa6540c8e9a40f69e022e01a14ab22c94aae4999f1d7a246236f464d7c933b88","typeString":"literal_string \"log(address,address,bool,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":12009,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"163925:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12010,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"163929:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"163925:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"163925:75:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12008,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"163909:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"163909:92:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12018,"nodeType":"ExpressionStatement","src":"163909:92:0"}]},"id":12020,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"163830:3:0","nodeType":"FunctionDefinition","parameters":{"id":12006,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11999,"mutability":"mutable","name":"p0","nameLocation":"163842:2:0","nodeType":"VariableDeclaration","scope":12020,"src":"163834:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11998,"name":"address","nodeType":"ElementaryTypeName","src":"163834:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12001,"mutability":"mutable","name":"p1","nameLocation":"163854:2:0","nodeType":"VariableDeclaration","scope":12020,"src":"163846:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12000,"name":"address","nodeType":"ElementaryTypeName","src":"163846:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12003,"mutability":"mutable","name":"p2","nameLocation":"163863:2:0","nodeType":"VariableDeclaration","scope":12020,"src":"163858:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12002,"name":"bool","nodeType":"ElementaryTypeName","src":"163858:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12005,"mutability":"mutable","name":"p3","nameLocation":"163881:2:0","nodeType":"VariableDeclaration","scope":12020,"src":"163867:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12004,"name":"string","nodeType":"ElementaryTypeName","src":"163867:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"163833:51:0"},"returnParameters":{"id":12007,"nodeType":"ParameterList","parameters":[],"src":"163899:0:0"},"scope":12159,"src":"163821:187:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12042,"nodeType":"Block","src":"164083:107:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c626f6f6c2c626f6f6c29","id":12034,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"164133:32:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_2cd4134aedbc2cd722f2b9715dc3acb74b16b253590361dd98a4d6cb66119b65","typeString":"literal_string \"log(address,address,bool,bool)\""},"value":"log(address,address,bool,bool)"},{"id":12035,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12022,"src":"164167:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12036,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12024,"src":"164171:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12037,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12026,"src":"164175:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12038,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12028,"src":"164179:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2cd4134aedbc2cd722f2b9715dc3acb74b16b253590361dd98a4d6cb66119b65","typeString":"literal_string \"log(address,address,bool,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":12032,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"164109:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12033,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"164113:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"164109:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"164109:73:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12031,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"164093:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"164093:90:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12041,"nodeType":"ExpressionStatement","src":"164093:90:0"}]},"id":12043,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"164023:3:0","nodeType":"FunctionDefinition","parameters":{"id":12029,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12022,"mutability":"mutable","name":"p0","nameLocation":"164035:2:0","nodeType":"VariableDeclaration","scope":12043,"src":"164027:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12021,"name":"address","nodeType":"ElementaryTypeName","src":"164027:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12024,"mutability":"mutable","name":"p1","nameLocation":"164047:2:0","nodeType":"VariableDeclaration","scope":12043,"src":"164039:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12023,"name":"address","nodeType":"ElementaryTypeName","src":"164039:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12026,"mutability":"mutable","name":"p2","nameLocation":"164056:2:0","nodeType":"VariableDeclaration","scope":12043,"src":"164051:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12025,"name":"bool","nodeType":"ElementaryTypeName","src":"164051:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12028,"mutability":"mutable","name":"p3","nameLocation":"164065:2:0","nodeType":"VariableDeclaration","scope":12043,"src":"164060:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12027,"name":"bool","nodeType":"ElementaryTypeName","src":"164060:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"164026:42:0"},"returnParameters":{"id":12030,"nodeType":"ParameterList","parameters":[],"src":"164083:0:0"},"scope":12159,"src":"164014:176:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12065,"nodeType":"Block","src":"164268:110:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c626f6f6c2c6164647265737329","id":12057,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"164318:35:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_9f1bc36e6c1a1385bfe3a230338e478ee5447b81d25d35962aff021b2c578b9c","typeString":"literal_string \"log(address,address,bool,address)\""},"value":"log(address,address,bool,address)"},{"id":12058,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12045,"src":"164355:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12059,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12047,"src":"164359:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12060,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12049,"src":"164363:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12061,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12051,"src":"164367:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9f1bc36e6c1a1385bfe3a230338e478ee5447b81d25d35962aff021b2c578b9c","typeString":"literal_string \"log(address,address,bool,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12055,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"164294:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12056,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"164298:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"164294:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"164294:76:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12054,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"164278:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"164278:93:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12064,"nodeType":"ExpressionStatement","src":"164278:93:0"}]},"id":12066,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"164205:3:0","nodeType":"FunctionDefinition","parameters":{"id":12052,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12045,"mutability":"mutable","name":"p0","nameLocation":"164217:2:0","nodeType":"VariableDeclaration","scope":12066,"src":"164209:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12044,"name":"address","nodeType":"ElementaryTypeName","src":"164209:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12047,"mutability":"mutable","name":"p1","nameLocation":"164229:2:0","nodeType":"VariableDeclaration","scope":12066,"src":"164221:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12046,"name":"address","nodeType":"ElementaryTypeName","src":"164221:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12049,"mutability":"mutable","name":"p2","nameLocation":"164238:2:0","nodeType":"VariableDeclaration","scope":12066,"src":"164233:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12048,"name":"bool","nodeType":"ElementaryTypeName","src":"164233:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12051,"mutability":"mutable","name":"p3","nameLocation":"164250:2:0","nodeType":"VariableDeclaration","scope":12066,"src":"164242:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12050,"name":"address","nodeType":"ElementaryTypeName","src":"164242:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"164208:45:0"},"returnParameters":{"id":12053,"nodeType":"ParameterList","parameters":[],"src":"164268:0:0"},"scope":12159,"src":"164196:182:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12088,"nodeType":"Block","src":"164456:110:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c616464726573732c75696e7429","id":12080,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"164506:35:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_ed5eac8706392442fff9f76d5de4d50b9cc22387f3f19d447470771094406028","typeString":"literal_string \"log(address,address,address,uint)\""},"value":"log(address,address,address,uint)"},{"id":12081,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12068,"src":"164543:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12082,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12070,"src":"164547:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12083,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12072,"src":"164551:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12084,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12074,"src":"164555:2:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ed5eac8706392442fff9f76d5de4d50b9cc22387f3f19d447470771094406028","typeString":"literal_string \"log(address,address,address,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12078,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"164482:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12079,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"164486:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"164482:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"164482:76:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12077,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"164466:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"164466:93:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12087,"nodeType":"ExpressionStatement","src":"164466:93:0"}]},"id":12089,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"164393:3:0","nodeType":"FunctionDefinition","parameters":{"id":12075,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12068,"mutability":"mutable","name":"p0","nameLocation":"164405:2:0","nodeType":"VariableDeclaration","scope":12089,"src":"164397:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12067,"name":"address","nodeType":"ElementaryTypeName","src":"164397:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12070,"mutability":"mutable","name":"p1","nameLocation":"164417:2:0","nodeType":"VariableDeclaration","scope":12089,"src":"164409:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12069,"name":"address","nodeType":"ElementaryTypeName","src":"164409:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12072,"mutability":"mutable","name":"p2","nameLocation":"164429:2:0","nodeType":"VariableDeclaration","scope":12089,"src":"164421:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12071,"name":"address","nodeType":"ElementaryTypeName","src":"164421:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12074,"mutability":"mutable","name":"p3","nameLocation":"164438:2:0","nodeType":"VariableDeclaration","scope":12089,"src":"164433:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12073,"name":"uint","nodeType":"ElementaryTypeName","src":"164433:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"164396:45:0"},"returnParameters":{"id":12076,"nodeType":"ParameterList","parameters":[],"src":"164456:0:0"},"scope":12159,"src":"164384:182:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12111,"nodeType":"Block","src":"164653:112:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c616464726573732c737472696e6729","id":12103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"164703:37:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_f808da2086fed855c3e15d9dbfed3b17a93ed9a59947aae6ab05b7e18576f025","typeString":"literal_string \"log(address,address,address,string)\""},"value":"log(address,address,address,string)"},{"id":12104,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12091,"src":"164742:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12105,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12093,"src":"164746:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12106,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12095,"src":"164750:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12107,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12097,"src":"164754:2:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f808da2086fed855c3e15d9dbfed3b17a93ed9a59947aae6ab05b7e18576f025","typeString":"literal_string \"log(address,address,address,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":12101,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"164679:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12102,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"164683:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"164679:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"164679:78:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12100,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"164663:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"164663:95:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12110,"nodeType":"ExpressionStatement","src":"164663:95:0"}]},"id":12112,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"164581:3:0","nodeType":"FunctionDefinition","parameters":{"id":12098,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12091,"mutability":"mutable","name":"p0","nameLocation":"164593:2:0","nodeType":"VariableDeclaration","scope":12112,"src":"164585:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12090,"name":"address","nodeType":"ElementaryTypeName","src":"164585:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12093,"mutability":"mutable","name":"p1","nameLocation":"164605:2:0","nodeType":"VariableDeclaration","scope":12112,"src":"164597:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12092,"name":"address","nodeType":"ElementaryTypeName","src":"164597:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12095,"mutability":"mutable","name":"p2","nameLocation":"164617:2:0","nodeType":"VariableDeclaration","scope":12112,"src":"164609:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12094,"name":"address","nodeType":"ElementaryTypeName","src":"164609:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12097,"mutability":"mutable","name":"p3","nameLocation":"164635:2:0","nodeType":"VariableDeclaration","scope":12112,"src":"164621:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12096,"name":"string","nodeType":"ElementaryTypeName","src":"164621:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"164584:54:0"},"returnParameters":{"id":12099,"nodeType":"ParameterList","parameters":[],"src":"164653:0:0"},"scope":12159,"src":"164572:193:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12134,"nodeType":"Block","src":"164843:110:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c616464726573732c626f6f6c29","id":12126,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"164893:35:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_0e378994a4cd2663acfd73a7ad4e09d196e4fb7ee05b7cdf0708eb30271e2afb","typeString":"literal_string \"log(address,address,address,bool)\""},"value":"log(address,address,address,bool)"},{"id":12127,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12114,"src":"164930:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12128,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12116,"src":"164934:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12129,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12118,"src":"164938:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12130,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12120,"src":"164942:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0e378994a4cd2663acfd73a7ad4e09d196e4fb7ee05b7cdf0708eb30271e2afb","typeString":"literal_string \"log(address,address,address,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":12124,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"164869:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12125,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"164873:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"164869:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"164869:76:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12123,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"164853:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"164853:93:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12133,"nodeType":"ExpressionStatement","src":"164853:93:0"}]},"id":12135,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"164780:3:0","nodeType":"FunctionDefinition","parameters":{"id":12121,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12114,"mutability":"mutable","name":"p0","nameLocation":"164792:2:0","nodeType":"VariableDeclaration","scope":12135,"src":"164784:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12113,"name":"address","nodeType":"ElementaryTypeName","src":"164784:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12116,"mutability":"mutable","name":"p1","nameLocation":"164804:2:0","nodeType":"VariableDeclaration","scope":12135,"src":"164796:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12115,"name":"address","nodeType":"ElementaryTypeName","src":"164796:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12118,"mutability":"mutable","name":"p2","nameLocation":"164816:2:0","nodeType":"VariableDeclaration","scope":12135,"src":"164808:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12117,"name":"address","nodeType":"ElementaryTypeName","src":"164808:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12120,"mutability":"mutable","name":"p3","nameLocation":"164825:2:0","nodeType":"VariableDeclaration","scope":12135,"src":"164820:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12119,"name":"bool","nodeType":"ElementaryTypeName","src":"164820:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"164783:45:0"},"returnParameters":{"id":12122,"nodeType":"ParameterList","parameters":[],"src":"164843:0:0"},"scope":12159,"src":"164771:182:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12157,"nodeType":"Block","src":"165034:113:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c616464726573732c6164647265737329","id":12149,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"165084:38:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_665bf1345e006aa321c0b6b71bed55ce0d6cdd812632f8c43114f62c55ffa0b5","typeString":"literal_string \"log(address,address,address,address)\""},"value":"log(address,address,address,address)"},{"id":12150,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12137,"src":"165124:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12151,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12139,"src":"165128:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12152,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12141,"src":"165132:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12153,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12143,"src":"165136:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_665bf1345e006aa321c0b6b71bed55ce0d6cdd812632f8c43114f62c55ffa0b5","typeString":"literal_string \"log(address,address,address,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12147,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"165060:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12148,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"165064:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"165060:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"165060:79:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12146,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"165044:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"165044:96:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12156,"nodeType":"ExpressionStatement","src":"165044:96:0"}]},"id":12158,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"164968:3:0","nodeType":"FunctionDefinition","parameters":{"id":12144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12137,"mutability":"mutable","name":"p0","nameLocation":"164980:2:0","nodeType":"VariableDeclaration","scope":12158,"src":"164972:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12136,"name":"address","nodeType":"ElementaryTypeName","src":"164972:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12139,"mutability":"mutable","name":"p1","nameLocation":"164992:2:0","nodeType":"VariableDeclaration","scope":12158,"src":"164984:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12138,"name":"address","nodeType":"ElementaryTypeName","src":"164984:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12141,"mutability":"mutable","name":"p2","nameLocation":"165004:2:0","nodeType":"VariableDeclaration","scope":12158,"src":"164996:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12140,"name":"address","nodeType":"ElementaryTypeName","src":"164996:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12143,"mutability":"mutable","name":"p3","nameLocation":"165016:2:0","nodeType":"VariableDeclaration","scope":12158,"src":"165008:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12142,"name":"address","nodeType":"ElementaryTypeName","src":"165008:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"164971:48:0"},"returnParameters":{"id":12145,"nodeType":"ParameterList","parameters":[],"src":"165034:0:0"},"scope":12159,"src":"164959:188:0","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":20815,"src":"97901:67248:0","usedErrors":[],"usedEvents":[]},{"abstract":false,"baseContracts":[],"canonicalName":"IERC1967","contractDependencies":[],"contractKind":"interface","documentation":{"id":12160,"nodeType":"StructuredDocumentation","src":"165330:101:0","text":" @dev ERC-1967: Proxy Storage Slots. This interface contains the events defined in the ERC."},"fullyImplemented":true,"id":12178,"linearizedBaseContracts":[12178],"name":"IERC1967","nameLocation":"165442:8:0","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":12161,"nodeType":"StructuredDocumentation","src":"165457:68:0","text":" @dev Emitted when the implementation is upgraded."},"eventSelector":"bc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","id":12165,"name":"Upgraded","nameLocation":"165536:8:0","nodeType":"EventDefinition","parameters":{"id":12164,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12163,"indexed":true,"mutability":"mutable","name":"implementation","nameLocation":"165561:14:0","nodeType":"VariableDeclaration","scope":12165,"src":"165545:30:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12162,"name":"address","nodeType":"ElementaryTypeName","src":"165545:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"165544:32:0"},"src":"165530:47:0"},{"anonymous":false,"documentation":{"id":12166,"nodeType":"StructuredDocumentation","src":"165583:67:0","text":" @dev Emitted when the admin account has changed."},"eventSelector":"7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f","id":12172,"name":"AdminChanged","nameLocation":"165661:12:0","nodeType":"EventDefinition","parameters":{"id":12171,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12168,"indexed":false,"mutability":"mutable","name":"previousAdmin","nameLocation":"165682:13:0","nodeType":"VariableDeclaration","scope":12172,"src":"165674:21:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12167,"name":"address","nodeType":"ElementaryTypeName","src":"165674:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12170,"indexed":false,"mutability":"mutable","name":"newAdmin","nameLocation":"165705:8:0","nodeType":"VariableDeclaration","scope":12172,"src":"165697:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12169,"name":"address","nodeType":"ElementaryTypeName","src":"165697:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"165673:41:0"},"src":"165655:60:0"},{"anonymous":false,"documentation":{"id":12173,"nodeType":"StructuredDocumentation","src":"165721:59:0","text":" @dev Emitted when the beacon is changed."},"eventSelector":"1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e","id":12177,"name":"BeaconUpgraded","nameLocation":"165791:14:0","nodeType":"EventDefinition","parameters":{"id":12176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12175,"indexed":true,"mutability":"mutable","name":"beacon","nameLocation":"165822:6:0","nodeType":"VariableDeclaration","scope":12177,"src":"165806:22:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12174,"name":"address","nodeType":"ElementaryTypeName","src":"165806:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"165805:24:0"},"src":"165785:45:0"}],"scope":20815,"src":"165432:400:0","usedErrors":[],"usedEvents":[12165,12172,12177]},{"abstract":true,"baseContracts":[],"canonicalName":"Proxy","contractDependencies":[],"contractKind":"contract","documentation":{"id":12179,"nodeType":"StructuredDocumentation","src":"165997:598:0","text":" @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM\n instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to\n be specified by overriding the virtual {_implementation} function.\n Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a\n different contract through the {_delegate} function.\n The success and return data of the delegated call will be returned back to the caller of the proxy."},"fullyImplemented":false,"id":12212,"linearizedBaseContracts":[12212],"name":"Proxy","nameLocation":"166614:5:0","nodeType":"ContractDefinition","nodes":[{"body":{"id":12186,"nodeType":"Block","src":"166881:835:0","statements":[{"AST":{"nativeSrc":"166900:810:0","nodeType":"YulBlock","src":"166900:810:0","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"167153:1:0","nodeType":"YulLiteral","src":"167153:1:0","type":"","value":"0"},{"kind":"number","nativeSrc":"167156:1:0","nodeType":"YulLiteral","src":"167156:1:0","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"167159:12:0","nodeType":"YulIdentifier","src":"167159:12:0"},"nativeSrc":"167159:14:0","nodeType":"YulFunctionCall","src":"167159:14:0"}],"functionName":{"name":"calldatacopy","nativeSrc":"167140:12:0","nodeType":"YulIdentifier","src":"167140:12:0"},"nativeSrc":"167140:34:0","nodeType":"YulFunctionCall","src":"167140:34:0"},"nativeSrc":"167140:34:0","nodeType":"YulExpressionStatement","src":"167140:34:0"},{"nativeSrc":"167301:74:0","nodeType":"YulVariableDeclaration","src":"167301:74:0","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"167328:3:0","nodeType":"YulIdentifier","src":"167328:3:0"},"nativeSrc":"167328:5:0","nodeType":"YulFunctionCall","src":"167328:5:0"},{"name":"implementation","nativeSrc":"167335:14:0","nodeType":"YulIdentifier","src":"167335:14:0"},{"kind":"number","nativeSrc":"167351:1:0","nodeType":"YulLiteral","src":"167351:1:0","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"167354:12:0","nodeType":"YulIdentifier","src":"167354:12:0"},"nativeSrc":"167354:14:0","nodeType":"YulFunctionCall","src":"167354:14:0"},{"kind":"number","nativeSrc":"167370:1:0","nodeType":"YulLiteral","src":"167370:1:0","type":"","value":"0"},{"kind":"number","nativeSrc":"167373:1:0","nodeType":"YulLiteral","src":"167373:1:0","type":"","value":"0"}],"functionName":{"name":"delegatecall","nativeSrc":"167315:12:0","nodeType":"YulIdentifier","src":"167315:12:0"},"nativeSrc":"167315:60:0","nodeType":"YulFunctionCall","src":"167315:60:0"},"variables":[{"name":"result","nativeSrc":"167305:6:0","nodeType":"YulTypedName","src":"167305:6:0","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"167443:1:0","nodeType":"YulLiteral","src":"167443:1:0","type":"","value":"0"},{"kind":"number","nativeSrc":"167446:1:0","nodeType":"YulLiteral","src":"167446:1:0","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"167449:14:0","nodeType":"YulIdentifier","src":"167449:14:0"},"nativeSrc":"167449:16:0","nodeType":"YulFunctionCall","src":"167449:16:0"}],"functionName":{"name":"returndatacopy","nativeSrc":"167428:14:0","nodeType":"YulIdentifier","src":"167428:14:0"},"nativeSrc":"167428:38:0","nodeType":"YulFunctionCall","src":"167428:38:0"},"nativeSrc":"167428:38:0","nodeType":"YulExpressionStatement","src":"167428:38:0"},{"cases":[{"body":{"nativeSrc":"167561:59:0","nodeType":"YulBlock","src":"167561:59:0","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"167586:1:0","nodeType":"YulLiteral","src":"167586:1:0","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"167589:14:0","nodeType":"YulIdentifier","src":"167589:14:0"},"nativeSrc":"167589:16:0","nodeType":"YulFunctionCall","src":"167589:16:0"}],"functionName":{"name":"revert","nativeSrc":"167579:6:0","nodeType":"YulIdentifier","src":"167579:6:0"},"nativeSrc":"167579:27:0","nodeType":"YulFunctionCall","src":"167579:27:0"},"nativeSrc":"167579:27:0","nodeType":"YulExpressionStatement","src":"167579:27:0"}]},"nativeSrc":"167554:66:0","nodeType":"YulCase","src":"167554:66:0","value":{"kind":"number","nativeSrc":"167559:1:0","nodeType":"YulLiteral","src":"167559:1:0","type":"","value":"0"}},{"body":{"nativeSrc":"167641:59:0","nodeType":"YulBlock","src":"167641:59:0","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"167666:1:0","nodeType":"YulLiteral","src":"167666:1:0","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"167669:14:0","nodeType":"YulIdentifier","src":"167669:14:0"},"nativeSrc":"167669:16:0","nodeType":"YulFunctionCall","src":"167669:16:0"}],"functionName":{"name":"return","nativeSrc":"167659:6:0","nodeType":"YulIdentifier","src":"167659:6:0"},"nativeSrc":"167659:27:0","nodeType":"YulFunctionCall","src":"167659:27:0"},"nativeSrc":"167659:27:0","nodeType":"YulExpressionStatement","src":"167659:27:0"}]},"nativeSrc":"167633:67:0","nodeType":"YulCase","src":"167633:67:0","value":"default"}],"expression":{"name":"result","nativeSrc":"167487:6:0","nodeType":"YulIdentifier","src":"167487:6:0"},"nativeSrc":"167480:220:0","nodeType":"YulSwitch","src":"167480:220:0"}]},"evmVersion":"paris","externalReferences":[{"declaration":12182,"isOffset":false,"isSlot":false,"src":"167335:14:0","valueSize":1}],"id":12185,"nodeType":"InlineAssembly","src":"166891:819:0"}]},"documentation":{"id":12180,"nodeType":"StructuredDocumentation","src":"166626:190:0","text":" @dev Delegates the current call to `implementation`.\n This function does not return to its internal call site, it will return directly to the external caller."},"id":12187,"implemented":true,"kind":"function","modifiers":[],"name":"_delegate","nameLocation":"166830:9:0","nodeType":"FunctionDefinition","parameters":{"id":12183,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12182,"mutability":"mutable","name":"implementation","nameLocation":"166848:14:0","nodeType":"VariableDeclaration","scope":12187,"src":"166840:22:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12181,"name":"address","nodeType":"ElementaryTypeName","src":"166840:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"166839:24:0"},"returnParameters":{"id":12184,"nodeType":"ParameterList","parameters":[],"src":"166881:0:0"},"scope":12212,"src":"166821:895:0","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"documentation":{"id":12188,"nodeType":"StructuredDocumentation","src":"167722:173:0","text":" @dev This is a virtual function that should be overridden so it returns the address to which the fallback\n function and {_fallback} should delegate."},"id":12193,"implemented":false,"kind":"function","modifiers":[],"name":"_implementation","nameLocation":"167909:15:0","nodeType":"FunctionDefinition","parameters":{"id":12189,"nodeType":"ParameterList","parameters":[],"src":"167924:2:0"},"returnParameters":{"id":12192,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12191,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12193,"src":"167958:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12190,"name":"address","nodeType":"ElementaryTypeName","src":"167958:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"167957:9:0"},"scope":12212,"src":"167900:67:0","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":12202,"nodeType":"Block","src":"168233:45:0","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":12198,"name":"_implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12193,"src":"168253:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":12199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"168253:17:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12197,"name":"_delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12187,"src":"168243:9:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":12200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"168243:28:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12201,"nodeType":"ExpressionStatement","src":"168243:28:0"}]},"documentation":{"id":12194,"nodeType":"StructuredDocumentation","src":"167973:217:0","text":" @dev Delegates the current call to the address returned by `_implementation()`.\n This function does not return to its internal call site, it will return directly to the external caller."},"id":12203,"implemented":true,"kind":"function","modifiers":[],"name":"_fallback","nameLocation":"168204:9:0","nodeType":"FunctionDefinition","parameters":{"id":12195,"nodeType":"ParameterList","parameters":[],"src":"168213:2:0"},"returnParameters":{"id":12196,"nodeType":"ParameterList","parameters":[],"src":"168233:0:0"},"scope":12212,"src":"168195:83:0","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":12210,"nodeType":"Block","src":"168511:28:0","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":12207,"name":"_fallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12203,"src":"168521:9:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":12208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"168521:11:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12209,"nodeType":"ExpressionStatement","src":"168521:11:0"}]},"documentation":{"id":12204,"nodeType":"StructuredDocumentation","src":"168284:186:0","text":" @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other\n function in the contract matches the call data."},"id":12211,"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":12205,"nodeType":"ParameterList","parameters":[],"src":"168483:2:0"},"returnParameters":{"id":12206,"nodeType":"ParameterList","parameters":[],"src":"168511:0:0"},"scope":12212,"src":"168475:64:0","stateMutability":"payable","virtual":true,"visibility":"external"}],"scope":20815,"src":"166596:1945:0","usedErrors":[],"usedEvents":[]},{"abstract":false,"baseContracts":[],"canonicalName":"IBeacon","contractDependencies":[],"contractKind":"interface","documentation":{"id":12213,"nodeType":"StructuredDocumentation","src":"168724:79:0","text":" @dev This is the interface that {BeaconProxy} expects of its beacon."},"fullyImplemented":false,"id":12220,"linearizedBaseContracts":[12220],"name":"IBeacon","nameLocation":"168814:7:0","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":12214,"nodeType":"StructuredDocumentation","src":"168828:168:0","text":" @dev Must return an address that can be used as a delegate call target.\n {UpgradeableBeacon} will check that this address is a contract."},"functionSelector":"5c60da1b","id":12219,"implemented":false,"kind":"function","modifiers":[],"name":"implementation","nameLocation":"169010:14:0","nodeType":"FunctionDefinition","parameters":{"id":12215,"nodeType":"ParameterList","parameters":[],"src":"169024:2:0"},"returnParameters":{"id":12218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12217,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12219,"src":"169050:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12216,"name":"address","nodeType":"ElementaryTypeName","src":"169050:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"169049:9:0"},"scope":12220,"src":"169001:58:0","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":20815,"src":"168804:257:0","usedErrors":[],"usedEvents":[]},{"abstract":false,"baseContracts":[],"canonicalName":"Address","contractDependencies":[],"contractKind":"library","documentation":{"id":12221,"nodeType":"StructuredDocumentation","src":"169230:67:0","text":" @dev Collection of functions related to the address type"},"fullyImplemented":true,"id":12471,"linearizedBaseContracts":[12471],"name":"Address","nameLocation":"169306:7:0","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":12222,"nodeType":"StructuredDocumentation","src":"169320:94:0","text":" @dev The ETH balance of the account is not enough to perform the operation."},"errorSelector":"cd786059","id":12226,"name":"AddressInsufficientBalance","nameLocation":"169425:26:0","nodeType":"ErrorDefinition","parameters":{"id":12225,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12224,"mutability":"mutable","name":"account","nameLocation":"169460:7:0","nodeType":"VariableDeclaration","scope":12226,"src":"169452:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12223,"name":"address","nodeType":"ElementaryTypeName","src":"169452:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"169451:17:0"},"src":"169419:50:0"},{"documentation":{"id":12227,"nodeType":"StructuredDocumentation","src":"169475:75:0","text":" @dev There's no code at `target` (it is not a contract)."},"errorSelector":"9996b315","id":12231,"name":"AddressEmptyCode","nameLocation":"169561:16:0","nodeType":"ErrorDefinition","parameters":{"id":12230,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12229,"mutability":"mutable","name":"target","nameLocation":"169586:6:0","nodeType":"VariableDeclaration","scope":12231,"src":"169578:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12228,"name":"address","nodeType":"ElementaryTypeName","src":"169578:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"169577:16:0"},"src":"169555:39:0"},{"documentation":{"id":12232,"nodeType":"StructuredDocumentation","src":"169600:89:0","text":" @dev A call to an address target failed. The target may have reverted."},"errorSelector":"1425ea42","id":12234,"name":"FailedInnerCall","nameLocation":"169700:15:0","nodeType":"ErrorDefinition","parameters":{"id":12233,"nodeType":"ParameterList","parameters":[],"src":"169715:2:0"},"src":"169694:24:0"},{"body":{"id":12274,"nodeType":"Block","src":"170705:260:0","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":12244,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"170727:4:0","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$12471","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$12471","typeString":"library Address"}],"id":12243,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"170719:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12242,"name":"address","nodeType":"ElementaryTypeName","src":"170719:7:0","typeDescriptions":{}}},"id":12245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"170719:13:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"170733:7:0","memberName":"balance","nodeType":"MemberAccess","src":"170719:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":12247,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12239,"src":"170743:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"170719:30:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12257,"nodeType":"IfStatement","src":"170715:109:0","trueBody":{"id":12256,"nodeType":"Block","src":"170751:73:0","statements":[{"errorCall":{"arguments":[{"arguments":[{"id":12252,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"170807:4:0","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$12471","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$12471","typeString":"library Address"}],"id":12251,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"170799:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12250,"name":"address","nodeType":"ElementaryTypeName","src":"170799:7:0","typeDescriptions":{}}},"id":12253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"170799:13:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12249,"name":"AddressInsufficientBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12226,"src":"170772:26:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":12254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"170772:41:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":12255,"nodeType":"RevertStatement","src":"170765:48:0"}]}},{"assignments":[12259,null],"declarations":[{"constant":false,"id":12259,"mutability":"mutable","name":"success","nameLocation":"170840:7:0","nodeType":"VariableDeclaration","scope":12274,"src":"170835:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12258,"name":"bool","nodeType":"ElementaryTypeName","src":"170835:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":12266,"initialValue":{"arguments":[{"hexValue":"","id":12264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"170883:2:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":12260,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12237,"src":"170853:9:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":12261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"170863:4:0","memberName":"call","nodeType":"MemberAccess","src":"170853:14:0","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":12263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":12262,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12239,"src":"170875:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"170853:29:0","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":12265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"170853:33:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"170834:52:0"},{"condition":{"id":12268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"170900:8:0","subExpression":{"id":12267,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12259,"src":"170901:7:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12273,"nodeType":"IfStatement","src":"170896:63:0","trueBody":{"id":12272,"nodeType":"Block","src":"170910:49:0","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":12269,"name":"FailedInnerCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12234,"src":"170931:15:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":12270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"170931:17:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":12271,"nodeType":"RevertStatement","src":"170924:24:0"}]}}]},"documentation":{"id":12235,"nodeType":"StructuredDocumentation","src":"169724:905:0","text":" @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.8.20/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]."},"id":12275,"implemented":true,"kind":"function","modifiers":[],"name":"sendValue","nameLocation":"170643:9:0","nodeType":"FunctionDefinition","parameters":{"id":12240,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12237,"mutability":"mutable","name":"recipient","nameLocation":"170669:9:0","nodeType":"VariableDeclaration","scope":12275,"src":"170653:25:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":12236,"name":"address","nodeType":"ElementaryTypeName","src":"170653:15:0","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":12239,"mutability":"mutable","name":"amount","nameLocation":"170688:6:0","nodeType":"VariableDeclaration","scope":12275,"src":"170680:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12238,"name":"uint256","nodeType":"ElementaryTypeName","src":"170680:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"170652:43:0"},"returnParameters":{"id":12241,"nodeType":"ParameterList","parameters":[],"src":"170705:0:0"},"scope":12471,"src":"170634:331:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":12291,"nodeType":"Block","src":"171897:62:0","statements":[{"expression":{"arguments":[{"id":12286,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12278,"src":"171936:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12287,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12280,"src":"171944:4:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":12288,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"171950:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":12285,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12338,"src":"171914:21:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256) returns (bytes memory)"}},"id":12289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"171914:38:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":12284,"id":12290,"nodeType":"Return","src":"171907:45:0"}]},"documentation":{"id":12276,"nodeType":"StructuredDocumentation","src":"170971:832:0","text":" @dev Performs a Solidity function call using a low level `call`. A\n plain `call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason or custom error, it is bubbled\n up by this function (like regular Solidity function calls). However, if\n the call reverted with no returned reason, this function reverts with a\n {FailedInnerCall} error.\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert."},"id":12292,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"171817:12:0","nodeType":"FunctionDefinition","parameters":{"id":12281,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12278,"mutability":"mutable","name":"target","nameLocation":"171838:6:0","nodeType":"VariableDeclaration","scope":12292,"src":"171830:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12277,"name":"address","nodeType":"ElementaryTypeName","src":"171830:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12280,"mutability":"mutable","name":"data","nameLocation":"171859:4:0","nodeType":"VariableDeclaration","scope":12292,"src":"171846:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12279,"name":"bytes","nodeType":"ElementaryTypeName","src":"171846:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"171829:35:0"},"returnParameters":{"id":12284,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12283,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12292,"src":"171883:12:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12282,"name":"bytes","nodeType":"ElementaryTypeName","src":"171883:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"171882:14:0"},"scope":12471,"src":"171808:151:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":12337,"nodeType":"Block","src":"172396:279:0","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":12306,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"172418:4:0","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$12471","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$12471","typeString":"library Address"}],"id":12305,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"172410:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12304,"name":"address","nodeType":"ElementaryTypeName","src":"172410:7:0","typeDescriptions":{}}},"id":12307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"172410:13:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"172424:7:0","memberName":"balance","nodeType":"MemberAccess","src":"172410:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":12309,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12299,"src":"172434:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"172410:29:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12319,"nodeType":"IfStatement","src":"172406:108:0","trueBody":{"id":12318,"nodeType":"Block","src":"172441:73:0","statements":[{"errorCall":{"arguments":[{"arguments":[{"id":12314,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"172497:4:0","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$12471","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$12471","typeString":"library Address"}],"id":12313,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"172489:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12312,"name":"address","nodeType":"ElementaryTypeName","src":"172489:7:0","typeDescriptions":{}}},"id":12315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"172489:13:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12311,"name":"AddressInsufficientBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12226,"src":"172462:26:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":12316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"172462:41:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":12317,"nodeType":"RevertStatement","src":"172455:48:0"}]}},{"assignments":[12321,12323],"declarations":[{"constant":false,"id":12321,"mutability":"mutable","name":"success","nameLocation":"172529:7:0","nodeType":"VariableDeclaration","scope":12337,"src":"172524:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12320,"name":"bool","nodeType":"ElementaryTypeName","src":"172524:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12323,"mutability":"mutable","name":"returndata","nameLocation":"172551:10:0","nodeType":"VariableDeclaration","scope":12337,"src":"172538:23:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12322,"name":"bytes","nodeType":"ElementaryTypeName","src":"172538:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":12330,"initialValue":{"arguments":[{"id":12328,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12297,"src":"172591:4:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":12324,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12295,"src":"172565:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"172572:4:0","memberName":"call","nodeType":"MemberAccess","src":"172565:11:0","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":12327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":12326,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12299,"src":"172584:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"172565:25:0","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":12329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"172565:31:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"172523:73:0"},{"expression":{"arguments":[{"id":12332,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12295,"src":"172640:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12333,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12321,"src":"172648:7:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12334,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12323,"src":"172657:10:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12331,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12430,"src":"172613:26:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bool,bytes memory) view returns (bytes memory)"}},"id":12335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"172613:55:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":12303,"id":12336,"nodeType":"Return","src":"172606:62:0"}]},"documentation":{"id":12293,"nodeType":"StructuredDocumentation","src":"171965:313:0","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`."},"id":12338,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"172292:21:0","nodeType":"FunctionDefinition","parameters":{"id":12300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12295,"mutability":"mutable","name":"target","nameLocation":"172322:6:0","nodeType":"VariableDeclaration","scope":12338,"src":"172314:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12294,"name":"address","nodeType":"ElementaryTypeName","src":"172314:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12297,"mutability":"mutable","name":"data","nameLocation":"172343:4:0","nodeType":"VariableDeclaration","scope":12338,"src":"172330:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12296,"name":"bytes","nodeType":"ElementaryTypeName","src":"172330:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":12299,"mutability":"mutable","name":"value","nameLocation":"172357:5:0","nodeType":"VariableDeclaration","scope":12338,"src":"172349:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12298,"name":"uint256","nodeType":"ElementaryTypeName","src":"172349:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"172313:50:0"},"returnParameters":{"id":12303,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12302,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12338,"src":"172382:12:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12301,"name":"bytes","nodeType":"ElementaryTypeName","src":"172382:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"172381:14:0"},"scope":12471,"src":"172283:392:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":12363,"nodeType":"Block","src":"172914:154:0","statements":[{"assignments":[12349,12351],"declarations":[{"constant":false,"id":12349,"mutability":"mutable","name":"success","nameLocation":"172930:7:0","nodeType":"VariableDeclaration","scope":12363,"src":"172925:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12348,"name":"bool","nodeType":"ElementaryTypeName","src":"172925:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12351,"mutability":"mutable","name":"returndata","nameLocation":"172952:10:0","nodeType":"VariableDeclaration","scope":12363,"src":"172939:23:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12350,"name":"bytes","nodeType":"ElementaryTypeName","src":"172939:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":12356,"initialValue":{"arguments":[{"id":12354,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12343,"src":"172984:4:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":12352,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12341,"src":"172966:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"172973:10:0","memberName":"staticcall","nodeType":"MemberAccess","src":"172966:17:0","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":12355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"172966:23:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"172924:65:0"},{"expression":{"arguments":[{"id":12358,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12341,"src":"173033:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12359,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12349,"src":"173041:7:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12360,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12351,"src":"173050:10:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12357,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12430,"src":"173006:26:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bool,bytes memory) view returns (bytes memory)"}},"id":12361,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"173006:55:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":12347,"id":12362,"nodeType":"Return","src":"172999:62:0"}]},"documentation":{"id":12339,"nodeType":"StructuredDocumentation","src":"172681:128:0","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call."},"id":12364,"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"172823:18:0","nodeType":"FunctionDefinition","parameters":{"id":12344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12341,"mutability":"mutable","name":"target","nameLocation":"172850:6:0","nodeType":"VariableDeclaration","scope":12364,"src":"172842:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12340,"name":"address","nodeType":"ElementaryTypeName","src":"172842:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12343,"mutability":"mutable","name":"data","nameLocation":"172871:4:0","nodeType":"VariableDeclaration","scope":12364,"src":"172858:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12342,"name":"bytes","nodeType":"ElementaryTypeName","src":"172858:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"172841:35:0"},"returnParameters":{"id":12347,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12346,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12364,"src":"172900:12:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12345,"name":"bytes","nodeType":"ElementaryTypeName","src":"172900:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"172899:14:0"},"scope":12471,"src":"172814:254:0","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":12389,"nodeType":"Block","src":"173306:156:0","statements":[{"assignments":[12375,12377],"declarations":[{"constant":false,"id":12375,"mutability":"mutable","name":"success","nameLocation":"173322:7:0","nodeType":"VariableDeclaration","scope":12389,"src":"173317:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12374,"name":"bool","nodeType":"ElementaryTypeName","src":"173317:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12377,"mutability":"mutable","name":"returndata","nameLocation":"173344:10:0","nodeType":"VariableDeclaration","scope":12389,"src":"173331:23:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12376,"name":"bytes","nodeType":"ElementaryTypeName","src":"173331:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":12382,"initialValue":{"arguments":[{"id":12380,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12369,"src":"173378:4:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":12378,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12367,"src":"173358:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"173365:12:0","memberName":"delegatecall","nodeType":"MemberAccess","src":"173358:19:0","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":12381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"173358:25:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"173316:67:0"},{"expression":{"arguments":[{"id":12384,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12367,"src":"173427:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12385,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12375,"src":"173435:7:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12386,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12377,"src":"173444:10:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12383,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12430,"src":"173400:26:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bool,bytes memory) view returns (bytes memory)"}},"id":12387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"173400:55:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":12373,"id":12388,"nodeType":"Return","src":"173393:62:0"}]},"documentation":{"id":12365,"nodeType":"StructuredDocumentation","src":"173074:130:0","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call."},"id":12390,"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"173218:20:0","nodeType":"FunctionDefinition","parameters":{"id":12370,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12367,"mutability":"mutable","name":"target","nameLocation":"173247:6:0","nodeType":"VariableDeclaration","scope":12390,"src":"173239:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12366,"name":"address","nodeType":"ElementaryTypeName","src":"173239:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12369,"mutability":"mutable","name":"data","nameLocation":"173268:4:0","nodeType":"VariableDeclaration","scope":12390,"src":"173255:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12368,"name":"bytes","nodeType":"ElementaryTypeName","src":"173255:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"173238:35:0"},"returnParameters":{"id":12373,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12372,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12390,"src":"173292:12:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12371,"name":"bytes","nodeType":"ElementaryTypeName","src":"173292:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"173291:14:0"},"scope":12471,"src":"173209:253:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":12429,"nodeType":"Block","src":"173886:424:0","statements":[{"condition":{"id":12403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"173900:8:0","subExpression":{"id":12402,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12395,"src":"173901:7:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":12427,"nodeType":"Block","src":"173960:344:0","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":12418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12409,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12397,"src":"174148:10:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":12410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"174159:6:0","memberName":"length","nodeType":"MemberAccess","src":"174148:17:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12411,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"174169:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"174148:22:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":12413,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12393,"src":"174174:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"174181:4:0","memberName":"code","nodeType":"MemberAccess","src":"174174:11:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":12415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"174186:6:0","memberName":"length","nodeType":"MemberAccess","src":"174174:18:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12416,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"174196:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"174174:23:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"174148:49:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12424,"nodeType":"IfStatement","src":"174144:119:0","trueBody":{"id":12423,"nodeType":"Block","src":"174199:64:0","statements":[{"errorCall":{"arguments":[{"id":12420,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12393,"src":"174241:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12419,"name":"AddressEmptyCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12231,"src":"174224:16:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":12421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"174224:24:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":12422,"nodeType":"RevertStatement","src":"174217:31:0"}]}},{"expression":{"id":12425,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12397,"src":"174283:10:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":12401,"id":12426,"nodeType":"Return","src":"174276:17:0"}]},"id":12428,"nodeType":"IfStatement","src":"173896:408:0","trueBody":{"id":12408,"nodeType":"Block","src":"173910:44:0","statements":[{"expression":{"arguments":[{"id":12405,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12397,"src":"173932:10:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12404,"name":"_revert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12470,"src":"173924:7:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"173924:19:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12407,"nodeType":"ExpressionStatement","src":"173924:19:0"}]}}]},"documentation":{"id":12391,"nodeType":"StructuredDocumentation","src":"173468:255:0","text":" @dev Tool to verify that a low level call to smart-contract was successful, and reverts if the target\n was not a contract or bubbling up the revert reason (falling back to {FailedInnerCall}) in case of an\n unsuccessful call."},"id":12430,"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResultFromTarget","nameLocation":"173737:26:0","nodeType":"FunctionDefinition","parameters":{"id":12398,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12393,"mutability":"mutable","name":"target","nameLocation":"173781:6:0","nodeType":"VariableDeclaration","scope":12430,"src":"173773:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12392,"name":"address","nodeType":"ElementaryTypeName","src":"173773:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12395,"mutability":"mutable","name":"success","nameLocation":"173802:7:0","nodeType":"VariableDeclaration","scope":12430,"src":"173797:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12394,"name":"bool","nodeType":"ElementaryTypeName","src":"173797:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12397,"mutability":"mutable","name":"returndata","nameLocation":"173832:10:0","nodeType":"VariableDeclaration","scope":12430,"src":"173819:23:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12396,"name":"bytes","nodeType":"ElementaryTypeName","src":"173819:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"173763:85:0"},"returnParameters":{"id":12401,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12400,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12430,"src":"173872:12:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12399,"name":"bytes","nodeType":"ElementaryTypeName","src":"173872:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"173871:14:0"},"scope":12471,"src":"173728:582:0","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":12451,"nodeType":"Block","src":"174612:122:0","statements":[{"condition":{"id":12441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"174626:8:0","subExpression":{"id":12440,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12433,"src":"174627:7:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":12449,"nodeType":"Block","src":"174686:42:0","statements":[{"expression":{"id":12447,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12435,"src":"174707:10:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":12439,"id":12448,"nodeType":"Return","src":"174700:17:0"}]},"id":12450,"nodeType":"IfStatement","src":"174622:106:0","trueBody":{"id":12446,"nodeType":"Block","src":"174636:44:0","statements":[{"expression":{"arguments":[{"id":12443,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12435,"src":"174658:10:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12442,"name":"_revert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12470,"src":"174650:7:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"174650:19:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12445,"nodeType":"ExpressionStatement","src":"174650:19:0"}]}}]},"documentation":{"id":12431,"nodeType":"StructuredDocumentation","src":"174316:189:0","text":" @dev Tool to verify that a low level call was successful, and reverts if it wasn't, either by bubbling the\n revert reason or with a default {FailedInnerCall} error."},"id":12452,"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResult","nameLocation":"174519:16:0","nodeType":"FunctionDefinition","parameters":{"id":12436,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12433,"mutability":"mutable","name":"success","nameLocation":"174541:7:0","nodeType":"VariableDeclaration","scope":12452,"src":"174536:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12432,"name":"bool","nodeType":"ElementaryTypeName","src":"174536:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12435,"mutability":"mutable","name":"returndata","nameLocation":"174563:10:0","nodeType":"VariableDeclaration","scope":12452,"src":"174550:23:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12434,"name":"bytes","nodeType":"ElementaryTypeName","src":"174550:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"174535:39:0"},"returnParameters":{"id":12439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12438,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12452,"src":"174598:12:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12437,"name":"bytes","nodeType":"ElementaryTypeName","src":"174598:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"174597:14:0"},"scope":12471,"src":"174510:224:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12469,"nodeType":"Block","src":"174901:461:0","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12458,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12455,"src":"174977:10:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":12459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"174988:6:0","memberName":"length","nodeType":"MemberAccess","src":"174977:17:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":12460,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"174997:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"174977:21:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":12467,"nodeType":"Block","src":"175307:49:0","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":12464,"name":"FailedInnerCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12234,"src":"175328:15:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":12465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"175328:17:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":12466,"nodeType":"RevertStatement","src":"175321:24:0"}]},"id":12468,"nodeType":"IfStatement","src":"174973:383:0","trueBody":{"id":12463,"nodeType":"Block","src":"175000:301:0","statements":[{"AST":{"nativeSrc":"175158:133:0","nodeType":"YulBlock","src":"175158:133:0","statements":[{"nativeSrc":"175176:40:0","nodeType":"YulVariableDeclaration","src":"175176:40:0","value":{"arguments":[{"name":"returndata","nativeSrc":"175205:10:0","nodeType":"YulIdentifier","src":"175205:10:0"}],"functionName":{"name":"mload","nativeSrc":"175199:5:0","nodeType":"YulIdentifier","src":"175199:5:0"},"nativeSrc":"175199:17:0","nodeType":"YulFunctionCall","src":"175199:17:0"},"variables":[{"name":"returndata_size","nativeSrc":"175180:15:0","nodeType":"YulTypedName","src":"175180:15:0","type":""}]},{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"175244:2:0","nodeType":"YulLiteral","src":"175244:2:0","type":"","value":"32"},{"name":"returndata","nativeSrc":"175248:10:0","nodeType":"YulIdentifier","src":"175248:10:0"}],"functionName":{"name":"add","nativeSrc":"175240:3:0","nodeType":"YulIdentifier","src":"175240:3:0"},"nativeSrc":"175240:19:0","nodeType":"YulFunctionCall","src":"175240:19:0"},{"name":"returndata_size","nativeSrc":"175261:15:0","nodeType":"YulIdentifier","src":"175261:15:0"}],"functionName":{"name":"revert","nativeSrc":"175233:6:0","nodeType":"YulIdentifier","src":"175233:6:0"},"nativeSrc":"175233:44:0","nodeType":"YulFunctionCall","src":"175233:44:0"},"nativeSrc":"175233:44:0","nodeType":"YulExpressionStatement","src":"175233:44:0"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":12455,"isOffset":false,"isSlot":false,"src":"175205:10:0","valueSize":1},{"declaration":12455,"isOffset":false,"isSlot":false,"src":"175248:10:0","valueSize":1}],"id":12462,"nodeType":"InlineAssembly","src":"175149:142:0"}]}}]},"documentation":{"id":12453,"nodeType":"StructuredDocumentation","src":"174740:101:0","text":" @dev Reverts with returndata if present. Otherwise reverts with {FailedInnerCall}."},"id":12470,"implemented":true,"kind":"function","modifiers":[],"name":"_revert","nameLocation":"174855:7:0","nodeType":"FunctionDefinition","parameters":{"id":12456,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12455,"mutability":"mutable","name":"returndata","nameLocation":"174876:10:0","nodeType":"VariableDeclaration","scope":12470,"src":"174863:23:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12454,"name":"bytes","nodeType":"ElementaryTypeName","src":"174863:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"174862:25:0"},"returnParameters":{"id":12457,"nodeType":"ParameterList","parameters":[],"src":"174901:0:0"},"scope":12471,"src":"174846:516:0","stateMutability":"pure","virtual":false,"visibility":"private"}],"scope":20815,"src":"169298:6066:0","usedErrors":[12226,12231,12234],"usedEvents":[]},{"abstract":true,"baseContracts":[],"canonicalName":"Context","contractDependencies":[],"contractKind":"contract","documentation":{"id":12472,"nodeType":"StructuredDocumentation","src":"175533:496:0","text":" @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts."},"fullyImplemented":true,"id":12499,"linearizedBaseContracts":[12499],"name":"Context","nameLocation":"176048:7:0","nodeType":"ContractDefinition","nodes":[{"body":{"id":12480,"nodeType":"Block","src":"176124:34:0","statements":[{"expression":{"expression":{"id":12477,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"176141:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":12478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"176145:6:0","memberName":"sender","nodeType":"MemberAccess","src":"176141:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":12476,"id":12479,"nodeType":"Return","src":"176134:17:0"}]},"id":12481,"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"176071:10:0","nodeType":"FunctionDefinition","parameters":{"id":12473,"nodeType":"ParameterList","parameters":[],"src":"176081:2:0"},"returnParameters":{"id":12476,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12475,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12481,"src":"176115:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12474,"name":"address","nodeType":"ElementaryTypeName","src":"176115:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"176114:9:0"},"scope":12499,"src":"176062:96:0","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":12489,"nodeType":"Block","src":"176231:32:0","statements":[{"expression":{"expression":{"id":12486,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"176248:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":12487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"176252:4:0","memberName":"data","nodeType":"MemberAccess","src":"176248:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":12485,"id":12488,"nodeType":"Return","src":"176241:15:0"}]},"id":12490,"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"176173:8:0","nodeType":"FunctionDefinition","parameters":{"id":12482,"nodeType":"ParameterList","parameters":[],"src":"176181:2:0"},"returnParameters":{"id":12485,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12484,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12490,"src":"176215:14:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":12483,"name":"bytes","nodeType":"ElementaryTypeName","src":"176215:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"176214:16:0"},"scope":12499,"src":"176164:99:0","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":12497,"nodeType":"Block","src":"176341:25:0","statements":[{"expression":{"hexValue":"30","id":12495,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"176358:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":12494,"id":12496,"nodeType":"Return","src":"176351:8:0"}]},"id":12498,"implemented":true,"kind":"function","modifiers":[],"name":"_contextSuffixLength","nameLocation":"176278:20:0","nodeType":"FunctionDefinition","parameters":{"id":12491,"nodeType":"ParameterList","parameters":[],"src":"176298:2:0"},"returnParameters":{"id":12494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12493,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12498,"src":"176332:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12492,"name":"uint256","nodeType":"ElementaryTypeName","src":"176332:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"176331:9:0"},"scope":12499,"src":"176269:97:0","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":20815,"src":"176030:338:0","usedErrors":[],"usedEvents":[]},{"abstract":false,"baseContracts":[],"canonicalName":"StorageSlot","contractDependencies":[],"contractKind":"library","documentation":{"id":12500,"nodeType":"StructuredDocumentation","src":"176633:1025:0","text":" @dev Library for reading and writing primitive types to specific storage slots.\n Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\n This library helps with reading and writing to such slots without the need for inline assembly.\n The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\n Example usage to set ERC1967 implementation slot:\n ```solidity\n contract ERC1967 {\n bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n function _getImplementation() internal view returns (address) {\n return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\n }\n function _setImplementation(address newImplementation) internal {\n require(newImplementation.code.length > 0);\n StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\n }\n }\n ```"},"fullyImplemented":true,"id":12607,"linearizedBaseContracts":[12607],"name":"StorageSlot","nameLocation":"177667:11:0","nodeType":"ContractDefinition","nodes":[{"canonicalName":"StorageSlot.AddressSlot","id":12503,"members":[{"constant":false,"id":12502,"mutability":"mutable","name":"value","nameLocation":"177722:5:0","nodeType":"VariableDeclaration","scope":12503,"src":"177714:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12501,"name":"address","nodeType":"ElementaryTypeName","src":"177714:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"AddressSlot","nameLocation":"177692:11:0","nodeType":"StructDefinition","scope":12607,"src":"177685:49:0","visibility":"public"},{"canonicalName":"StorageSlot.BooleanSlot","id":12506,"members":[{"constant":false,"id":12505,"mutability":"mutable","name":"value","nameLocation":"177774:5:0","nodeType":"VariableDeclaration","scope":12506,"src":"177769:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12504,"name":"bool","nodeType":"ElementaryTypeName","src":"177769:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"BooleanSlot","nameLocation":"177747:11:0","nodeType":"StructDefinition","scope":12607,"src":"177740:46:0","visibility":"public"},{"canonicalName":"StorageSlot.Bytes32Slot","id":12509,"members":[{"constant":false,"id":12508,"mutability":"mutable","name":"value","nameLocation":"177829:5:0","nodeType":"VariableDeclaration","scope":12509,"src":"177821:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12507,"name":"bytes32","nodeType":"ElementaryTypeName","src":"177821:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"Bytes32Slot","nameLocation":"177799:11:0","nodeType":"StructDefinition","scope":12607,"src":"177792:49:0","visibility":"public"},{"canonicalName":"StorageSlot.Uint256Slot","id":12512,"members":[{"constant":false,"id":12511,"mutability":"mutable","name":"value","nameLocation":"177884:5:0","nodeType":"VariableDeclaration","scope":12512,"src":"177876:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12510,"name":"uint256","nodeType":"ElementaryTypeName","src":"177876:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Uint256Slot","nameLocation":"177854:11:0","nodeType":"StructDefinition","scope":12607,"src":"177847:49:0","visibility":"public"},{"canonicalName":"StorageSlot.StringSlot","id":12515,"members":[{"constant":false,"id":12514,"mutability":"mutable","name":"value","nameLocation":"177937:5:0","nodeType":"VariableDeclaration","scope":12515,"src":"177930:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":12513,"name":"string","nodeType":"ElementaryTypeName","src":"177930:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"name":"StringSlot","nameLocation":"177909:10:0","nodeType":"StructDefinition","scope":12607,"src":"177902:47:0","visibility":"public"},{"canonicalName":"StorageSlot.BytesSlot","id":12518,"members":[{"constant":false,"id":12517,"mutability":"mutable","name":"value","nameLocation":"177988:5:0","nodeType":"VariableDeclaration","scope":12518,"src":"177982:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":12516,"name":"bytes","nodeType":"ElementaryTypeName","src":"177982:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"BytesSlot","nameLocation":"177962:9:0","nodeType":"StructDefinition","scope":12607,"src":"177955:45:0","visibility":"public"},{"body":{"id":12528,"nodeType":"Block","src":"178182:106:0","statements":[{"AST":{"nativeSrc":"178244:38:0","nodeType":"YulBlock","src":"178244:38:0","statements":[{"nativeSrc":"178258:14:0","nodeType":"YulAssignment","src":"178258:14:0","value":{"name":"slot","nativeSrc":"178268:4:0","nodeType":"YulIdentifier","src":"178268:4:0"},"variableNames":[{"name":"r.slot","nativeSrc":"178258:6:0","nodeType":"YulIdentifier","src":"178258:6:0"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":12525,"isOffset":false,"isSlot":true,"src":"178258:6:0","suffix":"slot","valueSize":1},{"declaration":12521,"isOffset":false,"isSlot":false,"src":"178268:4:0","valueSize":1}],"id":12527,"nodeType":"InlineAssembly","src":"178235:47:0"}]},"documentation":{"id":12519,"nodeType":"StructuredDocumentation","src":"178006:87:0","text":" @dev Returns an `AddressSlot` with member `value` located at `slot`."},"id":12529,"implemented":true,"kind":"function","modifiers":[],"name":"getAddressSlot","nameLocation":"178107:14:0","nodeType":"FunctionDefinition","parameters":{"id":12522,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12521,"mutability":"mutable","name":"slot","nameLocation":"178130:4:0","nodeType":"VariableDeclaration","scope":12529,"src":"178122:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12520,"name":"bytes32","nodeType":"ElementaryTypeName","src":"178122:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"178121:14:0"},"returnParameters":{"id":12526,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12525,"mutability":"mutable","name":"r","nameLocation":"178179:1:0","nodeType":"VariableDeclaration","scope":12529,"src":"178159:21:0","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$12503_storage_ptr","typeString":"struct StorageSlot.AddressSlot"},"typeName":{"id":12524,"nodeType":"UserDefinedTypeName","pathNode":{"id":12523,"name":"AddressSlot","nameLocations":["178159:11:0"],"nodeType":"IdentifierPath","referencedDeclaration":12503,"src":"178159:11:0"},"referencedDeclaration":12503,"src":"178159:11:0","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$12503_storage_ptr","typeString":"struct StorageSlot.AddressSlot"}},"visibility":"internal"}],"src":"178158:23:0"},"scope":12607,"src":"178098:190:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12539,"nodeType":"Block","src":"178470:106:0","statements":[{"AST":{"nativeSrc":"178532:38:0","nodeType":"YulBlock","src":"178532:38:0","statements":[{"nativeSrc":"178546:14:0","nodeType":"YulAssignment","src":"178546:14:0","value":{"name":"slot","nativeSrc":"178556:4:0","nodeType":"YulIdentifier","src":"178556:4:0"},"variableNames":[{"name":"r.slot","nativeSrc":"178546:6:0","nodeType":"YulIdentifier","src":"178546:6:0"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":12536,"isOffset":false,"isSlot":true,"src":"178546:6:0","suffix":"slot","valueSize":1},{"declaration":12532,"isOffset":false,"isSlot":false,"src":"178556:4:0","valueSize":1}],"id":12538,"nodeType":"InlineAssembly","src":"178523:47:0"}]},"documentation":{"id":12530,"nodeType":"StructuredDocumentation","src":"178294:87:0","text":" @dev Returns an `BooleanSlot` with member `value` located at `slot`."},"id":12540,"implemented":true,"kind":"function","modifiers":[],"name":"getBooleanSlot","nameLocation":"178395:14:0","nodeType":"FunctionDefinition","parameters":{"id":12533,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12532,"mutability":"mutable","name":"slot","nameLocation":"178418:4:0","nodeType":"VariableDeclaration","scope":12540,"src":"178410:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12531,"name":"bytes32","nodeType":"ElementaryTypeName","src":"178410:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"178409:14:0"},"returnParameters":{"id":12537,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12536,"mutability":"mutable","name":"r","nameLocation":"178467:1:0","nodeType":"VariableDeclaration","scope":12540,"src":"178447:21:0","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BooleanSlot_$12506_storage_ptr","typeString":"struct StorageSlot.BooleanSlot"},"typeName":{"id":12535,"nodeType":"UserDefinedTypeName","pathNode":{"id":12534,"name":"BooleanSlot","nameLocations":["178447:11:0"],"nodeType":"IdentifierPath","referencedDeclaration":12506,"src":"178447:11:0"},"referencedDeclaration":12506,"src":"178447:11:0","typeDescriptions":{"typeIdentifier":"t_struct$_BooleanSlot_$12506_storage_ptr","typeString":"struct StorageSlot.BooleanSlot"}},"visibility":"internal"}],"src":"178446:23:0"},"scope":12607,"src":"178386:190:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12550,"nodeType":"Block","src":"178758:106:0","statements":[{"AST":{"nativeSrc":"178820:38:0","nodeType":"YulBlock","src":"178820:38:0","statements":[{"nativeSrc":"178834:14:0","nodeType":"YulAssignment","src":"178834:14:0","value":{"name":"slot","nativeSrc":"178844:4:0","nodeType":"YulIdentifier","src":"178844:4:0"},"variableNames":[{"name":"r.slot","nativeSrc":"178834:6:0","nodeType":"YulIdentifier","src":"178834:6:0"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":12547,"isOffset":false,"isSlot":true,"src":"178834:6:0","suffix":"slot","valueSize":1},{"declaration":12543,"isOffset":false,"isSlot":false,"src":"178844:4:0","valueSize":1}],"id":12549,"nodeType":"InlineAssembly","src":"178811:47:0"}]},"documentation":{"id":12541,"nodeType":"StructuredDocumentation","src":"178582:87:0","text":" @dev Returns an `Bytes32Slot` with member `value` located at `slot`."},"id":12551,"implemented":true,"kind":"function","modifiers":[],"name":"getBytes32Slot","nameLocation":"178683:14:0","nodeType":"FunctionDefinition","parameters":{"id":12544,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12543,"mutability":"mutable","name":"slot","nameLocation":"178706:4:0","nodeType":"VariableDeclaration","scope":12551,"src":"178698:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12542,"name":"bytes32","nodeType":"ElementaryTypeName","src":"178698:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"178697:14:0"},"returnParameters":{"id":12548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12547,"mutability":"mutable","name":"r","nameLocation":"178755:1:0","nodeType":"VariableDeclaration","scope":12551,"src":"178735:21:0","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$12509_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot"},"typeName":{"id":12546,"nodeType":"UserDefinedTypeName","pathNode":{"id":12545,"name":"Bytes32Slot","nameLocations":["178735:11:0"],"nodeType":"IdentifierPath","referencedDeclaration":12509,"src":"178735:11:0"},"referencedDeclaration":12509,"src":"178735:11:0","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$12509_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot"}},"visibility":"internal"}],"src":"178734:23:0"},"scope":12607,"src":"178674:190:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12561,"nodeType":"Block","src":"179046:106:0","statements":[{"AST":{"nativeSrc":"179108:38:0","nodeType":"YulBlock","src":"179108:38:0","statements":[{"nativeSrc":"179122:14:0","nodeType":"YulAssignment","src":"179122:14:0","value":{"name":"slot","nativeSrc":"179132:4:0","nodeType":"YulIdentifier","src":"179132:4:0"},"variableNames":[{"name":"r.slot","nativeSrc":"179122:6:0","nodeType":"YulIdentifier","src":"179122:6:0"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":12558,"isOffset":false,"isSlot":true,"src":"179122:6:0","suffix":"slot","valueSize":1},{"declaration":12554,"isOffset":false,"isSlot":false,"src":"179132:4:0","valueSize":1}],"id":12560,"nodeType":"InlineAssembly","src":"179099:47:0"}]},"documentation":{"id":12552,"nodeType":"StructuredDocumentation","src":"178870:87:0","text":" @dev Returns an `Uint256Slot` with member `value` located at `slot`."},"id":12562,"implemented":true,"kind":"function","modifiers":[],"name":"getUint256Slot","nameLocation":"178971:14:0","nodeType":"FunctionDefinition","parameters":{"id":12555,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12554,"mutability":"mutable","name":"slot","nameLocation":"178994:4:0","nodeType":"VariableDeclaration","scope":12562,"src":"178986:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12553,"name":"bytes32","nodeType":"ElementaryTypeName","src":"178986:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"178985:14:0"},"returnParameters":{"id":12559,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12558,"mutability":"mutable","name":"r","nameLocation":"179043:1:0","nodeType":"VariableDeclaration","scope":12562,"src":"179023:21:0","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$12512_storage_ptr","typeString":"struct StorageSlot.Uint256Slot"},"typeName":{"id":12557,"nodeType":"UserDefinedTypeName","pathNode":{"id":12556,"name":"Uint256Slot","nameLocations":["179023:11:0"],"nodeType":"IdentifierPath","referencedDeclaration":12512,"src":"179023:11:0"},"referencedDeclaration":12512,"src":"179023:11:0","typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$12512_storage_ptr","typeString":"struct StorageSlot.Uint256Slot"}},"visibility":"internal"}],"src":"179022:23:0"},"scope":12607,"src":"178962:190:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12572,"nodeType":"Block","src":"179331:106:0","statements":[{"AST":{"nativeSrc":"179393:38:0","nodeType":"YulBlock","src":"179393:38:0","statements":[{"nativeSrc":"179407:14:0","nodeType":"YulAssignment","src":"179407:14:0","value":{"name":"slot","nativeSrc":"179417:4:0","nodeType":"YulIdentifier","src":"179417:4:0"},"variableNames":[{"name":"r.slot","nativeSrc":"179407:6:0","nodeType":"YulIdentifier","src":"179407:6:0"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":12569,"isOffset":false,"isSlot":true,"src":"179407:6:0","suffix":"slot","valueSize":1},{"declaration":12565,"isOffset":false,"isSlot":false,"src":"179417:4:0","valueSize":1}],"id":12571,"nodeType":"InlineAssembly","src":"179384:47:0"}]},"documentation":{"id":12563,"nodeType":"StructuredDocumentation","src":"179158:86:0","text":" @dev Returns an `StringSlot` with member `value` located at `slot`."},"id":12573,"implemented":true,"kind":"function","modifiers":[],"name":"getStringSlot","nameLocation":"179258:13:0","nodeType":"FunctionDefinition","parameters":{"id":12566,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12565,"mutability":"mutable","name":"slot","nameLocation":"179280:4:0","nodeType":"VariableDeclaration","scope":12573,"src":"179272:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12564,"name":"bytes32","nodeType":"ElementaryTypeName","src":"179272:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"179271:14:0"},"returnParameters":{"id":12570,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12569,"mutability":"mutable","name":"r","nameLocation":"179328:1:0","nodeType":"VariableDeclaration","scope":12573,"src":"179309:20:0","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StringSlot_$12515_storage_ptr","typeString":"struct StorageSlot.StringSlot"},"typeName":{"id":12568,"nodeType":"UserDefinedTypeName","pathNode":{"id":12567,"name":"StringSlot","nameLocations":["179309:10:0"],"nodeType":"IdentifierPath","referencedDeclaration":12515,"src":"179309:10:0"},"referencedDeclaration":12515,"src":"179309:10:0","typeDescriptions":{"typeIdentifier":"t_struct$_StringSlot_$12515_storage_ptr","typeString":"struct StorageSlot.StringSlot"}},"visibility":"internal"}],"src":"179308:22:0"},"scope":12607,"src":"179249:188:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12583,"nodeType":"Block","src":"179639:112:0","statements":[{"AST":{"nativeSrc":"179701:44:0","nodeType":"YulBlock","src":"179701:44:0","statements":[{"nativeSrc":"179715:20:0","nodeType":"YulAssignment","src":"179715:20:0","value":{"name":"store.slot","nativeSrc":"179725:10:0","nodeType":"YulIdentifier","src":"179725:10:0"},"variableNames":[{"name":"r.slot","nativeSrc":"179715:6:0","nodeType":"YulIdentifier","src":"179715:6:0"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":12580,"isOffset":false,"isSlot":true,"src":"179715:6:0","suffix":"slot","valueSize":1},{"declaration":12576,"isOffset":false,"isSlot":true,"src":"179725:10:0","suffix":"slot","valueSize":1}],"id":12582,"nodeType":"InlineAssembly","src":"179692:53:0"}]},"documentation":{"id":12574,"nodeType":"StructuredDocumentation","src":"179443:101:0","text":" @dev Returns an `StringSlot` representation of the string storage pointer `store`."},"id":12584,"implemented":true,"kind":"function","modifiers":[],"name":"getStringSlot","nameLocation":"179558:13:0","nodeType":"FunctionDefinition","parameters":{"id":12577,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12576,"mutability":"mutable","name":"store","nameLocation":"179587:5:0","nodeType":"VariableDeclaration","scope":12584,"src":"179572:20:0","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":12575,"name":"string","nodeType":"ElementaryTypeName","src":"179572:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"179571:22:0"},"returnParameters":{"id":12581,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12580,"mutability":"mutable","name":"r","nameLocation":"179636:1:0","nodeType":"VariableDeclaration","scope":12584,"src":"179617:20:0","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StringSlot_$12515_storage_ptr","typeString":"struct StorageSlot.StringSlot"},"typeName":{"id":12579,"nodeType":"UserDefinedTypeName","pathNode":{"id":12578,"name":"StringSlot","nameLocations":["179617:10:0"],"nodeType":"IdentifierPath","referencedDeclaration":12515,"src":"179617:10:0"},"referencedDeclaration":12515,"src":"179617:10:0","typeDescriptions":{"typeIdentifier":"t_struct$_StringSlot_$12515_storage_ptr","typeString":"struct StorageSlot.StringSlot"}},"visibility":"internal"}],"src":"179616:22:0"},"scope":12607,"src":"179549:202:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12594,"nodeType":"Block","src":"179927:106:0","statements":[{"AST":{"nativeSrc":"179989:38:0","nodeType":"YulBlock","src":"179989:38:0","statements":[{"nativeSrc":"180003:14:0","nodeType":"YulAssignment","src":"180003:14:0","value":{"name":"slot","nativeSrc":"180013:4:0","nodeType":"YulIdentifier","src":"180013:4:0"},"variableNames":[{"name":"r.slot","nativeSrc":"180003:6:0","nodeType":"YulIdentifier","src":"180003:6:0"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":12591,"isOffset":false,"isSlot":true,"src":"180003:6:0","suffix":"slot","valueSize":1},{"declaration":12587,"isOffset":false,"isSlot":false,"src":"180013:4:0","valueSize":1}],"id":12593,"nodeType":"InlineAssembly","src":"179980:47:0"}]},"documentation":{"id":12585,"nodeType":"StructuredDocumentation","src":"179757:85:0","text":" @dev Returns an `BytesSlot` with member `value` located at `slot`."},"id":12595,"implemented":true,"kind":"function","modifiers":[],"name":"getBytesSlot","nameLocation":"179856:12:0","nodeType":"FunctionDefinition","parameters":{"id":12588,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12587,"mutability":"mutable","name":"slot","nameLocation":"179877:4:0","nodeType":"VariableDeclaration","scope":12595,"src":"179869:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12586,"name":"bytes32","nodeType":"ElementaryTypeName","src":"179869:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"179868:14:0"},"returnParameters":{"id":12592,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12591,"mutability":"mutable","name":"r","nameLocation":"179924:1:0","nodeType":"VariableDeclaration","scope":12595,"src":"179906:19:0","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSlot_$12518_storage_ptr","typeString":"struct StorageSlot.BytesSlot"},"typeName":{"id":12590,"nodeType":"UserDefinedTypeName","pathNode":{"id":12589,"name":"BytesSlot","nameLocations":["179906:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":12518,"src":"179906:9:0"},"referencedDeclaration":12518,"src":"179906:9:0","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSlot_$12518_storage_ptr","typeString":"struct StorageSlot.BytesSlot"}},"visibility":"internal"}],"src":"179905:21:0"},"scope":12607,"src":"179847:186:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12605,"nodeType":"Block","src":"180230:112:0","statements":[{"AST":{"nativeSrc":"180292:44:0","nodeType":"YulBlock","src":"180292:44:0","statements":[{"nativeSrc":"180306:20:0","nodeType":"YulAssignment","src":"180306:20:0","value":{"name":"store.slot","nativeSrc":"180316:10:0","nodeType":"YulIdentifier","src":"180316:10:0"},"variableNames":[{"name":"r.slot","nativeSrc":"180306:6:0","nodeType":"YulIdentifier","src":"180306:6:0"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":12602,"isOffset":false,"isSlot":true,"src":"180306:6:0","suffix":"slot","valueSize":1},{"declaration":12598,"isOffset":false,"isSlot":true,"src":"180316:10:0","suffix":"slot","valueSize":1}],"id":12604,"nodeType":"InlineAssembly","src":"180283:53:0"}]},"documentation":{"id":12596,"nodeType":"StructuredDocumentation","src":"180039:99:0","text":" @dev Returns an `BytesSlot` representation of the bytes storage pointer `store`."},"id":12606,"implemented":true,"kind":"function","modifiers":[],"name":"getBytesSlot","nameLocation":"180152:12:0","nodeType":"FunctionDefinition","parameters":{"id":12599,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12598,"mutability":"mutable","name":"store","nameLocation":"180179:5:0","nodeType":"VariableDeclaration","scope":12606,"src":"180165:19:0","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":12597,"name":"bytes","nodeType":"ElementaryTypeName","src":"180165:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"180164:21:0"},"returnParameters":{"id":12603,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12602,"mutability":"mutable","name":"r","nameLocation":"180227:1:0","nodeType":"VariableDeclaration","scope":12606,"src":"180209:19:0","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSlot_$12518_storage_ptr","typeString":"struct StorageSlot.BytesSlot"},"typeName":{"id":12601,"nodeType":"UserDefinedTypeName","pathNode":{"id":12600,"name":"BytesSlot","nameLocations":["180209:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":12518,"src":"180209:9:0"},"referencedDeclaration":12518,"src":"180209:9:0","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSlot_$12518_storage_ptr","typeString":"struct StorageSlot.BytesSlot"}},"visibility":"internal"}],"src":"180208:21:0"},"scope":12607,"src":"180143:199:0","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":20815,"src":"177659:2685:0","usedErrors":[],"usedEvents":[]},{"abstract":false,"baseContracts":[],"canonicalName":"Math","contractDependencies":[],"contractKind":"library","documentation":{"id":12608,"nodeType":"StructuredDocumentation","src":"180517:73:0","text":" @dev Standard math utilities missing in the Solidity language."},"fullyImplemented":true,"id":13659,"linearizedBaseContracts":[13659],"name":"Math","nameLocation":"180599:4:0","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":12609,"nodeType":"StructuredDocumentation","src":"180610:50:0","text":" @dev Muldiv operation overflow."},"errorSelector":"227bc153","id":12611,"name":"MathOverflowedMulDiv","nameLocation":"180671:20:0","nodeType":"ErrorDefinition","parameters":{"id":12610,"nodeType":"ParameterList","parameters":[],"src":"180691:2:0"},"src":"180665:29:0"},{"canonicalName":"Math.Rounding","id":12616,"members":[{"id":12612,"name":"Floor","nameLocation":"180724:5:0","nodeType":"EnumValue","src":"180724:5:0"},{"id":12613,"name":"Ceil","nameLocation":"180767:4:0","nodeType":"EnumValue","src":"180767:4:0"},{"id":12614,"name":"Trunc","nameLocation":"180809:5:0","nodeType":"EnumValue","src":"180809:5:0"},{"id":12615,"name":"Expand","nameLocation":"180839:6:0","nodeType":"EnumValue","src":"180839:6:0"}],"name":"Rounding","nameLocation":"180705:8:0","nodeType":"EnumDefinition","src":"180700:169:0"},{"body":{"id":12647,"nodeType":"Block","src":"181049:140:0","statements":[{"id":12646,"nodeType":"UncheckedBlock","src":"181059:124:0","statements":[{"assignments":[12629],"declarations":[{"constant":false,"id":12629,"mutability":"mutable","name":"c","nameLocation":"181091:1:0","nodeType":"VariableDeclaration","scope":12646,"src":"181083:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12628,"name":"uint256","nodeType":"ElementaryTypeName","src":"181083:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12633,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12630,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12619,"src":"181095:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":12631,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12621,"src":"181099:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"181095:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"181083:17:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12634,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12629,"src":"181118:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":12635,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12619,"src":"181122:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"181118:5:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12641,"nodeType":"IfStatement","src":"181114:28:0","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":12637,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"181133:5:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":12638,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"181140:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":12639,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"181132:10:0","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":12627,"id":12640,"nodeType":"Return","src":"181125:17:0"}},{"expression":{"components":[{"hexValue":"74727565","id":12642,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"181164:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":12643,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12629,"src":"181170:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":12644,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"181163:9:0","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":12627,"id":12645,"nodeType":"Return","src":"181156:16:0"}]}]},"documentation":{"id":12617,"nodeType":"StructuredDocumentation","src":"180875:93:0","text":" @dev Returns the addition of two unsigned integers, with an overflow flag."},"id":12648,"implemented":true,"kind":"function","modifiers":[],"name":"tryAdd","nameLocation":"180982:6:0","nodeType":"FunctionDefinition","parameters":{"id":12622,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12619,"mutability":"mutable","name":"a","nameLocation":"180997:1:0","nodeType":"VariableDeclaration","scope":12648,"src":"180989:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12618,"name":"uint256","nodeType":"ElementaryTypeName","src":"180989:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12621,"mutability":"mutable","name":"b","nameLocation":"181008:1:0","nodeType":"VariableDeclaration","scope":12648,"src":"181000:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12620,"name":"uint256","nodeType":"ElementaryTypeName","src":"181000:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"180988:22:0"},"returnParameters":{"id":12627,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12624,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12648,"src":"181034:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12623,"name":"bool","nodeType":"ElementaryTypeName","src":"181034:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12626,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12648,"src":"181040:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12625,"name":"uint256","nodeType":"ElementaryTypeName","src":"181040:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"181033:15:0"},"scope":13659,"src":"180973:216:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12675,"nodeType":"Block","src":"181372:113:0","statements":[{"id":12674,"nodeType":"UncheckedBlock","src":"181382:97:0","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12660,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12653,"src":"181410:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":12661,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12651,"src":"181414:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"181410:5:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12667,"nodeType":"IfStatement","src":"181406:28:0","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":12663,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"181425:5:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":12664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"181432:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":12665,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"181424:10:0","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":12659,"id":12666,"nodeType":"Return","src":"181417:17:0"}},{"expression":{"components":[{"hexValue":"74727565","id":12668,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"181456:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12669,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12651,"src":"181462:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":12670,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12653,"src":"181466:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"181462:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":12672,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"181455:13:0","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":12659,"id":12673,"nodeType":"Return","src":"181448:20:0"}]}]},"documentation":{"id":12649,"nodeType":"StructuredDocumentation","src":"181195:96:0","text":" @dev Returns the subtraction of two unsigned integers, with an overflow flag."},"id":12676,"implemented":true,"kind":"function","modifiers":[],"name":"trySub","nameLocation":"181305:6:0","nodeType":"FunctionDefinition","parameters":{"id":12654,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12651,"mutability":"mutable","name":"a","nameLocation":"181320:1:0","nodeType":"VariableDeclaration","scope":12676,"src":"181312:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12650,"name":"uint256","nodeType":"ElementaryTypeName","src":"181312:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12653,"mutability":"mutable","name":"b","nameLocation":"181331:1:0","nodeType":"VariableDeclaration","scope":12676,"src":"181323:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12652,"name":"uint256","nodeType":"ElementaryTypeName","src":"181323:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"181311:22:0"},"returnParameters":{"id":12659,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12656,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12676,"src":"181357:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12655,"name":"bool","nodeType":"ElementaryTypeName","src":"181357:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12658,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12676,"src":"181363:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12657,"name":"uint256","nodeType":"ElementaryTypeName","src":"181363:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"181356:15:0"},"scope":13659,"src":"181296:189:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12717,"nodeType":"Block","src":"181671:417:0","statements":[{"id":12716,"nodeType":"UncheckedBlock","src":"181681:401:0","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12688,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12679,"src":"181939:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12689,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"181944:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"181939:6:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12695,"nodeType":"IfStatement","src":"181935:28:0","trueBody":{"expression":{"components":[{"hexValue":"74727565","id":12691,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"181955:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"hexValue":"30","id":12692,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"181961:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":12693,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"181954:9:0","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":12687,"id":12694,"nodeType":"Return","src":"181947:16:0"}},{"assignments":[12697],"declarations":[{"constant":false,"id":12697,"mutability":"mutable","name":"c","nameLocation":"181985:1:0","nodeType":"VariableDeclaration","scope":12716,"src":"181977:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12696,"name":"uint256","nodeType":"ElementaryTypeName","src":"181977:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12701,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12698,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12679,"src":"181989:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":12699,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12681,"src":"181993:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"181989:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"181977:17:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12702,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12697,"src":"182012:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":12703,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12679,"src":"182016:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"182012:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":12705,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12681,"src":"182021:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"182012:10:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12711,"nodeType":"IfStatement","src":"182008:33:0","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":12707,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"182032:5:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":12708,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"182039:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":12709,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"182031:10:0","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":12687,"id":12710,"nodeType":"Return","src":"182024:17:0"}},{"expression":{"components":[{"hexValue":"74727565","id":12712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"182063:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":12713,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12697,"src":"182069:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":12714,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"182062:9:0","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":12687,"id":12715,"nodeType":"Return","src":"182055:16:0"}]}]},"documentation":{"id":12677,"nodeType":"StructuredDocumentation","src":"181491:99:0","text":" @dev Returns the multiplication of two unsigned integers, with an overflow flag."},"id":12718,"implemented":true,"kind":"function","modifiers":[],"name":"tryMul","nameLocation":"181604:6:0","nodeType":"FunctionDefinition","parameters":{"id":12682,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12679,"mutability":"mutable","name":"a","nameLocation":"181619:1:0","nodeType":"VariableDeclaration","scope":12718,"src":"181611:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12678,"name":"uint256","nodeType":"ElementaryTypeName","src":"181611:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12681,"mutability":"mutable","name":"b","nameLocation":"181630:1:0","nodeType":"VariableDeclaration","scope":12718,"src":"181622:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12680,"name":"uint256","nodeType":"ElementaryTypeName","src":"181622:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"181610:22:0"},"returnParameters":{"id":12687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12684,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12718,"src":"181656:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12683,"name":"bool","nodeType":"ElementaryTypeName","src":"181656:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12686,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12718,"src":"181662:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12685,"name":"uint256","nodeType":"ElementaryTypeName","src":"181662:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"181655:15:0"},"scope":13659,"src":"181595:493:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12745,"nodeType":"Block","src":"182275:114:0","statements":[{"id":12744,"nodeType":"UncheckedBlock","src":"182285:98:0","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12730,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12723,"src":"182313:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12731,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"182318:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"182313:6:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12737,"nodeType":"IfStatement","src":"182309:29:0","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":12733,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"182329:5:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":12734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"182336:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":12735,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"182328:10:0","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":12729,"id":12736,"nodeType":"Return","src":"182321:17:0"}},{"expression":{"components":[{"hexValue":"74727565","id":12738,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"182360:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12739,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12721,"src":"182366:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":12740,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12723,"src":"182370:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"182366:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":12742,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"182359:13:0","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":12729,"id":12743,"nodeType":"Return","src":"182352:20:0"}]}]},"documentation":{"id":12719,"nodeType":"StructuredDocumentation","src":"182094:100:0","text":" @dev Returns the division of two unsigned integers, with a division by zero flag."},"id":12746,"implemented":true,"kind":"function","modifiers":[],"name":"tryDiv","nameLocation":"182208:6:0","nodeType":"FunctionDefinition","parameters":{"id":12724,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12721,"mutability":"mutable","name":"a","nameLocation":"182223:1:0","nodeType":"VariableDeclaration","scope":12746,"src":"182215:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12720,"name":"uint256","nodeType":"ElementaryTypeName","src":"182215:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12723,"mutability":"mutable","name":"b","nameLocation":"182234:1:0","nodeType":"VariableDeclaration","scope":12746,"src":"182226:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12722,"name":"uint256","nodeType":"ElementaryTypeName","src":"182226:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"182214:22:0"},"returnParameters":{"id":12729,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12726,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12746,"src":"182260:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12725,"name":"bool","nodeType":"ElementaryTypeName","src":"182260:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12728,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12746,"src":"182266:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12727,"name":"uint256","nodeType":"ElementaryTypeName","src":"182266:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"182259:15:0"},"scope":13659,"src":"182199:190:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12773,"nodeType":"Block","src":"182586:114:0","statements":[{"id":12772,"nodeType":"UncheckedBlock","src":"182596:98:0","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12758,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12751,"src":"182624:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12759,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"182629:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"182624:6:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12765,"nodeType":"IfStatement","src":"182620:29:0","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":12761,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"182640:5:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":12762,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"182647:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":12763,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"182639:10:0","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":12757,"id":12764,"nodeType":"Return","src":"182632:17:0"}},{"expression":{"components":[{"hexValue":"74727565","id":12766,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"182671:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12767,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12749,"src":"182677:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":12768,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12751,"src":"182681:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"182677:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":12770,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"182670:13:0","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":12757,"id":12771,"nodeType":"Return","src":"182663:20:0"}]}]},"documentation":{"id":12747,"nodeType":"StructuredDocumentation","src":"182395:110:0","text":" @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag."},"id":12774,"implemented":true,"kind":"function","modifiers":[],"name":"tryMod","nameLocation":"182519:6:0","nodeType":"FunctionDefinition","parameters":{"id":12752,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12749,"mutability":"mutable","name":"a","nameLocation":"182534:1:0","nodeType":"VariableDeclaration","scope":12774,"src":"182526:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12748,"name":"uint256","nodeType":"ElementaryTypeName","src":"182526:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12751,"mutability":"mutable","name":"b","nameLocation":"182545:1:0","nodeType":"VariableDeclaration","scope":12774,"src":"182537:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12750,"name":"uint256","nodeType":"ElementaryTypeName","src":"182537:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"182525:22:0"},"returnParameters":{"id":12757,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12754,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12774,"src":"182571:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12753,"name":"bool","nodeType":"ElementaryTypeName","src":"182571:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12756,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12774,"src":"182577:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12755,"name":"uint256","nodeType":"ElementaryTypeName","src":"182577:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"182570:15:0"},"scope":13659,"src":"182510:190:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12791,"nodeType":"Block","src":"182837:37:0","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12784,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12777,"src":"182854:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":12785,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12779,"src":"182858:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"182854:5:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":12788,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12779,"src":"182866:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"182854:13:0","trueExpression":{"id":12787,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12777,"src":"182862:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":12783,"id":12790,"nodeType":"Return","src":"182847:20:0"}]},"documentation":{"id":12775,"nodeType":"StructuredDocumentation","src":"182706:59:0","text":" @dev Returns the largest of two numbers."},"id":12792,"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"182779:3:0","nodeType":"FunctionDefinition","parameters":{"id":12780,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12777,"mutability":"mutable","name":"a","nameLocation":"182791:1:0","nodeType":"VariableDeclaration","scope":12792,"src":"182783:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12776,"name":"uint256","nodeType":"ElementaryTypeName","src":"182783:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12779,"mutability":"mutable","name":"b","nameLocation":"182802:1:0","nodeType":"VariableDeclaration","scope":12792,"src":"182794:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12778,"name":"uint256","nodeType":"ElementaryTypeName","src":"182794:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"182782:22:0"},"returnParameters":{"id":12783,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12782,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12792,"src":"182828:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12781,"name":"uint256","nodeType":"ElementaryTypeName","src":"182828:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"182827:9:0"},"scope":13659,"src":"182770:104:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12809,"nodeType":"Block","src":"183012:37:0","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12802,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12795,"src":"183029:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":12803,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12797,"src":"183033:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"183029:5:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":12806,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12797,"src":"183041:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"183029:13:0","trueExpression":{"id":12805,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12795,"src":"183037:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":12801,"id":12808,"nodeType":"Return","src":"183022:20:0"}]},"documentation":{"id":12793,"nodeType":"StructuredDocumentation","src":"182880:60:0","text":" @dev Returns the smallest of two numbers."},"id":12810,"implemented":true,"kind":"function","modifiers":[],"name":"min","nameLocation":"182954:3:0","nodeType":"FunctionDefinition","parameters":{"id":12798,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12795,"mutability":"mutable","name":"a","nameLocation":"182966:1:0","nodeType":"VariableDeclaration","scope":12810,"src":"182958:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12794,"name":"uint256","nodeType":"ElementaryTypeName","src":"182958:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12797,"mutability":"mutable","name":"b","nameLocation":"182977:1:0","nodeType":"VariableDeclaration","scope":12810,"src":"182969:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12796,"name":"uint256","nodeType":"ElementaryTypeName","src":"182969:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"182957:22:0"},"returnParameters":{"id":12801,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12800,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12810,"src":"183003:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12799,"name":"uint256","nodeType":"ElementaryTypeName","src":"183003:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"183002:9:0"},"scope":13659,"src":"182945:104:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12832,"nodeType":"Block","src":"183233:82:0","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12820,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12813,"src":"183288:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":12821,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12815,"src":"183292:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"183288:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":12823,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"183287:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12824,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12813,"src":"183298:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":12825,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12815,"src":"183302:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"183298:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":12827,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"183297:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":12828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"183307:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"183297:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"183287:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":12819,"id":12831,"nodeType":"Return","src":"183280:28:0"}]},"documentation":{"id":12811,"nodeType":"StructuredDocumentation","src":"183055:102:0","text":" @dev Returns the average of two numbers. The result is rounded towards\n zero."},"id":12833,"implemented":true,"kind":"function","modifiers":[],"name":"average","nameLocation":"183171:7:0","nodeType":"FunctionDefinition","parameters":{"id":12816,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12813,"mutability":"mutable","name":"a","nameLocation":"183187:1:0","nodeType":"VariableDeclaration","scope":12833,"src":"183179:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12812,"name":"uint256","nodeType":"ElementaryTypeName","src":"183179:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12815,"mutability":"mutable","name":"b","nameLocation":"183198:1:0","nodeType":"VariableDeclaration","scope":12833,"src":"183190:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12814,"name":"uint256","nodeType":"ElementaryTypeName","src":"183190:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"183178:22:0"},"returnParameters":{"id":12819,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12818,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12833,"src":"183224:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12817,"name":"uint256","nodeType":"ElementaryTypeName","src":"183224:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"183223:9:0"},"scope":13659,"src":"183162:153:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12866,"nodeType":"Block","src":"183607:260:0","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12843,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12838,"src":"183621:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12844,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"183626:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"183621:6:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12851,"nodeType":"IfStatement","src":"183617:127:0","trueBody":{"id":12850,"nodeType":"Block","src":"183629:115:0","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12846,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12836,"src":"183728:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":12847,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12838,"src":"183732:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"183728:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":12842,"id":12849,"nodeType":"Return","src":"183721:12:0"}]}},{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12852,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12836,"src":"183832:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"183837:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"183832:6:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12856,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12836,"src":"183846:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":12857,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"183850:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"183846:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":12859,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"183845:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":12860,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12838,"src":"183855:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"183845:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":12862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"183859:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"183845:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"183832:28:0","trueExpression":{"hexValue":"30","id":12855,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"183841:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":12842,"id":12865,"nodeType":"Return","src":"183825:35:0"}]},"documentation":{"id":12834,"nodeType":"StructuredDocumentation","src":"183321:210:0","text":" @dev Returns the ceiling of the division of two numbers.\n This differs from standard division with `/` in that it rounds towards infinity instead\n of rounding towards zero."},"id":12867,"implemented":true,"kind":"function","modifiers":[],"name":"ceilDiv","nameLocation":"183545:7:0","nodeType":"FunctionDefinition","parameters":{"id":12839,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12836,"mutability":"mutable","name":"a","nameLocation":"183561:1:0","nodeType":"VariableDeclaration","scope":12867,"src":"183553:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12835,"name":"uint256","nodeType":"ElementaryTypeName","src":"183553:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12838,"mutability":"mutable","name":"b","nameLocation":"183572:1:0","nodeType":"VariableDeclaration","scope":12867,"src":"183564:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12837,"name":"uint256","nodeType":"ElementaryTypeName","src":"183564:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"183552:22:0"},"returnParameters":{"id":12842,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12841,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12867,"src":"183598:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12840,"name":"uint256","nodeType":"ElementaryTypeName","src":"183598:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"183597:9:0"},"scope":13659,"src":"183536:331:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12992,"nodeType":"Block","src":"184289:4018:0","statements":[{"id":12991,"nodeType":"UncheckedBlock","src":"184299:4002:0","statements":[{"assignments":[12880],"declarations":[{"constant":false,"id":12880,"mutability":"mutable","name":"prod0","nameLocation":"184628:5:0","nodeType":"VariableDeclaration","scope":12991,"src":"184620:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12879,"name":"uint256","nodeType":"ElementaryTypeName","src":"184620:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12884,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12881,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12870,"src":"184636:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":12882,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12872,"src":"184640:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"184636:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"184620:21:0"},{"assignments":[12886],"declarations":[{"constant":false,"id":12886,"mutability":"mutable","name":"prod1","nameLocation":"184708:5:0","nodeType":"VariableDeclaration","scope":12991,"src":"184700:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12885,"name":"uint256","nodeType":"ElementaryTypeName","src":"184700:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12887,"nodeType":"VariableDeclarationStatement","src":"184700:13:0"},{"AST":{"nativeSrc":"184780:122:0","nodeType":"YulBlock","src":"184780:122:0","statements":[{"nativeSrc":"184798:30:0","nodeType":"YulVariableDeclaration","src":"184798:30:0","value":{"arguments":[{"name":"x","nativeSrc":"184815:1:0","nodeType":"YulIdentifier","src":"184815:1:0"},{"name":"y","nativeSrc":"184818:1:0","nodeType":"YulIdentifier","src":"184818:1:0"},{"arguments":[{"kind":"number","nativeSrc":"184825:1:0","nodeType":"YulLiteral","src":"184825:1:0","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"184821:3:0","nodeType":"YulIdentifier","src":"184821:3:0"},"nativeSrc":"184821:6:0","nodeType":"YulFunctionCall","src":"184821:6:0"}],"functionName":{"name":"mulmod","nativeSrc":"184808:6:0","nodeType":"YulIdentifier","src":"184808:6:0"},"nativeSrc":"184808:20:0","nodeType":"YulFunctionCall","src":"184808:20:0"},"variables":[{"name":"mm","nativeSrc":"184802:2:0","nodeType":"YulTypedName","src":"184802:2:0","type":""}]},{"nativeSrc":"184845:43:0","nodeType":"YulAssignment","src":"184845:43:0","value":{"arguments":[{"arguments":[{"name":"mm","nativeSrc":"184862:2:0","nodeType":"YulIdentifier","src":"184862:2:0"},{"name":"prod0","nativeSrc":"184866:5:0","nodeType":"YulIdentifier","src":"184866:5:0"}],"functionName":{"name":"sub","nativeSrc":"184858:3:0","nodeType":"YulIdentifier","src":"184858:3:0"},"nativeSrc":"184858:14:0","nodeType":"YulFunctionCall","src":"184858:14:0"},{"arguments":[{"name":"mm","nativeSrc":"184877:2:0","nodeType":"YulIdentifier","src":"184877:2:0"},{"name":"prod0","nativeSrc":"184881:5:0","nodeType":"YulIdentifier","src":"184881:5:0"}],"functionName":{"name":"lt","nativeSrc":"184874:2:0","nodeType":"YulIdentifier","src":"184874:2:0"},"nativeSrc":"184874:13:0","nodeType":"YulFunctionCall","src":"184874:13:0"}],"functionName":{"name":"sub","nativeSrc":"184854:3:0","nodeType":"YulIdentifier","src":"184854:3:0"},"nativeSrc":"184854:34:0","nodeType":"YulFunctionCall","src":"184854:34:0"},"variableNames":[{"name":"prod1","nativeSrc":"184845:5:0","nodeType":"YulIdentifier","src":"184845:5:0"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":12880,"isOffset":false,"isSlot":false,"src":"184866:5:0","valueSize":1},{"declaration":12880,"isOffset":false,"isSlot":false,"src":"184881:5:0","valueSize":1},{"declaration":12886,"isOffset":false,"isSlot":false,"src":"184845:5:0","valueSize":1},{"declaration":12870,"isOffset":false,"isSlot":false,"src":"184815:1:0","valueSize":1},{"declaration":12872,"isOffset":false,"isSlot":false,"src":"184818:1:0","valueSize":1}],"id":12888,"nodeType":"InlineAssembly","src":"184771:131:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12889,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12886,"src":"184983:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12890,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"184992:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"184983:10:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12897,"nodeType":"IfStatement","src":"184979:368:0","trueBody":{"id":12896,"nodeType":"Block","src":"184995:352:0","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12892,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12880,"src":"185313:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":12893,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12874,"src":"185321:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"185313:19:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":12878,"id":12895,"nodeType":"Return","src":"185306:26:0"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12898,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12874,"src":"185453:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":12899,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12886,"src":"185468:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"185453:20:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12905,"nodeType":"IfStatement","src":"185449:88:0","trueBody":{"id":12904,"nodeType":"Block","src":"185475:62:0","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":12901,"name":"MathOverflowedMulDiv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12611,"src":"185500:20:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":12902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"185500:22:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":12903,"nodeType":"RevertStatement","src":"185493:29:0"}]}},{"assignments":[12907],"declarations":[{"constant":false,"id":12907,"mutability":"mutable","name":"remainder","nameLocation":"185800:9:0","nodeType":"VariableDeclaration","scope":12991,"src":"185792:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12906,"name":"uint256","nodeType":"ElementaryTypeName","src":"185792:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12908,"nodeType":"VariableDeclarationStatement","src":"185792:17:0"},{"AST":{"nativeSrc":"185832:291:0","nodeType":"YulBlock","src":"185832:291:0","statements":[{"nativeSrc":"185901:38:0","nodeType":"YulAssignment","src":"185901:38:0","value":{"arguments":[{"name":"x","nativeSrc":"185921:1:0","nodeType":"YulIdentifier","src":"185921:1:0"},{"name":"y","nativeSrc":"185924:1:0","nodeType":"YulIdentifier","src":"185924:1:0"},{"name":"denominator","nativeSrc":"185927:11:0","nodeType":"YulIdentifier","src":"185927:11:0"}],"functionName":{"name":"mulmod","nativeSrc":"185914:6:0","nodeType":"YulIdentifier","src":"185914:6:0"},"nativeSrc":"185914:25:0","nodeType":"YulFunctionCall","src":"185914:25:0"},"variableNames":[{"name":"remainder","nativeSrc":"185901:9:0","nodeType":"YulIdentifier","src":"185901:9:0"}]},{"nativeSrc":"186021:41:0","nodeType":"YulAssignment","src":"186021:41:0","value":{"arguments":[{"name":"prod1","nativeSrc":"186034:5:0","nodeType":"YulIdentifier","src":"186034:5:0"},{"arguments":[{"name":"remainder","nativeSrc":"186044:9:0","nodeType":"YulIdentifier","src":"186044:9:0"},{"name":"prod0","nativeSrc":"186055:5:0","nodeType":"YulIdentifier","src":"186055:5:0"}],"functionName":{"name":"gt","nativeSrc":"186041:2:0","nodeType":"YulIdentifier","src":"186041:2:0"},"nativeSrc":"186041:20:0","nodeType":"YulFunctionCall","src":"186041:20:0"}],"functionName":{"name":"sub","nativeSrc":"186030:3:0","nodeType":"YulIdentifier","src":"186030:3:0"},"nativeSrc":"186030:32:0","nodeType":"YulFunctionCall","src":"186030:32:0"},"variableNames":[{"name":"prod1","nativeSrc":"186021:5:0","nodeType":"YulIdentifier","src":"186021:5:0"}]},{"nativeSrc":"186079:30:0","nodeType":"YulAssignment","src":"186079:30:0","value":{"arguments":[{"name":"prod0","nativeSrc":"186092:5:0","nodeType":"YulIdentifier","src":"186092:5:0"},{"name":"remainder","nativeSrc":"186099:9:0","nodeType":"YulIdentifier","src":"186099:9:0"}],"functionName":{"name":"sub","nativeSrc":"186088:3:0","nodeType":"YulIdentifier","src":"186088:3:0"},"nativeSrc":"186088:21:0","nodeType":"YulFunctionCall","src":"186088:21:0"},"variableNames":[{"name":"prod0","nativeSrc":"186079:5:0","nodeType":"YulIdentifier","src":"186079:5:0"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":12874,"isOffset":false,"isSlot":false,"src":"185927:11:0","valueSize":1},{"declaration":12880,"isOffset":false,"isSlot":false,"src":"186055:5:0","valueSize":1},{"declaration":12880,"isOffset":false,"isSlot":false,"src":"186079:5:0","valueSize":1},{"declaration":12880,"isOffset":false,"isSlot":false,"src":"186092:5:0","valueSize":1},{"declaration":12886,"isOffset":false,"isSlot":false,"src":"186021:5:0","valueSize":1},{"declaration":12886,"isOffset":false,"isSlot":false,"src":"186034:5:0","valueSize":1},{"declaration":12907,"isOffset":false,"isSlot":false,"src":"185901:9:0","valueSize":1},{"declaration":12907,"isOffset":false,"isSlot":false,"src":"186044:9:0","valueSize":1},{"declaration":12907,"isOffset":false,"isSlot":false,"src":"186099:9:0","valueSize":1},{"declaration":12870,"isOffset":false,"isSlot":false,"src":"185921:1:0","valueSize":1},{"declaration":12872,"isOffset":false,"isSlot":false,"src":"185924:1:0","valueSize":1}],"id":12909,"nodeType":"InlineAssembly","src":"185823:300:0"},{"assignments":[12911],"declarations":[{"constant":false,"id":12911,"mutability":"mutable","name":"twos","nameLocation":"186335:4:0","nodeType":"VariableDeclaration","scope":12991,"src":"186327:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12910,"name":"uint256","nodeType":"ElementaryTypeName","src":"186327:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12918,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12912,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12874,"src":"186342:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12915,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"30","id":12913,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"186357:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":12914,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12874,"src":"186361:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"186357:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":12916,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"186356:17:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"186342:31:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"186327:46:0"},{"AST":{"nativeSrc":"186396:362:0","nodeType":"YulBlock","src":"186396:362:0","statements":[{"nativeSrc":"186461:37:0","nodeType":"YulAssignment","src":"186461:37:0","value":{"arguments":[{"name":"denominator","nativeSrc":"186480:11:0","nodeType":"YulIdentifier","src":"186480:11:0"},{"name":"twos","nativeSrc":"186493:4:0","nodeType":"YulIdentifier","src":"186493:4:0"}],"functionName":{"name":"div","nativeSrc":"186476:3:0","nodeType":"YulIdentifier","src":"186476:3:0"},"nativeSrc":"186476:22:0","nodeType":"YulFunctionCall","src":"186476:22:0"},"variableNames":[{"name":"denominator","nativeSrc":"186461:11:0","nodeType":"YulIdentifier","src":"186461:11:0"}]},{"nativeSrc":"186565:25:0","nodeType":"YulAssignment","src":"186565:25:0","value":{"arguments":[{"name":"prod0","nativeSrc":"186578:5:0","nodeType":"YulIdentifier","src":"186578:5:0"},{"name":"twos","nativeSrc":"186585:4:0","nodeType":"YulIdentifier","src":"186585:4:0"}],"functionName":{"name":"div","nativeSrc":"186574:3:0","nodeType":"YulIdentifier","src":"186574:3:0"},"nativeSrc":"186574:16:0","nodeType":"YulFunctionCall","src":"186574:16:0"},"variableNames":[{"name":"prod0","nativeSrc":"186565:5:0","nodeType":"YulIdentifier","src":"186565:5:0"}]},{"nativeSrc":"186705:39:0","nodeType":"YulAssignment","src":"186705:39:0","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"186725:1:0","nodeType":"YulLiteral","src":"186725:1:0","type":"","value":"0"},{"name":"twos","nativeSrc":"186728:4:0","nodeType":"YulIdentifier","src":"186728:4:0"}],"functionName":{"name":"sub","nativeSrc":"186721:3:0","nodeType":"YulIdentifier","src":"186721:3:0"},"nativeSrc":"186721:12:0","nodeType":"YulFunctionCall","src":"186721:12:0"},{"name":"twos","nativeSrc":"186735:4:0","nodeType":"YulIdentifier","src":"186735:4:0"}],"functionName":{"name":"div","nativeSrc":"186717:3:0","nodeType":"YulIdentifier","src":"186717:3:0"},"nativeSrc":"186717:23:0","nodeType":"YulFunctionCall","src":"186717:23:0"},{"kind":"number","nativeSrc":"186742:1:0","nodeType":"YulLiteral","src":"186742:1:0","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"186713:3:0","nodeType":"YulIdentifier","src":"186713:3:0"},"nativeSrc":"186713:31:0","nodeType":"YulFunctionCall","src":"186713:31:0"},"variableNames":[{"name":"twos","nativeSrc":"186705:4:0","nodeType":"YulIdentifier","src":"186705:4:0"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":12874,"isOffset":false,"isSlot":false,"src":"186461:11:0","valueSize":1},{"declaration":12874,"isOffset":false,"isSlot":false,"src":"186480:11:0","valueSize":1},{"declaration":12880,"isOffset":false,"isSlot":false,"src":"186565:5:0","valueSize":1},{"declaration":12880,"isOffset":false,"isSlot":false,"src":"186578:5:0","valueSize":1},{"declaration":12911,"isOffset":false,"isSlot":false,"src":"186493:4:0","valueSize":1},{"declaration":12911,"isOffset":false,"isSlot":false,"src":"186585:4:0","valueSize":1},{"declaration":12911,"isOffset":false,"isSlot":false,"src":"186705:4:0","valueSize":1},{"declaration":12911,"isOffset":false,"isSlot":false,"src":"186728:4:0","valueSize":1},{"declaration":12911,"isOffset":false,"isSlot":false,"src":"186735:4:0","valueSize":1}],"id":12919,"nodeType":"InlineAssembly","src":"186387:371:0"},{"expression":{"id":12924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12920,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12880,"src":"186824:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12921,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12886,"src":"186833:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":12922,"name":"twos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12911,"src":"186841:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"186833:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"186824:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12925,"nodeType":"ExpressionStatement","src":"186824:21:0"},{"assignments":[12927],"declarations":[{"constant":false,"id":12927,"mutability":"mutable","name":"inverse","nameLocation":"187171:7:0","nodeType":"VariableDeclaration","scope":12991,"src":"187163:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12926,"name":"uint256","nodeType":"ElementaryTypeName","src":"187163:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12934,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"33","id":12928,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"187182:1:0","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":12929,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12874,"src":"187186:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"187182:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":12931,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"187181:17:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"hexValue":"32","id":12932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"187201:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"187181:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"187163:39:0"},{"expression":{"id":12941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12935,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12927,"src":"187419:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":12936,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"187430:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12937,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12874,"src":"187434:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":12938,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12927,"src":"187448:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"187434:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"187430:25:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"187419:36:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12942,"nodeType":"ExpressionStatement","src":"187419:36:0"},{"expression":{"id":12949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12943,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12927,"src":"187488:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":12944,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"187499:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12945,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12874,"src":"187503:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":12946,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12927,"src":"187517:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"187503:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"187499:25:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"187488:36:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12950,"nodeType":"ExpressionStatement","src":"187488:36:0"},{"expression":{"id":12957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12951,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12927,"src":"187558:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":12952,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"187569:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12953,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12874,"src":"187573:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":12954,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12927,"src":"187587:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"187573:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"187569:25:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"187558:36:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12958,"nodeType":"ExpressionStatement","src":"187558:36:0"},{"expression":{"id":12965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12959,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12927,"src":"187628:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":12960,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"187639:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12961,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12874,"src":"187643:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":12962,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12927,"src":"187657:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"187643:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"187639:25:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"187628:36:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12966,"nodeType":"ExpressionStatement","src":"187628:36:0"},{"expression":{"id":12973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12967,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12927,"src":"187698:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":12968,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"187709:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12969,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12874,"src":"187713:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":12970,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12927,"src":"187727:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"187713:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"187709:25:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"187698:36:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12974,"nodeType":"ExpressionStatement","src":"187698:36:0"},{"expression":{"id":12981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12975,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12927,"src":"187769:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":12976,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"187780:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12977,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12874,"src":"187784:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":12978,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12927,"src":"187798:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"187784:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"187780:25:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"187769:36:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12982,"nodeType":"ExpressionStatement","src":"187769:36:0"},{"expression":{"id":12987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12983,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12877,"src":"188239:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12984,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12880,"src":"188248:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":12985,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12927,"src":"188256:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"188248:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"188239:24:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12988,"nodeType":"ExpressionStatement","src":"188239:24:0"},{"expression":{"id":12989,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12877,"src":"188284:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":12878,"id":12990,"nodeType":"Return","src":"188277:13:0"}]}]},"documentation":{"id":12868,"nodeType":"StructuredDocumentation","src":"183873:313:0","text":" @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or\n denominator == 0.\n @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv) with further edits by\n Uniswap Labs also under MIT license."},"id":12993,"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nameLocation":"184200:6:0","nodeType":"FunctionDefinition","parameters":{"id":12875,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12870,"mutability":"mutable","name":"x","nameLocation":"184215:1:0","nodeType":"VariableDeclaration","scope":12993,"src":"184207:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12869,"name":"uint256","nodeType":"ElementaryTypeName","src":"184207:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12872,"mutability":"mutable","name":"y","nameLocation":"184226:1:0","nodeType":"VariableDeclaration","scope":12993,"src":"184218:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12871,"name":"uint256","nodeType":"ElementaryTypeName","src":"184218:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12874,"mutability":"mutable","name":"denominator","nameLocation":"184237:11:0","nodeType":"VariableDeclaration","scope":12993,"src":"184229:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12873,"name":"uint256","nodeType":"ElementaryTypeName","src":"184229:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"184206:43:0"},"returnParameters":{"id":12878,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12877,"mutability":"mutable","name":"result","nameLocation":"184281:6:0","nodeType":"VariableDeclaration","scope":12993,"src":"184273:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12876,"name":"uint256","nodeType":"ElementaryTypeName","src":"184273:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"184272:16:0"},"scope":13659,"src":"184191:4116:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13035,"nodeType":"Block","src":"188549:192:0","statements":[{"assignments":[13009],"declarations":[{"constant":false,"id":13009,"mutability":"mutable","name":"result","nameLocation":"188567:6:0","nodeType":"VariableDeclaration","scope":13035,"src":"188559:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13008,"name":"uint256","nodeType":"ElementaryTypeName","src":"188559:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13015,"initialValue":{"arguments":[{"id":13011,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12996,"src":"188583:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13012,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12998,"src":"188586:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13013,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13000,"src":"188589:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13010,"name":"mulDiv","nodeType":"Identifier","overloadedDeclarations":[12993,13036],"referencedDeclaration":12993,"src":"188576:6:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":13014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"188576:25:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"188559:42:0"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":13026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":13017,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13003,"src":"188632:8:0","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$12616","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$12616","typeString":"enum Math.Rounding"}],"id":13016,"name":"unsignedRoundsUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13658,"src":"188615:16:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_Rounding_$12616_$returns$_t_bool_$","typeString":"function (enum Math.Rounding) pure returns (bool)"}},"id":13018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"188615:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":13020,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12996,"src":"188652:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13021,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12998,"src":"188655:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13022,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13000,"src":"188658:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13019,"name":"mulmod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-16,"src":"188645:6:0","typeDescriptions":{"typeIdentifier":"t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":13023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"188645:25:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":13024,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"188673:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"188645:29:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"188615:59:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13032,"nodeType":"IfStatement","src":"188611:101:0","trueBody":{"id":13031,"nodeType":"Block","src":"188676:36:0","statements":[{"expression":{"id":13029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13027,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13009,"src":"188690:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":13028,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"188700:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"188690:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13030,"nodeType":"ExpressionStatement","src":"188690:11:0"}]}},{"expression":{"id":13033,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13009,"src":"188728:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":13007,"id":13034,"nodeType":"Return","src":"188721:13:0"}]},"documentation":{"id":12994,"nodeType":"StructuredDocumentation","src":"188313:121:0","text":" @notice Calculates x * y / denominator with full precision, following the selected rounding direction."},"id":13036,"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nameLocation":"188448:6:0","nodeType":"FunctionDefinition","parameters":{"id":13004,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12996,"mutability":"mutable","name":"x","nameLocation":"188463:1:0","nodeType":"VariableDeclaration","scope":13036,"src":"188455:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12995,"name":"uint256","nodeType":"ElementaryTypeName","src":"188455:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12998,"mutability":"mutable","name":"y","nameLocation":"188474:1:0","nodeType":"VariableDeclaration","scope":13036,"src":"188466:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12997,"name":"uint256","nodeType":"ElementaryTypeName","src":"188466:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13000,"mutability":"mutable","name":"denominator","nameLocation":"188485:11:0","nodeType":"VariableDeclaration","scope":13036,"src":"188477:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12999,"name":"uint256","nodeType":"ElementaryTypeName","src":"188477:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13003,"mutability":"mutable","name":"rounding","nameLocation":"188507:8:0","nodeType":"VariableDeclaration","scope":13036,"src":"188498:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$12616","typeString":"enum Math.Rounding"},"typeName":{"id":13002,"nodeType":"UserDefinedTypeName","pathNode":{"id":13001,"name":"Rounding","nameLocations":["188498:8:0"],"nodeType":"IdentifierPath","referencedDeclaration":12616,"src":"188498:8:0"},"referencedDeclaration":12616,"src":"188498:8:0","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$12616","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"188454:62:0"},"returnParameters":{"id":13007,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13006,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13036,"src":"188540:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13005,"name":"uint256","nodeType":"ElementaryTypeName","src":"188540:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"188539:9:0"},"scope":13659,"src":"188439:302:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13147,"nodeType":"Block","src":"189032:1585:0","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13044,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13039,"src":"189046:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":13045,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"189051:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"189046:6:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13050,"nodeType":"IfStatement","src":"189042:45:0","trueBody":{"id":13049,"nodeType":"Block","src":"189054:33:0","statements":[{"expression":{"hexValue":"30","id":13047,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"189075:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":13043,"id":13048,"nodeType":"Return","src":"189068:8:0"}]}},{"assignments":[13052],"declarations":[{"constant":false,"id":13052,"mutability":"mutable","name":"result","nameLocation":"189774:6:0","nodeType":"VariableDeclaration","scope":13147,"src":"189766:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13051,"name":"uint256","nodeType":"ElementaryTypeName","src":"189766:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13061,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":13053,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"189783:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":13055,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13039,"src":"189794:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13054,"name":"log2","nodeType":"Identifier","overloadedDeclarations":[13315,13350],"referencedDeclaration":13315,"src":"189789:4:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":13056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"189789:7:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":13057,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"189800:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"189789:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":13059,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"189788:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"189783:19:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"189766:36:0"},{"id":13146,"nodeType":"UncheckedBlock","src":"190203:408:0","statements":[{"expression":{"id":13071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13062,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13052,"src":"190227:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13063,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13052,"src":"190237:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13064,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13039,"src":"190246:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":13065,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13052,"src":"190250:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"190246:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"190237:19:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":13068,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"190236:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":13069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"190261:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"190236:26:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"190227:35:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13072,"nodeType":"ExpressionStatement","src":"190227:35:0"},{"expression":{"id":13082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13073,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13052,"src":"190276:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13074,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13052,"src":"190286:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13075,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13039,"src":"190295:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":13076,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13052,"src":"190299:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"190295:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"190286:19:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":13079,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"190285:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":13080,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"190310:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"190285:26:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"190276:35:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13083,"nodeType":"ExpressionStatement","src":"190276:35:0"},{"expression":{"id":13093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13084,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13052,"src":"190325:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13085,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13052,"src":"190335:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13086,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13039,"src":"190344:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":13087,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13052,"src":"190348:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"190344:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"190335:19:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":13090,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"190334:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":13091,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"190359:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"190334:26:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"190325:35:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13094,"nodeType":"ExpressionStatement","src":"190325:35:0"},{"expression":{"id":13104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13095,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13052,"src":"190374:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13096,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13052,"src":"190384:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13097,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13039,"src":"190393:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":13098,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13052,"src":"190397:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"190393:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"190384:19:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":13101,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"190383:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":13102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"190408:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"190383:26:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"190374:35:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13105,"nodeType":"ExpressionStatement","src":"190374:35:0"},{"expression":{"id":13115,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13106,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13052,"src":"190423:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13107,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13052,"src":"190433:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13108,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13039,"src":"190442:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":13109,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13052,"src":"190446:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"190442:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"190433:19:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":13112,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"190432:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":13113,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"190457:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"190432:26:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"190423:35:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13116,"nodeType":"ExpressionStatement","src":"190423:35:0"},{"expression":{"id":13126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13117,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13052,"src":"190472:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13118,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13052,"src":"190482:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13119,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13039,"src":"190491:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":13120,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13052,"src":"190495:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"190491:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"190482:19:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":13123,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"190481:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":13124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"190506:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"190481:26:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"190472:35:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13127,"nodeType":"ExpressionStatement","src":"190472:35:0"},{"expression":{"id":13137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13128,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13052,"src":"190521:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13129,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13052,"src":"190531:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13130,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13039,"src":"190540:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":13131,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13052,"src":"190544:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"190540:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"190531:19:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":13134,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"190530:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":13135,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"190555:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"190530:26:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"190521:35:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13138,"nodeType":"ExpressionStatement","src":"190521:35:0"},{"expression":{"arguments":[{"id":13140,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13052,"src":"190581:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13141,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13039,"src":"190589:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":13142,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13052,"src":"190593:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"190589:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13139,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12810,"src":"190577:3:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":13144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"190577:23:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":13043,"id":13145,"nodeType":"Return","src":"190570:30:0"}]}]},"documentation":{"id":13037,"nodeType":"StructuredDocumentation","src":"188747:223:0","text":" @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded\n towards zero.\n Inspired by Henry S. Warren, Jr.'s \"Hacker's Delight\" (Chapter 11)."},"id":13148,"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"188984:4:0","nodeType":"FunctionDefinition","parameters":{"id":13040,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13039,"mutability":"mutable","name":"a","nameLocation":"188997:1:0","nodeType":"VariableDeclaration","scope":13148,"src":"188989:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13038,"name":"uint256","nodeType":"ElementaryTypeName","src":"188989:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"188988:11:0"},"returnParameters":{"id":13043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13042,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13148,"src":"189023:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13041,"name":"uint256","nodeType":"ElementaryTypeName","src":"189023:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"189022:9:0"},"scope":13659,"src":"188975:1642:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13182,"nodeType":"Block","src":"190793:164:0","statements":[{"id":13181,"nodeType":"UncheckedBlock","src":"190803:148:0","statements":[{"assignments":[13160],"declarations":[{"constant":false,"id":13160,"mutability":"mutable","name":"result","nameLocation":"190835:6:0","nodeType":"VariableDeclaration","scope":13181,"src":"190827:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13159,"name":"uint256","nodeType":"ElementaryTypeName","src":"190827:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13164,"initialValue":{"arguments":[{"id":13162,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13151,"src":"190849:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13161,"name":"sqrt","nodeType":"Identifier","overloadedDeclarations":[13148,13183],"referencedDeclaration":13148,"src":"190844:4:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":13163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"190844:7:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"190827:24:0"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13165,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13160,"src":"190872:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":13174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":13167,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13154,"src":"190899:8:0","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$12616","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$12616","typeString":"enum Math.Rounding"}],"id":13166,"name":"unsignedRoundsUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13658,"src":"190882:16:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_Rounding_$12616_$returns$_t_bool_$","typeString":"function (enum Math.Rounding) pure returns (bool)"}},"id":13168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"190882:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13169,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13160,"src":"190912:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":13170,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13160,"src":"190921:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"190912:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":13172,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13151,"src":"190930:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"190912:19:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"190882:49:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":13176,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"190938:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":13177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"190882:57:0","trueExpression":{"hexValue":"31","id":13175,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"190934:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":13178,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"190881:59:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"190872:68:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":13158,"id":13180,"nodeType":"Return","src":"190865:75:0"}]}]},"documentation":{"id":13149,"nodeType":"StructuredDocumentation","src":"190623:89:0","text":" @notice Calculates sqrt(a), following the selected rounding direction."},"id":13183,"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"190726:4:0","nodeType":"FunctionDefinition","parameters":{"id":13155,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13151,"mutability":"mutable","name":"a","nameLocation":"190739:1:0","nodeType":"VariableDeclaration","scope":13183,"src":"190731:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13150,"name":"uint256","nodeType":"ElementaryTypeName","src":"190731:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13154,"mutability":"mutable","name":"rounding","nameLocation":"190751:8:0","nodeType":"VariableDeclaration","scope":13183,"src":"190742:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$12616","typeString":"enum Math.Rounding"},"typeName":{"id":13153,"nodeType":"UserDefinedTypeName","pathNode":{"id":13152,"name":"Rounding","nameLocations":["190742:8:0"],"nodeType":"IdentifierPath","referencedDeclaration":12616,"src":"190742:8:0"},"referencedDeclaration":12616,"src":"190742:8:0","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$12616","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"190730:30:0"},"returnParameters":{"id":13158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13157,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13183,"src":"190784:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13156,"name":"uint256","nodeType":"ElementaryTypeName","src":"190784:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"190783:9:0"},"scope":13659,"src":"190717:240:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13314,"nodeType":"Block","src":"191148:922:0","statements":[{"assignments":[13192],"declarations":[{"constant":false,"id":13192,"mutability":"mutable","name":"result","nameLocation":"191166:6:0","nodeType":"VariableDeclaration","scope":13314,"src":"191158:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13191,"name":"uint256","nodeType":"ElementaryTypeName","src":"191158:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13194,"initialValue":{"hexValue":"30","id":13193,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"191175:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"191158:18:0"},{"id":13311,"nodeType":"UncheckedBlock","src":"191186:855:0","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13195,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13186,"src":"191214:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":13196,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"191223:3:0","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"191214:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":13198,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"191229:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"191214:16:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13209,"nodeType":"IfStatement","src":"191210:99:0","trueBody":{"id":13208,"nodeType":"Block","src":"191232:77:0","statements":[{"expression":{"id":13202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13200,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13186,"src":"191250:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"313238","id":13201,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"191260:3:0","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"191250:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13203,"nodeType":"ExpressionStatement","src":"191250:13:0"},{"expression":{"id":13206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13204,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13192,"src":"191281:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"313238","id":13205,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"191291:3:0","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"191281:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13207,"nodeType":"ExpressionStatement","src":"191281:13:0"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13210,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13186,"src":"191326:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":13211,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"191335:2:0","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"191326:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":13213,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"191340:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"191326:15:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13224,"nodeType":"IfStatement","src":"191322:96:0","trueBody":{"id":13223,"nodeType":"Block","src":"191343:75:0","statements":[{"expression":{"id":13217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13215,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13186,"src":"191361:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3634","id":13216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"191371:2:0","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"191361:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13218,"nodeType":"ExpressionStatement","src":"191361:12:0"},{"expression":{"id":13221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13219,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13192,"src":"191391:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3634","id":13220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"191401:2:0","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"191391:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13222,"nodeType":"ExpressionStatement","src":"191391:12:0"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13225,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13186,"src":"191435:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3332","id":13226,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"191444:2:0","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"191435:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":13228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"191449:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"191435:15:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13239,"nodeType":"IfStatement","src":"191431:96:0","trueBody":{"id":13238,"nodeType":"Block","src":"191452:75:0","statements":[{"expression":{"id":13232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13230,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13186,"src":"191470:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3332","id":13231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"191480:2:0","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"191470:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13233,"nodeType":"ExpressionStatement","src":"191470:12:0"},{"expression":{"id":13236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13234,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13192,"src":"191500:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":13235,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"191510:2:0","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"191500:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13237,"nodeType":"ExpressionStatement","src":"191500:12:0"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13240,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13186,"src":"191544:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3136","id":13241,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"191553:2:0","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"191544:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":13243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"191558:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"191544:15:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13254,"nodeType":"IfStatement","src":"191540:96:0","trueBody":{"id":13253,"nodeType":"Block","src":"191561:75:0","statements":[{"expression":{"id":13247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13245,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13186,"src":"191579:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3136","id":13246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"191589:2:0","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"191579:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13248,"nodeType":"ExpressionStatement","src":"191579:12:0"},{"expression":{"id":13251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13249,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13192,"src":"191609:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":13250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"191619:2:0","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"191609:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13252,"nodeType":"ExpressionStatement","src":"191609:12:0"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13255,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13186,"src":"191653:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"38","id":13256,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"191662:1:0","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"191653:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":13258,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"191666:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"191653:14:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13269,"nodeType":"IfStatement","src":"191649:93:0","trueBody":{"id":13268,"nodeType":"Block","src":"191669:73:0","statements":[{"expression":{"id":13262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13260,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13186,"src":"191687:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"38","id":13261,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"191697:1:0","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"191687:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13263,"nodeType":"ExpressionStatement","src":"191687:11:0"},{"expression":{"id":13266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13264,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13192,"src":"191716:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":13265,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"191726:1:0","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"191716:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13267,"nodeType":"ExpressionStatement","src":"191716:11:0"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13270,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13186,"src":"191759:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"34","id":13271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"191768:1:0","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"191759:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":13273,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"191772:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"191759:14:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13284,"nodeType":"IfStatement","src":"191755:93:0","trueBody":{"id":13283,"nodeType":"Block","src":"191775:73:0","statements":[{"expression":{"id":13277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13275,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13186,"src":"191793:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":13276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"191803:1:0","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"191793:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13278,"nodeType":"ExpressionStatement","src":"191793:11:0"},{"expression":{"id":13281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13279,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13192,"src":"191822:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":13280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"191832:1:0","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"191822:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13282,"nodeType":"ExpressionStatement","src":"191822:11:0"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13285,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13186,"src":"191865:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"32","id":13286,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"191874:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"191865:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":13288,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"191878:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"191865:14:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13299,"nodeType":"IfStatement","src":"191861:93:0","trueBody":{"id":13298,"nodeType":"Block","src":"191881:73:0","statements":[{"expression":{"id":13292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13290,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13186,"src":"191899:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"32","id":13291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"191909:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"191899:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13293,"nodeType":"ExpressionStatement","src":"191899:11:0"},{"expression":{"id":13296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13294,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13192,"src":"191928:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":13295,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"191938:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"191928:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13297,"nodeType":"ExpressionStatement","src":"191928:11:0"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13300,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13186,"src":"191971:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":13301,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"191980:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"191971:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":13303,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"191984:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"191971:14:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13310,"nodeType":"IfStatement","src":"191967:64:0","trueBody":{"id":13309,"nodeType":"Block","src":"191987:44:0","statements":[{"expression":{"id":13307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13305,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13192,"src":"192005:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":13306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"192015:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"192005:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13308,"nodeType":"ExpressionStatement","src":"192005:11:0"}]}}]},{"expression":{"id":13312,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13192,"src":"192057:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":13190,"id":13313,"nodeType":"Return","src":"192050:13:0"}]},"documentation":{"id":13184,"nodeType":"StructuredDocumentation","src":"190963:119:0","text":" @dev Return the log in base 2 of a positive value rounded towards zero.\n Returns 0 if given 0."},"id":13315,"implemented":true,"kind":"function","modifiers":[],"name":"log2","nameLocation":"191096:4:0","nodeType":"FunctionDefinition","parameters":{"id":13187,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13186,"mutability":"mutable","name":"value","nameLocation":"191109:5:0","nodeType":"VariableDeclaration","scope":13315,"src":"191101:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13185,"name":"uint256","nodeType":"ElementaryTypeName","src":"191101:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"191100:15:0"},"returnParameters":{"id":13190,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13189,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13315,"src":"191139:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13188,"name":"uint256","nodeType":"ElementaryTypeName","src":"191139:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"191138:9:0"},"scope":13659,"src":"191087:983:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13349,"nodeType":"Block","src":"192303:168:0","statements":[{"id":13348,"nodeType":"UncheckedBlock","src":"192313:152:0","statements":[{"assignments":[13327],"declarations":[{"constant":false,"id":13327,"mutability":"mutable","name":"result","nameLocation":"192345:6:0","nodeType":"VariableDeclaration","scope":13348,"src":"192337:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13326,"name":"uint256","nodeType":"ElementaryTypeName","src":"192337:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13331,"initialValue":{"arguments":[{"id":13329,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13318,"src":"192359:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13328,"name":"log2","nodeType":"Identifier","overloadedDeclarations":[13315,13350],"referencedDeclaration":13315,"src":"192354:4:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":13330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"192354:11:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"192337:28:0"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13332,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13327,"src":"192386:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":13341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":13334,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13321,"src":"192413:8:0","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$12616","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$12616","typeString":"enum Math.Rounding"}],"id":13333,"name":"unsignedRoundsUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13658,"src":"192396:16:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_Rounding_$12616_$returns$_t_bool_$","typeString":"function (enum Math.Rounding) pure returns (bool)"}},"id":13335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"192396:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":13336,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"192426:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":13337,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13327,"src":"192431:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"192426:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":13339,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13318,"src":"192440:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"192426:19:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"192396:49:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":13343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"192452:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":13344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"192396:57:0","trueExpression":{"hexValue":"31","id":13342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"192448:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":13345,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"192395:59:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"192386:68:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":13325,"id":13347,"nodeType":"Return","src":"192379:75:0"}]}]},"documentation":{"id":13316,"nodeType":"StructuredDocumentation","src":"192076:142:0","text":" @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":13350,"implemented":true,"kind":"function","modifiers":[],"name":"log2","nameLocation":"192232:4:0","nodeType":"FunctionDefinition","parameters":{"id":13322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13318,"mutability":"mutable","name":"value","nameLocation":"192245:5:0","nodeType":"VariableDeclaration","scope":13350,"src":"192237:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13317,"name":"uint256","nodeType":"ElementaryTypeName","src":"192237:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13321,"mutability":"mutable","name":"rounding","nameLocation":"192261:8:0","nodeType":"VariableDeclaration","scope":13350,"src":"192252:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$12616","typeString":"enum Math.Rounding"},"typeName":{"id":13320,"nodeType":"UserDefinedTypeName","pathNode":{"id":13319,"name":"Rounding","nameLocations":["192252:8:0"],"nodeType":"IdentifierPath","referencedDeclaration":12616,"src":"192252:8:0"},"referencedDeclaration":12616,"src":"192252:8:0","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$12616","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"192236:34:0"},"returnParameters":{"id":13325,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13324,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13350,"src":"192294:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13323,"name":"uint256","nodeType":"ElementaryTypeName","src":"192294:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"192293:9:0"},"scope":13659,"src":"192223:248:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13478,"nodeType":"Block","src":"192664:854:0","statements":[{"assignments":[13359],"declarations":[{"constant":false,"id":13359,"mutability":"mutable","name":"result","nameLocation":"192682:6:0","nodeType":"VariableDeclaration","scope":13478,"src":"192674:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13358,"name":"uint256","nodeType":"ElementaryTypeName","src":"192674:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13361,"initialValue":{"hexValue":"30","id":13360,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"192691:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"192674:18:0"},{"id":13475,"nodeType":"UncheckedBlock","src":"192702:787:0","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13362,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13353,"src":"192730:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"},"id":13365,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":13363,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"192739:2:0","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":13364,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"192745:2:0","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"192739:8:0","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"}},"src":"192730:17:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13378,"nodeType":"IfStatement","src":"192726:103:0","trueBody":{"id":13377,"nodeType":"Block","src":"192749:80:0","statements":[{"expression":{"id":13371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13367,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13353,"src":"192767:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"},"id":13370,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":13368,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"192776:2:0","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":13369,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"192782:2:0","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"192776:8:0","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"}},"src":"192767:17:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13372,"nodeType":"ExpressionStatement","src":"192767:17:0"},{"expression":{"id":13375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13373,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13359,"src":"192802:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3634","id":13374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"192812:2:0","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"192802:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13376,"nodeType":"ExpressionStatement","src":"192802:12:0"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13379,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13353,"src":"192846:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"},"id":13382,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":13380,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"192855:2:0","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":13381,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"192861:2:0","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"192855:8:0","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"}},"src":"192846:17:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13395,"nodeType":"IfStatement","src":"192842:103:0","trueBody":{"id":13394,"nodeType":"Block","src":"192865:80:0","statements":[{"expression":{"id":13388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13384,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13353,"src":"192883:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"},"id":13387,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":13385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"192892:2:0","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":13386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"192898:2:0","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"192892:8:0","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"}},"src":"192883:17:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13389,"nodeType":"ExpressionStatement","src":"192883:17:0"},{"expression":{"id":13392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13390,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13359,"src":"192918:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":13391,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"192928:2:0","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"192918:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13393,"nodeType":"ExpressionStatement","src":"192918:12:0"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13396,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13353,"src":"192962:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"id":13399,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":13397,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"192971:2:0","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":13398,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"192977:2:0","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"192971:8:0","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"}},"src":"192962:17:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13412,"nodeType":"IfStatement","src":"192958:103:0","trueBody":{"id":13411,"nodeType":"Block","src":"192981:80:0","statements":[{"expression":{"id":13405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13401,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13353,"src":"192999:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"id":13404,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":13402,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"193008:2:0","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":13403,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"193014:2:0","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"193008:8:0","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"}},"src":"192999:17:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13406,"nodeType":"ExpressionStatement","src":"192999:17:0"},{"expression":{"id":13409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13407,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13359,"src":"193034:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":13408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"193044:2:0","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"193034:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13410,"nodeType":"ExpressionStatement","src":"193034:12:0"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13413,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13353,"src":"193078:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"id":13416,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":13414,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"193087:2:0","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"38","id":13415,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"193093:1:0","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"193087:7:0","typeDescriptions":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"}},"src":"193078:16:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13429,"nodeType":"IfStatement","src":"193074:100:0","trueBody":{"id":13428,"nodeType":"Block","src":"193096:78:0","statements":[{"expression":{"id":13422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13418,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13353,"src":"193114:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"id":13421,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":13419,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"193123:2:0","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"38","id":13420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"193129:1:0","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"193123:7:0","typeDescriptions":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"}},"src":"193114:16:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13423,"nodeType":"ExpressionStatement","src":"193114:16:0"},{"expression":{"id":13426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13424,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13359,"src":"193148:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":13425,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"193158:1:0","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"193148:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13427,"nodeType":"ExpressionStatement","src":"193148:11:0"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13430,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13353,"src":"193191:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":13433,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":13431,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"193200:2:0","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":13432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"193206:1:0","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"193200:7:0","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"src":"193191:16:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13446,"nodeType":"IfStatement","src":"193187:100:0","trueBody":{"id":13445,"nodeType":"Block","src":"193209:78:0","statements":[{"expression":{"id":13439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13435,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13353,"src":"193227:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":13438,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":13436,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"193236:2:0","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":13437,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"193242:1:0","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"193236:7:0","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"src":"193227:16:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13440,"nodeType":"ExpressionStatement","src":"193227:16:0"},{"expression":{"id":13443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13441,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13359,"src":"193261:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":13442,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"193271:1:0","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"193261:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13444,"nodeType":"ExpressionStatement","src":"193261:11:0"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13447,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13353,"src":"193304:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"id":13450,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":13448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"193313:2:0","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"32","id":13449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"193319:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"193313:7:0","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}},"src":"193304:16:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13463,"nodeType":"IfStatement","src":"193300:100:0","trueBody":{"id":13462,"nodeType":"Block","src":"193322:78:0","statements":[{"expression":{"id":13456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13452,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13353,"src":"193340:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"id":13455,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":13453,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"193349:2:0","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"32","id":13454,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"193355:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"193349:7:0","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}},"src":"193340:16:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13457,"nodeType":"ExpressionStatement","src":"193340:16:0"},{"expression":{"id":13460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13458,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13359,"src":"193374:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":13459,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"193384:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"193374:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13461,"nodeType":"ExpressionStatement","src":"193374:11:0"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13468,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13464,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13353,"src":"193417:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"id":13467,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":13465,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"193426:2:0","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"31","id":13466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"193432:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"193426:7:0","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}},"src":"193417:16:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13474,"nodeType":"IfStatement","src":"193413:66:0","trueBody":{"id":13473,"nodeType":"Block","src":"193435:44:0","statements":[{"expression":{"id":13471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13469,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13359,"src":"193453:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":13470,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"193463:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"193453:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13472,"nodeType":"ExpressionStatement","src":"193453:11:0"}]}}]},{"expression":{"id":13476,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13359,"src":"193505:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":13357,"id":13477,"nodeType":"Return","src":"193498:13:0"}]},"documentation":{"id":13351,"nodeType":"StructuredDocumentation","src":"192477:120:0","text":" @dev Return the log in base 10 of a positive value rounded towards zero.\n Returns 0 if given 0."},"id":13479,"implemented":true,"kind":"function","modifiers":[],"name":"log10","nameLocation":"192611:5:0","nodeType":"FunctionDefinition","parameters":{"id":13354,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13353,"mutability":"mutable","name":"value","nameLocation":"192625:5:0","nodeType":"VariableDeclaration","scope":13479,"src":"192617:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13352,"name":"uint256","nodeType":"ElementaryTypeName","src":"192617:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"192616:15:0"},"returnParameters":{"id":13357,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13356,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13479,"src":"192655:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13355,"name":"uint256","nodeType":"ElementaryTypeName","src":"192655:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"192654:9:0"},"scope":13659,"src":"192602:916:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13513,"nodeType":"Block","src":"193753:170:0","statements":[{"id":13512,"nodeType":"UncheckedBlock","src":"193763:154:0","statements":[{"assignments":[13491],"declarations":[{"constant":false,"id":13491,"mutability":"mutable","name":"result","nameLocation":"193795:6:0","nodeType":"VariableDeclaration","scope":13512,"src":"193787:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13490,"name":"uint256","nodeType":"ElementaryTypeName","src":"193787:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13495,"initialValue":{"arguments":[{"id":13493,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13482,"src":"193810:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13492,"name":"log10","nodeType":"Identifier","overloadedDeclarations":[13479,13514],"referencedDeclaration":13479,"src":"193804:5:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":13494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"193804:12:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"193787:29:0"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13496,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13491,"src":"193837:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":13505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":13498,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13485,"src":"193864:8:0","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$12616","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$12616","typeString":"enum Math.Rounding"}],"id":13497,"name":"unsignedRoundsUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13658,"src":"193847:16:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_Rounding_$12616_$returns$_t_bool_$","typeString":"function (enum Math.Rounding) pure returns (bool)"}},"id":13499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"193847:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":13500,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"193877:2:0","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":13501,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13491,"src":"193883:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"193877:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":13503,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13482,"src":"193892:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"193877:20:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"193847:50:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":13507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"193904:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":13508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"193847:58:0","trueExpression":{"hexValue":"31","id":13506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"193900:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":13509,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"193846:60:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"193837:69:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":13489,"id":13511,"nodeType":"Return","src":"193830:76:0"}]}]},"documentation":{"id":13480,"nodeType":"StructuredDocumentation","src":"193524:143:0","text":" @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":13514,"implemented":true,"kind":"function","modifiers":[],"name":"log10","nameLocation":"193681:5:0","nodeType":"FunctionDefinition","parameters":{"id":13486,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13482,"mutability":"mutable","name":"value","nameLocation":"193695:5:0","nodeType":"VariableDeclaration","scope":13514,"src":"193687:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13481,"name":"uint256","nodeType":"ElementaryTypeName","src":"193687:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13485,"mutability":"mutable","name":"rounding","nameLocation":"193711:8:0","nodeType":"VariableDeclaration","scope":13514,"src":"193702:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$12616","typeString":"enum Math.Rounding"},"typeName":{"id":13484,"nodeType":"UserDefinedTypeName","pathNode":{"id":13483,"name":"Rounding","nameLocations":["193702:8:0"],"nodeType":"IdentifierPath","referencedDeclaration":12616,"src":"193702:8:0"},"referencedDeclaration":12616,"src":"193702:8:0","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$12616","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"193686:34:0"},"returnParameters":{"id":13489,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13488,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13514,"src":"193744:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13487,"name":"uint256","nodeType":"ElementaryTypeName","src":"193744:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"193743:9:0"},"scope":13659,"src":"193672:251:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13600,"nodeType":"Block","src":"194243:600:0","statements":[{"assignments":[13523],"declarations":[{"constant":false,"id":13523,"mutability":"mutable","name":"result","nameLocation":"194261:6:0","nodeType":"VariableDeclaration","scope":13600,"src":"194253:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13522,"name":"uint256","nodeType":"ElementaryTypeName","src":"194253:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13525,"initialValue":{"hexValue":"30","id":13524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"194270:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"194253:18:0"},{"id":13597,"nodeType":"UncheckedBlock","src":"194281:533:0","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13526,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13517,"src":"194309:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":13527,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"194318:3:0","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"194309:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":13529,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"194324:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"194309:16:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13540,"nodeType":"IfStatement","src":"194305:98:0","trueBody":{"id":13539,"nodeType":"Block","src":"194327:76:0","statements":[{"expression":{"id":13533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13531,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13517,"src":"194345:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"313238","id":13532,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"194355:3:0","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"194345:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13534,"nodeType":"ExpressionStatement","src":"194345:13:0"},{"expression":{"id":13537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13535,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13523,"src":"194376:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":13536,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"194386:2:0","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"194376:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13538,"nodeType":"ExpressionStatement","src":"194376:12:0"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13541,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13517,"src":"194420:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":13542,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"194429:2:0","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"194420:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":13544,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"194434:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"194420:15:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13555,"nodeType":"IfStatement","src":"194416:95:0","trueBody":{"id":13554,"nodeType":"Block","src":"194437:74:0","statements":[{"expression":{"id":13548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13546,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13517,"src":"194455:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3634","id":13547,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"194465:2:0","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"194455:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13549,"nodeType":"ExpressionStatement","src":"194455:12:0"},{"expression":{"id":13552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13550,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13523,"src":"194485:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":13551,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"194495:1:0","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"194485:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13553,"nodeType":"ExpressionStatement","src":"194485:11:0"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13556,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13517,"src":"194528:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3332","id":13557,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"194537:2:0","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"194528:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":13559,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"194542:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"194528:15:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13570,"nodeType":"IfStatement","src":"194524:95:0","trueBody":{"id":13569,"nodeType":"Block","src":"194545:74:0","statements":[{"expression":{"id":13563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13561,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13517,"src":"194563:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3332","id":13562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"194573:2:0","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"194563:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13564,"nodeType":"ExpressionStatement","src":"194563:12:0"},{"expression":{"id":13567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13565,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13523,"src":"194593:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":13566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"194603:1:0","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"194593:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13568,"nodeType":"ExpressionStatement","src":"194593:11:0"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13571,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13517,"src":"194636:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3136","id":13572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"194645:2:0","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"194636:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":13574,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"194650:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"194636:15:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13585,"nodeType":"IfStatement","src":"194632:95:0","trueBody":{"id":13584,"nodeType":"Block","src":"194653:74:0","statements":[{"expression":{"id":13578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13576,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13517,"src":"194671:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3136","id":13577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"194681:2:0","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"194671:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13579,"nodeType":"ExpressionStatement","src":"194671:12:0"},{"expression":{"id":13582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13580,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13523,"src":"194701:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":13581,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"194711:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"194701:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13583,"nodeType":"ExpressionStatement","src":"194701:11:0"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13586,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13517,"src":"194744:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"38","id":13587,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"194753:1:0","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"194744:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":13589,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"194757:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"194744:14:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13596,"nodeType":"IfStatement","src":"194740:64:0","trueBody":{"id":13595,"nodeType":"Block","src":"194760:44:0","statements":[{"expression":{"id":13593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13591,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13523,"src":"194778:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":13592,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"194788:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"194778:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13594,"nodeType":"ExpressionStatement","src":"194778:11:0"}]}}]},{"expression":{"id":13598,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13523,"src":"194830:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":13521,"id":13599,"nodeType":"Return","src":"194823:13:0"}]},"documentation":{"id":13515,"nodeType":"StructuredDocumentation","src":"193929:246:0","text":" @dev Return the log in base 256 of a positive value rounded towards zero.\n Returns 0 if given 0.\n Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string."},"id":13601,"implemented":true,"kind":"function","modifiers":[],"name":"log256","nameLocation":"194189:6:0","nodeType":"FunctionDefinition","parameters":{"id":13518,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13517,"mutability":"mutable","name":"value","nameLocation":"194204:5:0","nodeType":"VariableDeclaration","scope":13601,"src":"194196:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13516,"name":"uint256","nodeType":"ElementaryTypeName","src":"194196:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"194195:15:0"},"returnParameters":{"id":13521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13520,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13601,"src":"194234:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13519,"name":"uint256","nodeType":"ElementaryTypeName","src":"194234:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"194233:9:0"},"scope":13659,"src":"194180:663:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13638,"nodeType":"Block","src":"195080:177:0","statements":[{"id":13637,"nodeType":"UncheckedBlock","src":"195090:161:0","statements":[{"assignments":[13613],"declarations":[{"constant":false,"id":13613,"mutability":"mutable","name":"result","nameLocation":"195122:6:0","nodeType":"VariableDeclaration","scope":13637,"src":"195114:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13612,"name":"uint256","nodeType":"ElementaryTypeName","src":"195114:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13617,"initialValue":{"arguments":[{"id":13615,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13604,"src":"195138:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13614,"name":"log256","nodeType":"Identifier","overloadedDeclarations":[13601,13639],"referencedDeclaration":13601,"src":"195131:6:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":13616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"195131:13:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"195114:30:0"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13618,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13613,"src":"195165:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":13630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":13620,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13607,"src":"195192:8:0","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$12616","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$12616","typeString":"enum Math.Rounding"}],"id":13619,"name":"unsignedRoundsUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13658,"src":"195175:16:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_Rounding_$12616_$returns$_t_bool_$","typeString":"function (enum Math.Rounding) pure returns (bool)"}},"id":13621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"195175:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":13622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"195205:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13623,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13613,"src":"195211:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"33","id":13624,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"195221:1:0","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"195211:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":13626,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"195210:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"195205:18:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":13628,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13604,"src":"195226:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"195205:26:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"195175:56:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":13632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"195238:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":13633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"195175:64:0","trueExpression":{"hexValue":"31","id":13631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"195234:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":13634,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"195174:66:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"195165:75:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":13611,"id":13636,"nodeType":"Return","src":"195158:82:0"}]}]},"documentation":{"id":13602,"nodeType":"StructuredDocumentation","src":"194849:144:0","text":" @dev Return the log in base 256, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":13639,"implemented":true,"kind":"function","modifiers":[],"name":"log256","nameLocation":"195007:6:0","nodeType":"FunctionDefinition","parameters":{"id":13608,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13604,"mutability":"mutable","name":"value","nameLocation":"195022:5:0","nodeType":"VariableDeclaration","scope":13639,"src":"195014:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13603,"name":"uint256","nodeType":"ElementaryTypeName","src":"195014:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13607,"mutability":"mutable","name":"rounding","nameLocation":"195038:8:0","nodeType":"VariableDeclaration","scope":13639,"src":"195029:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$12616","typeString":"enum Math.Rounding"},"typeName":{"id":13606,"nodeType":"UserDefinedTypeName","pathNode":{"id":13605,"name":"Rounding","nameLocations":["195029:8:0"],"nodeType":"IdentifierPath","referencedDeclaration":12616,"src":"195029:8:0"},"referencedDeclaration":12616,"src":"195029:8:0","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$12616","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"195013:34:0"},"returnParameters":{"id":13611,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13610,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13639,"src":"195071:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13609,"name":"uint256","nodeType":"ElementaryTypeName","src":"195071:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"195070:9:0"},"scope":13659,"src":"194998:259:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13657,"nodeType":"Block","src":"195455:48:0","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":13655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":13653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":13650,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13643,"src":"195478:8:0","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$12616","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$12616","typeString":"enum Math.Rounding"}],"id":13649,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"195472:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":13648,"name":"uint8","nodeType":"ElementaryTypeName","src":"195472:5:0","typeDescriptions":{}}},"id":13651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"195472:15:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"32","id":13652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"195490:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"195472:19:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":13654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"195495:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"195472:24:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":13647,"id":13656,"nodeType":"Return","src":"195465:31:0"}]},"documentation":{"id":13640,"nodeType":"StructuredDocumentation","src":"195263:113:0","text":" @dev Returns whether a provided rounding mode is considered rounding up for unsigned integers."},"id":13658,"implemented":true,"kind":"function","modifiers":[],"name":"unsignedRoundsUp","nameLocation":"195390:16:0","nodeType":"FunctionDefinition","parameters":{"id":13644,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13643,"mutability":"mutable","name":"rounding","nameLocation":"195416:8:0","nodeType":"VariableDeclaration","scope":13658,"src":"195407:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$12616","typeString":"enum Math.Rounding"},"typeName":{"id":13642,"nodeType":"UserDefinedTypeName","pathNode":{"id":13641,"name":"Rounding","nameLocations":["195407:8:0"],"nodeType":"IdentifierPath","referencedDeclaration":12616,"src":"195407:8:0"},"referencedDeclaration":12616,"src":"195407:8:0","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$12616","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"195406:19:0"},"returnParameters":{"id":13647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13646,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13658,"src":"195449:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13645,"name":"bool","nodeType":"ElementaryTypeName","src":"195449:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"195448:6:0"},"scope":13659,"src":"195381:122:0","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":20815,"src":"180591:14914:0","usedErrors":[12611],"usedEvents":[]},{"abstract":false,"baseContracts":[],"canonicalName":"SignedMath","contractDependencies":[],"contractKind":"library","documentation":{"id":13660,"nodeType":"StructuredDocumentation","src":"195690:80:0","text":" @dev Standard signed math utilities missing in the Solidity language."},"fullyImplemented":true,"id":13762,"linearizedBaseContracts":[13762],"name":"SignedMath","nameLocation":"195779:10:0","nodeType":"ContractDefinition","nodes":[{"body":{"id":13677,"nodeType":"Block","src":"195931:37:0","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":13672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13670,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13663,"src":"195948:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":13671,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13665,"src":"195952:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"195948:5:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":13674,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13665,"src":"195960:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":13675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"195948:13:0","trueExpression":{"id":13673,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13663,"src":"195956:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":13669,"id":13676,"nodeType":"Return","src":"195941:20:0"}]},"documentation":{"id":13661,"nodeType":"StructuredDocumentation","src":"195796:66:0","text":" @dev Returns the largest of two signed numbers."},"id":13678,"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"195876:3:0","nodeType":"FunctionDefinition","parameters":{"id":13666,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13663,"mutability":"mutable","name":"a","nameLocation":"195887:1:0","nodeType":"VariableDeclaration","scope":13678,"src":"195880:8:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13662,"name":"int256","nodeType":"ElementaryTypeName","src":"195880:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":13665,"mutability":"mutable","name":"b","nameLocation":"195897:1:0","nodeType":"VariableDeclaration","scope":13678,"src":"195890:8:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13664,"name":"int256","nodeType":"ElementaryTypeName","src":"195890:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"195879:20:0"},"returnParameters":{"id":13669,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13668,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13678,"src":"195923:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13667,"name":"int256","nodeType":"ElementaryTypeName","src":"195923:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"195922:8:0"},"scope":13762,"src":"195867:101:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13695,"nodeType":"Block","src":"196110:37:0","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":13690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13688,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13681,"src":"196127:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":13689,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13683,"src":"196131:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"196127:5:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":13692,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13683,"src":"196139:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":13693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"196127:13:0","trueExpression":{"id":13691,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13681,"src":"196135:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":13687,"id":13694,"nodeType":"Return","src":"196120:20:0"}]},"documentation":{"id":13679,"nodeType":"StructuredDocumentation","src":"195974:67:0","text":" @dev Returns the smallest of two signed numbers."},"id":13696,"implemented":true,"kind":"function","modifiers":[],"name":"min","nameLocation":"196055:3:0","nodeType":"FunctionDefinition","parameters":{"id":13684,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13681,"mutability":"mutable","name":"a","nameLocation":"196066:1:0","nodeType":"VariableDeclaration","scope":13696,"src":"196059:8:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13680,"name":"int256","nodeType":"ElementaryTypeName","src":"196059:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":13683,"mutability":"mutable","name":"b","nameLocation":"196076:1:0","nodeType":"VariableDeclaration","scope":13696,"src":"196069:8:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13682,"name":"int256","nodeType":"ElementaryTypeName","src":"196069:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"196058:20:0"},"returnParameters":{"id":13687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13686,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13696,"src":"196102:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13685,"name":"int256","nodeType":"ElementaryTypeName","src":"196102:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"196101:8:0"},"scope":13762,"src":"196046:101:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13739,"nodeType":"Block","src":"196352:162:0","statements":[{"assignments":[13707],"declarations":[{"constant":false,"id":13707,"mutability":"mutable","name":"x","nameLocation":"196421:1:0","nodeType":"VariableDeclaration","scope":13739,"src":"196414:8:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13706,"name":"int256","nodeType":"ElementaryTypeName","src":"196414:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":13720,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":13719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":13710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13708,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13699,"src":"196426:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":13709,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13701,"src":"196430:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"196426:5:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":13711,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"196425:7:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":13717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":13714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13712,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13699,"src":"196437:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":13713,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13701,"src":"196441:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"196437:5:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":13715,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"196436:7:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":13716,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"196447:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"196436:12:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":13718,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"196435:14:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"196425:24:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"196414:35:0"},{"expression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":13737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13721,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13707,"src":"196466:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":13735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":13726,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13707,"src":"196486:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":13725,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"196478:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":13724,"name":"uint256","nodeType":"ElementaryTypeName","src":"196478:7:0","typeDescriptions":{}}},"id":13727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"196478:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"323535","id":13728,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"196492:3:0","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"src":"196478:17:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13723,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"196471:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":13722,"name":"int256","nodeType":"ElementaryTypeName","src":"196471:6:0","typeDescriptions":{}}},"id":13730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"196471:25:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":13733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13731,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13699,"src":"196500:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":13732,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13701,"src":"196504:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"196500:5:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":13734,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"196499:7:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"196471:35:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":13736,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"196470:37:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"196466:41:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":13705,"id":13738,"nodeType":"Return","src":"196459:48:0"}]},"documentation":{"id":13697,"nodeType":"StructuredDocumentation","src":"196153:126:0","text":" @dev Returns the average of two signed numbers without overflow.\n The result is rounded towards zero."},"id":13740,"implemented":true,"kind":"function","modifiers":[],"name":"average","nameLocation":"196293:7:0","nodeType":"FunctionDefinition","parameters":{"id":13702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13699,"mutability":"mutable","name":"a","nameLocation":"196308:1:0","nodeType":"VariableDeclaration","scope":13740,"src":"196301:8:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13698,"name":"int256","nodeType":"ElementaryTypeName","src":"196301:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":13701,"mutability":"mutable","name":"b","nameLocation":"196318:1:0","nodeType":"VariableDeclaration","scope":13740,"src":"196311:8:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13700,"name":"int256","nodeType":"ElementaryTypeName","src":"196311:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"196300:20:0"},"returnParameters":{"id":13705,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13704,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13740,"src":"196344:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13703,"name":"int256","nodeType":"ElementaryTypeName","src":"196344:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"196343:8:0"},"scope":13762,"src":"196284:230:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13760,"nodeType":"Block","src":"196658:158:0","statements":[{"id":13759,"nodeType":"UncheckedBlock","src":"196668:142:0","statements":[{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":13752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13750,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13743,"src":"196783:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30","id":13751,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"196788:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"196783:6:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":13755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"196796:2:0","subExpression":{"id":13754,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13743,"src":"196797:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":13756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"196783:15:0","trueExpression":{"id":13753,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13743,"src":"196792:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":13749,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"196775:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":13748,"name":"uint256","nodeType":"ElementaryTypeName","src":"196775:7:0","typeDescriptions":{}}},"id":13757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"196775:24:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":13747,"id":13758,"nodeType":"Return","src":"196768:31:0"}]}]},"documentation":{"id":13741,"nodeType":"StructuredDocumentation","src":"196520:78:0","text":" @dev Returns the absolute unsigned value of a signed value."},"id":13761,"implemented":true,"kind":"function","modifiers":[],"name":"abs","nameLocation":"196612:3:0","nodeType":"FunctionDefinition","parameters":{"id":13744,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13743,"mutability":"mutable","name":"n","nameLocation":"196623:1:0","nodeType":"VariableDeclaration","scope":13761,"src":"196616:8:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13742,"name":"int256","nodeType":"ElementaryTypeName","src":"196616:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"196615:10:0"},"returnParameters":{"id":13747,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13746,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13761,"src":"196649:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13745,"name":"uint256","nodeType":"ElementaryTypeName","src":"196649:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"196648:9:0"},"scope":13762,"src":"196603:213:0","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":20815,"src":"195771:1047:0","usedErrors":[],"usedEvents":[]},{"canonicalName":"Options","documentation":{"id":13763,"nodeType":"StructuredDocumentation","src":"196874:26:0","text":" Common options."},"id":13779,"members":[{"constant":false,"id":13765,"mutability":"mutable","name":"referenceContract","nameLocation":"197175:17:0","nodeType":"VariableDeclaration","scope":13779,"src":"197168:24:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":13764,"name":"string","nodeType":"ElementaryTypeName","src":"197168:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13767,"mutability":"mutable","name":"constructorData","nameLocation":"197482:15:0","nodeType":"VariableDeclaration","scope":13779,"src":"197476:21:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":13766,"name":"bytes","nodeType":"ElementaryTypeName","src":"197476:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":13769,"mutability":"mutable","name":"unsafeAllow","nameLocation":"197744:11:0","nodeType":"VariableDeclaration","scope":13779,"src":"197737:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":13768,"name":"string","nodeType":"ElementaryTypeName","src":"197737:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13771,"mutability":"mutable","name":"unsafeAllowRenames","nameLocation":"197846:18:0","nodeType":"VariableDeclaration","scope":13779,"src":"197841:23:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13770,"name":"bool","nodeType":"ElementaryTypeName","src":"197841:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13773,"mutability":"mutable","name":"unsafeSkipStorageCheck","nameLocation":"198015:22:0","nodeType":"VariableDeclaration","scope":13779,"src":"198010:27:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13772,"name":"bool","nodeType":"ElementaryTypeName","src":"198010:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13775,"mutability":"mutable","name":"unsafeSkipAllChecks","nameLocation":"198165:19:0","nodeType":"VariableDeclaration","scope":13779,"src":"198160:24:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13774,"name":"bool","nodeType":"ElementaryTypeName","src":"198160:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13778,"mutability":"mutable","name":"defender","nameLocation":"198275:8:0","nodeType":"VariableDeclaration","scope":13779,"src":"198259:24:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_DefenderOptions_$13800_storage_ptr","typeString":"struct DefenderOptions"},"typeName":{"id":13777,"nodeType":"UserDefinedTypeName","pathNode":{"id":13776,"name":"DefenderOptions","nameLocations":["198259:15:0"],"nodeType":"IdentifierPath","referencedDeclaration":13800,"src":"198259:15:0"},"referencedDeclaration":13800,"src":"198259:15:0","typeDescriptions":{"typeIdentifier":"t_struct$_DefenderOptions_$13800_storage_ptr","typeString":"struct DefenderOptions"}},"visibility":"internal"}],"name":"Options","nameLocation":"196908:7:0","nodeType":"StructDefinition","scope":20815,"src":"196901:1385:0","visibility":"public"},{"canonicalName":"DefenderOptions","documentation":{"id":13780,"nodeType":"StructuredDocumentation","src":"198288:57:0","text":" Options for OpenZeppelin Defender deployments."},"id":13800,"members":[{"constant":false,"id":13782,"mutability":"mutable","name":"useDefenderDeploy","nameLocation":"198803:17:0","nodeType":"VariableDeclaration","scope":13800,"src":"198798:22:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13781,"name":"bool","nodeType":"ElementaryTypeName","src":"198798:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13784,"mutability":"mutable","name":"skipVerifySourceCode","nameLocation":"198978:20:0","nodeType":"VariableDeclaration","scope":13800,"src":"198973:25:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13783,"name":"bool","nodeType":"ElementaryTypeName","src":"198973:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13786,"mutability":"mutable","name":"relayerId","nameLocation":"199208:9:0","nodeType":"VariableDeclaration","scope":13800,"src":"199201:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":13785,"name":"string","nodeType":"ElementaryTypeName","src":"199201:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13788,"mutability":"mutable","name":"salt","nameLocation":"199733:4:0","nodeType":"VariableDeclaration","scope":13800,"src":"199725:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13787,"name":"bytes32","nodeType":"ElementaryTypeName","src":"199725:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":13790,"mutability":"mutable","name":"upgradeApprovalProcessId","nameLocation":"199949:24:0","nodeType":"VariableDeclaration","scope":13800,"src":"199942:31:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":13789,"name":"string","nodeType":"ElementaryTypeName","src":"199942:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13792,"mutability":"mutable","name":"licenseType","nameLocation":"200395:11:0","nodeType":"VariableDeclaration","scope":13800,"src":"200388:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":13791,"name":"string","nodeType":"ElementaryTypeName","src":"200388:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13794,"mutability":"mutable","name":"skipLicenseType","nameLocation":"200645:15:0","nodeType":"VariableDeclaration","scope":13800,"src":"200640:20:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13793,"name":"bool","nodeType":"ElementaryTypeName","src":"200640:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13797,"mutability":"mutable","name":"txOverrides","nameLocation":"200761:11:0","nodeType":"VariableDeclaration","scope":13800,"src":"200749:23:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_TxOverrides_$13810_storage_ptr","typeString":"struct TxOverrides"},"typeName":{"id":13796,"nodeType":"UserDefinedTypeName","pathNode":{"id":13795,"name":"TxOverrides","nameLocations":["200749:11:0"],"nodeType":"IdentifierPath","referencedDeclaration":13810,"src":"200749:11:0"},"referencedDeclaration":13810,"src":"200749:11:0","typeDescriptions":{"typeIdentifier":"t_struct$_TxOverrides_$13810_storage_ptr","typeString":"struct TxOverrides"}},"visibility":"internal"},{"constant":false,"id":13799,"mutability":"mutable","name":"metadata","nameLocation":"201106:8:0","nodeType":"VariableDeclaration","scope":13800,"src":"201099:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":13798,"name":"string","nodeType":"ElementaryTypeName","src":"201099:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"name":"DefenderOptions","nameLocation":"198353:15:0","nodeType":"StructDefinition","scope":20815,"src":"198346:2771:0","visibility":"public"},{"canonicalName":"TxOverrides","documentation":{"id":13801,"nodeType":"StructuredDocumentation","src":"201119:71:0","text":" Transaction overrides for OpenZeppelin Defender deployments."},"id":13810,"members":[{"constant":false,"id":13803,"mutability":"mutable","name":"gasLimit","nameLocation":"201312:8:0","nodeType":"VariableDeclaration","scope":13810,"src":"201304:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13802,"name":"uint256","nodeType":"ElementaryTypeName","src":"201304:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13805,"mutability":"mutable","name":"gasPrice","nameLocation":"201399:8:0","nodeType":"VariableDeclaration","scope":13810,"src":"201391:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13804,"name":"uint256","nodeType":"ElementaryTypeName","src":"201391:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13807,"mutability":"mutable","name":"maxFeePerGas","nameLocation":"201478:12:0","nodeType":"VariableDeclaration","scope":13810,"src":"201470:20:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13806,"name":"uint256","nodeType":"ElementaryTypeName","src":"201470:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13809,"mutability":"mutable","name":"maxPriorityFeePerGas","nameLocation":"201564:20:0","nodeType":"VariableDeclaration","scope":13810,"src":"201556:28:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13808,"name":"uint256","nodeType":"ElementaryTypeName","src":"201556:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"TxOverrides","nameLocation":"201198:11:0","nodeType":"StructDefinition","scope":20815,"src":"201191:396:0","visibility":"public"},{"abstract":false,"baseContracts":[],"canonicalName":"Versions","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":13817,"linearizedBaseContracts":[13817],"name":"Versions","nameLocation":"201661:8:0","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":13813,"mutability":"constant","name":"UPGRADES_CORE","nameLocation":"201770:13:0","nodeType":"VariableDeclaration","scope":13817,"src":"201754:41:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13811,"name":"string","nodeType":"ElementaryTypeName","src":"201754:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"5e312e33322e33","id":13812,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"201786:9:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e00c6f4aa8a4973ed176f4bd54e81871ab41df62bfd120446aca4ec9e83bbe53","typeString":"literal_string \"^1.32.3\""},"value":"^1.32.3"},"visibility":"internal"},{"constant":true,"id":13816,"mutability":"constant","name":"DEFENDER_DEPLOY_CLIENT_CLI","nameLocation":"201817:26:0","nodeType":"VariableDeclaration","scope":13817,"src":"201801:60:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13814,"name":"string","nodeType":"ElementaryTypeName","src":"201801:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"302e302e312d616c7068612e39","id":13815,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"201846:15:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_8743e529e614684b10af09772f76a2fca6ddd34a44633fa50828fc37842fd003","typeString":"literal_string \"0.0.1-alpha.9\""},"value":"0.0.1-alpha.9"},"visibility":"internal"}],"scope":20815,"src":"201653:211:0","usedErrors":[],"usedEvents":[]},{"abstract":false,"baseContracts":[],"canonicalName":"IProxyAdmin","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":13836,"linearizedBaseContracts":[13836],"name":"IProxyAdmin","nameLocation":"201954:11:0","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":13818,"nodeType":"StructuredDocumentation","src":"201972:113:0","text":" Upgrades a proxy to a new implementation without calling a function on the new implementation."},"functionSelector":"99a88ec4","id":13825,"implemented":false,"kind":"function","modifiers":[],"name":"upgrade","nameLocation":"202099:7:0","nodeType":"FunctionDefinition","parameters":{"id":13823,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13820,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13825,"src":"202107:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13819,"name":"address","nodeType":"ElementaryTypeName","src":"202107:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13822,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13825,"src":"202116:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13821,"name":"address","nodeType":"ElementaryTypeName","src":"202116:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"202106:18:0"},"returnParameters":{"id":13824,"nodeType":"ParameterList","parameters":[],"src":"202133:0:0"},"scope":13836,"src":"202090:44:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":13826,"nodeType":"StructuredDocumentation","src":"202140:233:0","text":" Upgrades a proxy to a new implementation and calls a function on the new implementation.\n If UPGRADE_INTERFACE_VERSION is \"5.0.0\", bytes can be empty if no function should be called on the new implementation."},"functionSelector":"9623609d","id":13835,"implemented":false,"kind":"function","modifiers":[],"name":"upgradeAndCall","nameLocation":"202387:14:0","nodeType":"FunctionDefinition","parameters":{"id":13833,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13828,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13835,"src":"202402:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13827,"name":"address","nodeType":"ElementaryTypeName","src":"202402:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13830,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13835,"src":"202411:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13829,"name":"address","nodeType":"ElementaryTypeName","src":"202411:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13832,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13835,"src":"202420:12:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13831,"name":"bytes","nodeType":"ElementaryTypeName","src":"202420:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"202401:32:0"},"returnParameters":{"id":13834,"nodeType":"ParameterList","parameters":[],"src":"202450:0:0"},"scope":13836,"src":"202378:73:0","stateMutability":"payable","virtual":false,"visibility":"external"}],"scope":20815,"src":"201944:509:0","usedErrors":[],"usedEvents":[]},{"abstract":false,"baseContracts":[],"canonicalName":"IUpgradeableBeacon","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":13843,"linearizedBaseContracts":[13843],"name":"IUpgradeableBeacon","nameLocation":"202550:18:0","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":13837,"nodeType":"StructuredDocumentation","src":"202575:63:0","text":" Upgrades the beacon to a new implementation."},"functionSelector":"3659cfe6","id":13842,"implemented":false,"kind":"function","modifiers":[],"name":"upgradeTo","nameLocation":"202652:9:0","nodeType":"FunctionDefinition","parameters":{"id":13840,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13839,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13842,"src":"202662:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13838,"name":"address","nodeType":"ElementaryTypeName","src":"202662:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"202661:9:0"},"returnParameters":{"id":13841,"nodeType":"ParameterList","parameters":[],"src":"202679:0:0"},"scope":13843,"src":"202643:37:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":20815,"src":"202540:142:0","usedErrors":[],"usedEvents":[]},{"abstract":false,"baseContracts":[],"canonicalName":"IUpgradeableProxy","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":13858,"linearizedBaseContracts":[13858],"name":"IUpgradeableProxy","nameLocation":"202778:17:0","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":13844,"nodeType":"StructuredDocumentation","src":"202802:115:0","text":" Upgrades the proxy to a new implementation without calling a function on the new implementation."},"functionSelector":"3659cfe6","id":13849,"implemented":false,"kind":"function","modifiers":[],"name":"upgradeTo","nameLocation":"202931:9:0","nodeType":"FunctionDefinition","parameters":{"id":13847,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13846,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13849,"src":"202941:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13845,"name":"address","nodeType":"ElementaryTypeName","src":"202941:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"202940:9:0"},"returnParameters":{"id":13848,"nodeType":"ParameterList","parameters":[],"src":"202958:0:0"},"scope":13858,"src":"202922:37:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":13850,"nodeType":"StructuredDocumentation","src":"202965:235:0","text":" Upgrades the proxy to a new implementation and calls a function on the new implementation.\n If UPGRADE_INTERFACE_VERSION is \"5.0.0\", bytes can be empty if no function should be called on the new implementation."},"functionSelector":"4f1ef286","id":13857,"implemented":false,"kind":"function","modifiers":[],"name":"upgradeToAndCall","nameLocation":"203214:16:0","nodeType":"FunctionDefinition","parameters":{"id":13855,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13852,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13857,"src":"203231:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13851,"name":"address","nodeType":"ElementaryTypeName","src":"203231:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13854,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13857,"src":"203240:12:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13853,"name":"bytes","nodeType":"ElementaryTypeName","src":"203240:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"203230:23:0"},"returnParameters":{"id":13856,"nodeType":"ParameterList","parameters":[],"src":"203270:0:0"},"scope":13858,"src":"203205:66:0","stateMutability":"payable","virtual":false,"visibility":"external"}],"scope":20815,"src":"202768:505:0","usedErrors":[],"usedEvents":[]},{"abstract":true,"baseContracts":[{"baseName":{"id":13860,"name":"Context","nameLocations":["203961:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":12499,"src":"203961:7:0"},"id":13861,"nodeType":"InheritanceSpecifier","src":"203961:7:0"}],"canonicalName":"Ownable","contractDependencies":[],"contractKind":"contract","documentation":{"id":13859,"nodeType":"StructuredDocumentation","src":"203444:487:0","text":" @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n The initial owner is set to the address provided by the deployer. This can\n later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner."},"fullyImplemented":true,"id":14002,"linearizedBaseContracts":[14002,12499],"name":"Ownable","nameLocation":"203950:7:0","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":13863,"mutability":"mutable","name":"_owner","nameLocation":"203991:6:0","nodeType":"VariableDeclaration","scope":14002,"src":"203975:22:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13862,"name":"address","nodeType":"ElementaryTypeName","src":"203975:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"documentation":{"id":13864,"nodeType":"StructuredDocumentation","src":"204004:85:0","text":" @dev The caller account is not authorized to perform an operation."},"errorSelector":"118cdaa7","id":13868,"name":"OwnableUnauthorizedAccount","nameLocation":"204100:26:0","nodeType":"ErrorDefinition","parameters":{"id":13867,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13866,"mutability":"mutable","name":"account","nameLocation":"204135:7:0","nodeType":"VariableDeclaration","scope":13868,"src":"204127:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13865,"name":"address","nodeType":"ElementaryTypeName","src":"204127:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"204126:17:0"},"src":"204094:50:0"},{"documentation":{"id":13869,"nodeType":"StructuredDocumentation","src":"204150:82:0","text":" @dev The owner is not a valid owner account. (eg. `address(0)`)"},"errorSelector":"1e4fbdf7","id":13873,"name":"OwnableInvalidOwner","nameLocation":"204243:19:0","nodeType":"ErrorDefinition","parameters":{"id":13872,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13871,"mutability":"mutable","name":"owner","nameLocation":"204271:5:0","nodeType":"VariableDeclaration","scope":13873,"src":"204263:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13870,"name":"address","nodeType":"ElementaryTypeName","src":"204263:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"204262:15:0"},"src":"204237:41:0"},{"anonymous":false,"eventSelector":"8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","id":13879,"name":"OwnershipTransferred","nameLocation":"204290:20:0","nodeType":"EventDefinition","parameters":{"id":13878,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13875,"indexed":true,"mutability":"mutable","name":"previousOwner","nameLocation":"204327:13:0","nodeType":"VariableDeclaration","scope":13879,"src":"204311:29:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13874,"name":"address","nodeType":"ElementaryTypeName","src":"204311:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13877,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"204358:8:0","nodeType":"VariableDeclaration","scope":13879,"src":"204342:24:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13876,"name":"address","nodeType":"ElementaryTypeName","src":"204342:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"204310:57:0"},"src":"204284:84:0"},{"body":{"id":13904,"nodeType":"Block","src":"204528:153:0","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":13890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13885,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13882,"src":"204542:12:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":13888,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"204566:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":13887,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"204558:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13886,"name":"address","nodeType":"ElementaryTypeName","src":"204558:7:0","typeDescriptions":{}}},"id":13889,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"204558:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"204542:26:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13899,"nodeType":"IfStatement","src":"204538:95:0","trueBody":{"id":13898,"nodeType":"Block","src":"204570:63:0","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":13894,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"204619:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":13893,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"204611:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13892,"name":"address","nodeType":"ElementaryTypeName","src":"204611:7:0","typeDescriptions":{}}},"id":13895,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"204611:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13891,"name":"OwnableInvalidOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13873,"src":"204591:19:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":13896,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"204591:31:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":13897,"nodeType":"RevertStatement","src":"204584:38:0"}]}},{"expression":{"arguments":[{"id":13901,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13882,"src":"204661:12:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13900,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14001,"src":"204642:18:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":13902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"204642:32:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13903,"nodeType":"ExpressionStatement","src":"204642:32:0"}]},"documentation":{"id":13880,"nodeType":"StructuredDocumentation","src":"204374:115:0","text":" @dev Initializes the contract setting the address provided by the deployer as the initial owner."},"id":13905,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":13883,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13882,"mutability":"mutable","name":"initialOwner","nameLocation":"204514:12:0","nodeType":"VariableDeclaration","scope":13905,"src":"204506:20:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13881,"name":"address","nodeType":"ElementaryTypeName","src":"204506:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"204505:22:0"},"returnParameters":{"id":13884,"nodeType":"ParameterList","parameters":[],"src":"204528:0:0"},"scope":14002,"src":"204494:187:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":13912,"nodeType":"Block","src":"204790:41:0","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":13908,"name":"_checkOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13939,"src":"204800:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":13909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"204800:13:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13910,"nodeType":"ExpressionStatement","src":"204800:13:0"},{"id":13911,"nodeType":"PlaceholderStatement","src":"204823:1:0"}]},"documentation":{"id":13906,"nodeType":"StructuredDocumentation","src":"204687:77:0","text":" @dev Throws if called by any account other than the owner."},"id":13913,"name":"onlyOwner","nameLocation":"204778:9:0","nodeType":"ModifierDefinition","parameters":{"id":13907,"nodeType":"ParameterList","parameters":[],"src":"204787:2:0"},"src":"204769:62:0","virtual":false,"visibility":"internal"},{"body":{"id":13921,"nodeType":"Block","src":"204962:30:0","statements":[{"expression":{"id":13919,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13863,"src":"204979:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":13918,"id":13920,"nodeType":"Return","src":"204972:13:0"}]},"documentation":{"id":13914,"nodeType":"StructuredDocumentation","src":"204837:65:0","text":" @dev Returns the address of the current owner."},"functionSelector":"8da5cb5b","id":13922,"implemented":true,"kind":"function","modifiers":[],"name":"owner","nameLocation":"204916:5:0","nodeType":"FunctionDefinition","parameters":{"id":13915,"nodeType":"ParameterList","parameters":[],"src":"204921:2:0"},"returnParameters":{"id":13918,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13917,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13922,"src":"204953:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13916,"name":"address","nodeType":"ElementaryTypeName","src":"204953:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"204952:9:0"},"scope":14002,"src":"204907:85:0","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":13938,"nodeType":"Block","src":"205110:117:0","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":13930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":13926,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13922,"src":"205124:5:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":13927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"205124:7:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":13928,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12481,"src":"205135:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":13929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"205135:12:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"205124:23:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13937,"nodeType":"IfStatement","src":"205120:101:0","trueBody":{"id":13936,"nodeType":"Block","src":"205149:72:0","statements":[{"errorCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":13932,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12481,"src":"205197:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":13933,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"205197:12:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13931,"name":"OwnableUnauthorizedAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13868,"src":"205170:26:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":13934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"205170:40:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":13935,"nodeType":"RevertStatement","src":"205163:47:0"}]}}]},"documentation":{"id":13923,"nodeType":"StructuredDocumentation","src":"204998:62:0","text":" @dev Throws if the sender is not the owner."},"id":13939,"implemented":true,"kind":"function","modifiers":[],"name":"_checkOwner","nameLocation":"205074:11:0","nodeType":"FunctionDefinition","parameters":{"id":13924,"nodeType":"ParameterList","parameters":[],"src":"205085:2:0"},"returnParameters":{"id":13925,"nodeType":"ParameterList","parameters":[],"src":"205110:0:0"},"scope":14002,"src":"205065:162:0","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":13952,"nodeType":"Block","src":"205616:47:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":13948,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"205653:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":13947,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"205645:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13946,"name":"address","nodeType":"ElementaryTypeName","src":"205645:7:0","typeDescriptions":{}}},"id":13949,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"205645:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13945,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14001,"src":"205626:18:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":13950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"205626:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13951,"nodeType":"ExpressionStatement","src":"205626:30:0"}]},"documentation":{"id":13940,"nodeType":"StructuredDocumentation","src":"205233:324:0","text":" @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby disabling any functionality that is only available to the owner."},"functionSelector":"715018a6","id":13953,"implemented":true,"kind":"function","modifiers":[{"id":13943,"kind":"modifierInvocation","modifierName":{"id":13942,"name":"onlyOwner","nameLocations":["205606:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":13913,"src":"205606:9:0"},"nodeType":"ModifierInvocation","src":"205606:9:0"}],"name":"renounceOwnership","nameLocation":"205571:17:0","nodeType":"FunctionDefinition","parameters":{"id":13941,"nodeType":"ParameterList","parameters":[],"src":"205588:2:0"},"returnParameters":{"id":13944,"nodeType":"ParameterList","parameters":[],"src":"205616:0:0"},"scope":14002,"src":"205562:101:0","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":13980,"nodeType":"Block","src":"205882:145:0","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":13966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13961,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13956,"src":"205896:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":13964,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"205916:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":13963,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"205908:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13962,"name":"address","nodeType":"ElementaryTypeName","src":"205908:7:0","typeDescriptions":{}}},"id":13965,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"205908:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"205896:22:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13975,"nodeType":"IfStatement","src":"205892:91:0","trueBody":{"id":13974,"nodeType":"Block","src":"205920:63:0","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":13970,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"205969:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":13969,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"205961:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13968,"name":"address","nodeType":"ElementaryTypeName","src":"205961:7:0","typeDescriptions":{}}},"id":13971,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"205961:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13967,"name":"OwnableInvalidOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13873,"src":"205941:19:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":13972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"205941:31:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":13973,"nodeType":"RevertStatement","src":"205934:38:0"}]}},{"expression":{"arguments":[{"id":13977,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13956,"src":"206011:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13976,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14001,"src":"205992:18:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":13978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"205992:28:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13979,"nodeType":"ExpressionStatement","src":"205992:28:0"}]},"documentation":{"id":13954,"nodeType":"StructuredDocumentation","src":"205669:138:0","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner."},"functionSelector":"f2fde38b","id":13981,"implemented":true,"kind":"function","modifiers":[{"id":13959,"kind":"modifierInvocation","modifierName":{"id":13958,"name":"onlyOwner","nameLocations":["205872:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":13913,"src":"205872:9:0"},"nodeType":"ModifierInvocation","src":"205872:9:0"}],"name":"transferOwnership","nameLocation":"205821:17:0","nodeType":"FunctionDefinition","parameters":{"id":13957,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13956,"mutability":"mutable","name":"newOwner","nameLocation":"205847:8:0","nodeType":"VariableDeclaration","scope":13981,"src":"205839:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13955,"name":"address","nodeType":"ElementaryTypeName","src":"205839:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"205838:18:0"},"returnParameters":{"id":13960,"nodeType":"ParameterList","parameters":[],"src":"205882:0:0"},"scope":14002,"src":"205812:215:0","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":14000,"nodeType":"Block","src":"206244:124:0","statements":[{"assignments":[13988],"declarations":[{"constant":false,"id":13988,"mutability":"mutable","name":"oldOwner","nameLocation":"206262:8:0","nodeType":"VariableDeclaration","scope":14000,"src":"206254:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13987,"name":"address","nodeType":"ElementaryTypeName","src":"206254:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":13990,"initialValue":{"id":13989,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13863,"src":"206273:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"206254:25:0"},{"expression":{"id":13993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13991,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13863,"src":"206289:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":13992,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13984,"src":"206298:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"206289:17:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13994,"nodeType":"ExpressionStatement","src":"206289:17:0"},{"eventCall":{"arguments":[{"id":13996,"name":"oldOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13988,"src":"206342:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13997,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13984,"src":"206352:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":13995,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13879,"src":"206321:20:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":13998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"206321:40:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13999,"nodeType":"EmitStatement","src":"206316:45:0"}]},"documentation":{"id":13982,"nodeType":"StructuredDocumentation","src":"206033:143:0","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction."},"id":14001,"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nameLocation":"206190:18:0","nodeType":"FunctionDefinition","parameters":{"id":13985,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13984,"mutability":"mutable","name":"newOwner","nameLocation":"206217:8:0","nodeType":"VariableDeclaration","scope":14001,"src":"206209:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13983,"name":"address","nodeType":"ElementaryTypeName","src":"206209:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"206208:18:0"},"returnParameters":{"id":13986,"nodeType":"ParameterList","parameters":[],"src":"206244:0:0"},"scope":14002,"src":"206181:187:0","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":20815,"src":"203932:2438:0","usedErrors":[13868,13873],"usedEvents":[13879]},{"abstract":false,"baseContracts":[],"canonicalName":"Strings","contractDependencies":[],"contractKind":"library","documentation":{"id":14003,"nodeType":"StructuredDocumentation","src":"206539:34:0","text":" @dev String operations."},"fullyImplemented":true,"id":16079,"linearizedBaseContracts":[16079],"name":"Strings","nameLocation":"206582:7:0","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":14006,"mutability":"constant","name":"HEX_DIGITS","nameLocation":"206621:10:0","nodeType":"VariableDeclaration","scope":16079,"src":"206596:56:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":14004,"name":"bytes16","nodeType":"ElementaryTypeName","src":"206596:7:0","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"value":{"hexValue":"30313233343536373839616263646566","id":14005,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"206634:18:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_cb29997ed99ead0db59ce4d12b7d3723198c827273e5796737c926d78019c39f","typeString":"literal_string \"0123456789abcdef\""},"value":"0123456789abcdef"},"visibility":"private"},{"constant":true,"id":14009,"mutability":"constant","name":"ADDRESS_LENGTH","nameLocation":"206681:14:0","nodeType":"VariableDeclaration","scope":16079,"src":"206658:42:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":14007,"name":"uint8","nodeType":"ElementaryTypeName","src":"206658:5:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3230","id":14008,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"206698:2:0","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"visibility":"private"},{"canonicalName":"Strings.slice","id":14014,"members":[{"constant":false,"id":14011,"mutability":"mutable","name":"_len","nameLocation":"206735:4:0","nodeType":"VariableDeclaration","scope":14014,"src":"206730:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14010,"name":"uint","nodeType":"ElementaryTypeName","src":"206730:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14013,"mutability":"mutable","name":"_ptr","nameLocation":"206754:4:0","nodeType":"VariableDeclaration","scope":14014,"src":"206749:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14012,"name":"uint","nodeType":"ElementaryTypeName","src":"206749:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"slice","nameLocation":"206714:5:0","nodeType":"StructDefinition","scope":16079,"src":"206707:58:0","visibility":"public"},{"body":{"id":14066,"nodeType":"Block","src":"206834:568:0","statements":[{"body":{"id":14039,"nodeType":"Block","src":"206928:136:0","statements":[{"AST":{"nativeSrc":"206951:56:0","nodeType":"YulBlock","src":"206951:56:0","statements":[{"expression":{"arguments":[{"name":"dest","nativeSrc":"206976:4:0","nodeType":"YulIdentifier","src":"206976:4:0"},{"arguments":[{"name":"src","nativeSrc":"206988:3:0","nodeType":"YulIdentifier","src":"206988:3:0"}],"functionName":{"name":"mload","nativeSrc":"206982:5:0","nodeType":"YulIdentifier","src":"206982:5:0"},"nativeSrc":"206982:10:0","nodeType":"YulFunctionCall","src":"206982:10:0"}],"functionName":{"name":"mstore","nativeSrc":"206969:6:0","nodeType":"YulIdentifier","src":"206969:6:0"},"nativeSrc":"206969:24:0","nodeType":"YulFunctionCall","src":"206969:24:0"},"nativeSrc":"206969:24:0","nodeType":"YulExpressionStatement","src":"206969:24:0"}]},"evmVersion":"paris","externalReferences":[{"declaration":14016,"isOffset":false,"isSlot":false,"src":"206976:4:0","valueSize":1},{"declaration":14018,"isOffset":false,"isSlot":false,"src":"206988:3:0","valueSize":1}],"id":14030,"nodeType":"InlineAssembly","src":"206942:65:0"},{"expression":{"id":14033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14031,"name":"dest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14016,"src":"207020:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":14032,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"207028:2:0","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"207020:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14034,"nodeType":"ExpressionStatement","src":"207020:10:0"},{"expression":{"id":14037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14035,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14018,"src":"207044:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":14036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"207051:2:0","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"207044:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14038,"nodeType":"ExpressionStatement","src":"207044:9:0"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14023,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14020,"src":"206900:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"3332","id":14024,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"206910:2:0","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"206900:12:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14040,"isSimpleCounterLoop":false,"loopExpression":{"expression":{"id":14028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14026,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14020,"src":"206914:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"3332","id":14027,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"206924:2:0","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"206914:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14029,"nodeType":"ExpressionStatement","src":"206914:12:0"},"nodeType":"ForStatement","src":"206894:170:0"},{"assignments":[14042],"declarations":[{"constant":false,"id":14042,"mutability":"mutable","name":"mask","nameLocation":"207111:4:0","nodeType":"VariableDeclaration","scope":14066,"src":"207106:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14041,"name":"uint","nodeType":"ElementaryTypeName","src":"207106:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14048,"initialValue":{"expression":{"arguments":[{"id":14045,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"207123:4:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":14044,"name":"uint","nodeType":"ElementaryTypeName","src":"207123:4:0","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":14043,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"207118:4:0","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":14046,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"207118:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":14047,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"207129:3:0","memberName":"max","nodeType":"MemberAccess","src":"207118:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"207106:26:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14049,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14020,"src":"207146:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":14050,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"207155:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"207146:10:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14064,"nodeType":"IfStatement","src":"207142:72:0","trueBody":{"id":14063,"nodeType":"Block","src":"207158:56:0","statements":[{"expression":{"id":14061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14052,"name":"mask","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14042,"src":"207172:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"323536","id":14053,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"207179:3:0","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":14054,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"207187:2:0","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":14055,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14020,"src":"207192:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"207187:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":14057,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"207186:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"207179:20:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":14059,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"207202:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"207179:24:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"207172:31:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14062,"nodeType":"ExpressionStatement","src":"207172:31:0"}]}},{"AST":{"nativeSrc":"207232:164:0","nodeType":"YulBlock","src":"207232:164:0","statements":[{"nativeSrc":"207246:41:0","nodeType":"YulVariableDeclaration","src":"207246:41:0","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"207271:3:0","nodeType":"YulIdentifier","src":"207271:3:0"}],"functionName":{"name":"mload","nativeSrc":"207265:5:0","nodeType":"YulIdentifier","src":"207265:5:0"},"nativeSrc":"207265:10:0","nodeType":"YulFunctionCall","src":"207265:10:0"},{"arguments":[{"name":"mask","nativeSrc":"207281:4:0","nodeType":"YulIdentifier","src":"207281:4:0"}],"functionName":{"name":"not","nativeSrc":"207277:3:0","nodeType":"YulIdentifier","src":"207277:3:0"},"nativeSrc":"207277:9:0","nodeType":"YulFunctionCall","src":"207277:9:0"}],"functionName":{"name":"and","nativeSrc":"207261:3:0","nodeType":"YulIdentifier","src":"207261:3:0"},"nativeSrc":"207261:26:0","nodeType":"YulFunctionCall","src":"207261:26:0"},"variables":[{"name":"srcpart","nativeSrc":"207250:7:0","nodeType":"YulTypedName","src":"207250:7:0","type":""}]},{"nativeSrc":"207300:38:0","nodeType":"YulVariableDeclaration","src":"207300:38:0","value":{"arguments":[{"arguments":[{"name":"dest","nativeSrc":"207326:4:0","nodeType":"YulIdentifier","src":"207326:4:0"}],"functionName":{"name":"mload","nativeSrc":"207320:5:0","nodeType":"YulIdentifier","src":"207320:5:0"},"nativeSrc":"207320:11:0","nodeType":"YulFunctionCall","src":"207320:11:0"},{"name":"mask","nativeSrc":"207333:4:0","nodeType":"YulIdentifier","src":"207333:4:0"}],"functionName":{"name":"and","nativeSrc":"207316:3:0","nodeType":"YulIdentifier","src":"207316:3:0"},"nativeSrc":"207316:22:0","nodeType":"YulFunctionCall","src":"207316:22:0"},"variables":[{"name":"destpart","nativeSrc":"207304:8:0","nodeType":"YulTypedName","src":"207304:8:0","type":""}]},{"expression":{"arguments":[{"name":"dest","nativeSrc":"207358:4:0","nodeType":"YulIdentifier","src":"207358:4:0"},{"arguments":[{"name":"destpart","nativeSrc":"207367:8:0","nodeType":"YulIdentifier","src":"207367:8:0"},{"name":"srcpart","nativeSrc":"207377:7:0","nodeType":"YulIdentifier","src":"207377:7:0"}],"functionName":{"name":"or","nativeSrc":"207364:2:0","nodeType":"YulIdentifier","src":"207364:2:0"},"nativeSrc":"207364:21:0","nodeType":"YulFunctionCall","src":"207364:21:0"}],"functionName":{"name":"mstore","nativeSrc":"207351:6:0","nodeType":"YulIdentifier","src":"207351:6:0"},"nativeSrc":"207351:35:0","nodeType":"YulFunctionCall","src":"207351:35:0"},"nativeSrc":"207351:35:0","nodeType":"YulExpressionStatement","src":"207351:35:0"}]},"evmVersion":"paris","externalReferences":[{"declaration":14016,"isOffset":false,"isSlot":false,"src":"207326:4:0","valueSize":1},{"declaration":14016,"isOffset":false,"isSlot":false,"src":"207358:4:0","valueSize":1},{"declaration":14042,"isOffset":false,"isSlot":false,"src":"207281:4:0","valueSize":1},{"declaration":14042,"isOffset":false,"isSlot":false,"src":"207333:4:0","valueSize":1},{"declaration":14018,"isOffset":false,"isSlot":false,"src":"207271:3:0","valueSize":1}],"id":14065,"nodeType":"InlineAssembly","src":"207223:173:0"}]},"id":14067,"implemented":true,"kind":"function","modifiers":[],"name":"memcpy","nameLocation":"206780:6:0","nodeType":"FunctionDefinition","parameters":{"id":14021,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14016,"mutability":"mutable","name":"dest","nameLocation":"206792:4:0","nodeType":"VariableDeclaration","scope":14067,"src":"206787:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14015,"name":"uint","nodeType":"ElementaryTypeName","src":"206787:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14018,"mutability":"mutable","name":"src","nameLocation":"206803:3:0","nodeType":"VariableDeclaration","scope":14067,"src":"206798:8:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14017,"name":"uint","nodeType":"ElementaryTypeName","src":"206798:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14020,"mutability":"mutable","name":"length","nameLocation":"206813:6:0","nodeType":"VariableDeclaration","scope":14067,"src":"206808:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14019,"name":"uint","nodeType":"ElementaryTypeName","src":"206808:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"206786:34:0"},"returnParameters":{"id":14022,"nodeType":"ParameterList","parameters":[],"src":"206834:0:0"},"scope":16079,"src":"206771:631:0","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":14088,"nodeType":"Block","src":"207676:136:0","statements":[{"assignments":[14076],"declarations":[{"constant":false,"id":14076,"mutability":"mutable","name":"ptr","nameLocation":"207691:3:0","nodeType":"VariableDeclaration","scope":14088,"src":"207686:8:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14075,"name":"uint","nodeType":"ElementaryTypeName","src":"207686:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14077,"nodeType":"VariableDeclarationStatement","src":"207686:8:0"},{"AST":{"nativeSrc":"207713:46:0","nodeType":"YulBlock","src":"207713:46:0","statements":[{"nativeSrc":"207727:22:0","nodeType":"YulAssignment","src":"207727:22:0","value":{"arguments":[{"name":"self","nativeSrc":"207738:4:0","nodeType":"YulIdentifier","src":"207738:4:0"},{"kind":"number","nativeSrc":"207744:4:0","nodeType":"YulLiteral","src":"207744:4:0","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"207734:3:0","nodeType":"YulIdentifier","src":"207734:3:0"},"nativeSrc":"207734:15:0","nodeType":"YulFunctionCall","src":"207734:15:0"},"variableNames":[{"name":"ptr","nativeSrc":"207727:3:0","nodeType":"YulIdentifier","src":"207727:3:0"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":14076,"isOffset":false,"isSlot":false,"src":"207727:3:0","valueSize":1},{"declaration":14069,"isOffset":false,"isSlot":false,"src":"207738:4:0","valueSize":1}],"id":14078,"nodeType":"InlineAssembly","src":"207704:55:0"},{"expression":{"arguments":[{"expression":{"arguments":[{"id":14082,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14069,"src":"207787:4:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":14081,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"207781:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":14080,"name":"bytes","nodeType":"ElementaryTypeName","src":"207781:5:0","typeDescriptions":{}}},"id":14083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"207781:11:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":14084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"207793:6:0","memberName":"length","nodeType":"MemberAccess","src":"207781:18:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14085,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14076,"src":"207801:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14079,"name":"slice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14014,"src":"207775:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_slice_$14014_storage_ptr_$","typeString":"type(struct Strings.slice storage pointer)"}},"id":14086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"207775:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"functionReturnParameters":14074,"id":14087,"nodeType":"Return","src":"207768:37:0"}]},"id":14089,"implemented":true,"kind":"function","modifiers":[],"name":"toSlice","nameLocation":"207611:7:0","nodeType":"FunctionDefinition","parameters":{"id":14070,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14069,"mutability":"mutable","name":"self","nameLocation":"207633:4:0","nodeType":"VariableDeclaration","scope":14089,"src":"207619:18:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14068,"name":"string","nodeType":"ElementaryTypeName","src":"207619:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"207618:20:0"},"returnParameters":{"id":14074,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14073,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14089,"src":"207662:12:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice"},"typeName":{"id":14072,"nodeType":"UserDefinedTypeName","pathNode":{"id":14071,"name":"slice","nameLocations":["207662:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"207662:5:0"},"referencedDeclaration":14014,"src":"207662:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"visibility":"internal"}],"src":"207661:14:0"},"scope":16079,"src":"207602:210:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14247,"nodeType":"Block","src":"208064:750:0","statements":[{"assignments":[14097],"declarations":[{"constant":false,"id":14097,"mutability":"mutable","name":"ret","nameLocation":"208079:3:0","nodeType":"VariableDeclaration","scope":14247,"src":"208074:8:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14096,"name":"uint","nodeType":"ElementaryTypeName","src":"208074:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14098,"nodeType":"VariableDeclarationStatement","src":"208074:8:0"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":14101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14099,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14091,"src":"208096:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":14100,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"208104:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"208096:9:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14104,"nodeType":"IfStatement","src":"208092:35:0","trueBody":{"expression":{"hexValue":"30","id":14102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"208126:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":14095,"id":14103,"nodeType":"Return","src":"208119:8:0"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":14107,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14091,"src":"208146:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":14106,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"208141:4:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":14105,"name":"uint","nodeType":"ElementaryTypeName","src":"208141:4:0","typeDescriptions":{}}},"id":14108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"208141:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"expression":{"arguments":[{"id":14111,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"208159:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":14110,"name":"uint128","nodeType":"ElementaryTypeName","src":"208159:7:0","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"}],"id":14109,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"208154:4:0","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":14112,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"208154:13:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint128","typeString":"type(uint128)"}},"id":14113,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"208168:3:0","memberName":"max","nodeType":"MemberAccess","src":"208154:17:0","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"208141:30:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":14115,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"208175:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"208141:35:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14134,"nodeType":"IfStatement","src":"208137:153:0","trueBody":{"id":14133,"nodeType":"Block","src":"208178:112:0","statements":[{"expression":{"id":14119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14117,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14097,"src":"208192:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":14118,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"208199:2:0","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"208192:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14120,"nodeType":"ExpressionStatement","src":"208192:9:0"},{"expression":{"id":14131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14121,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14091,"src":"208215:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":14126,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14091,"src":"208235:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":14125,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"208230:4:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":14124,"name":"uint","nodeType":"ElementaryTypeName","src":"208230:4:0","typeDescriptions":{}}},"id":14127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"208230:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"3078313030303030303030303030303030303030303030303030303030303030303030","id":14128,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"208243:35:0","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"value":"0x100000000000000000000000000000000"},"src":"208230:48:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14123,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"208222:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":14122,"name":"bytes32","nodeType":"ElementaryTypeName","src":"208222:7:0","typeDescriptions":{}}},"id":14130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"208222:57:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"208215:64:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":14132,"nodeType":"ExpressionStatement","src":"208215:64:0"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":14137,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14091,"src":"208308:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":14136,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"208303:4:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":14135,"name":"uint","nodeType":"ElementaryTypeName","src":"208303:4:0","typeDescriptions":{}}},"id":14138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"208303:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"expression":{"arguments":[{"id":14141,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"208321:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":14140,"name":"uint64","nodeType":"ElementaryTypeName","src":"208321:6:0","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":14139,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"208316:4:0","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":14142,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"208316:12:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":14143,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"208329:3:0","memberName":"max","nodeType":"MemberAccess","src":"208316:16:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"208303:29:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":14145,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"208336:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"208303:34:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14164,"nodeType":"IfStatement","src":"208299:135:0","trueBody":{"id":14163,"nodeType":"Block","src":"208339:95:0","statements":[{"expression":{"id":14149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14147,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14097,"src":"208353:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":14148,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"208360:1:0","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"208353:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14150,"nodeType":"ExpressionStatement","src":"208353:8:0"},{"expression":{"id":14161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14151,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14091,"src":"208375:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":14156,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14091,"src":"208395:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":14155,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"208390:4:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":14154,"name":"uint","nodeType":"ElementaryTypeName","src":"208390:4:0","typeDescriptions":{}}},"id":14157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"208390:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"30783130303030303030303030303030303030","id":14158,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"208403:19:0","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"},"value":"0x10000000000000000"},"src":"208390:32:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14153,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"208382:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":14152,"name":"bytes32","nodeType":"ElementaryTypeName","src":"208382:7:0","typeDescriptions":{}}},"id":14160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"208382:41:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"208375:48:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":14162,"nodeType":"ExpressionStatement","src":"208375:48:0"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":14167,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14091,"src":"208452:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":14166,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"208447:4:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":14165,"name":"uint","nodeType":"ElementaryTypeName","src":"208447:4:0","typeDescriptions":{}}},"id":14168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"208447:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"expression":{"arguments":[{"id":14171,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"208465:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":14170,"name":"uint32","nodeType":"ElementaryTypeName","src":"208465:6:0","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"}],"id":14169,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"208460:4:0","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":14172,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"208460:12:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint32","typeString":"type(uint32)"}},"id":14173,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"208473:3:0","memberName":"max","nodeType":"MemberAccess","src":"208460:16:0","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"208447:29:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":14175,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"208480:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"208447:34:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14194,"nodeType":"IfStatement","src":"208443:127:0","trueBody":{"id":14193,"nodeType":"Block","src":"208483:87:0","statements":[{"expression":{"id":14179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14177,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14097,"src":"208497:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":14178,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"208504:1:0","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"208497:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14180,"nodeType":"ExpressionStatement","src":"208497:8:0"},{"expression":{"id":14191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14181,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14091,"src":"208519:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":14186,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14091,"src":"208539:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":14185,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"208534:4:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":14184,"name":"uint","nodeType":"ElementaryTypeName","src":"208534:4:0","typeDescriptions":{}}},"id":14187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"208534:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"3078313030303030303030","id":14188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"208547:11:0","typeDescriptions":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"},"value":"0x100000000"},"src":"208534:24:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14183,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"208526:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":14182,"name":"bytes32","nodeType":"ElementaryTypeName","src":"208526:7:0","typeDescriptions":{}}},"id":14190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"208526:33:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"208519:40:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":14192,"nodeType":"ExpressionStatement","src":"208519:40:0"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":14197,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14091,"src":"208588:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":14196,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"208583:4:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":14195,"name":"uint","nodeType":"ElementaryTypeName","src":"208583:4:0","typeDescriptions":{}}},"id":14198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"208583:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"expression":{"arguments":[{"id":14201,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"208601:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":14200,"name":"uint16","nodeType":"ElementaryTypeName","src":"208601:6:0","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"}],"id":14199,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"208596:4:0","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":14202,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"208596:12:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint16","typeString":"type(uint16)"}},"id":14203,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"208609:3:0","memberName":"max","nodeType":"MemberAccess","src":"208596:16:0","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"208583:29:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":14205,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"208616:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"208583:34:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14224,"nodeType":"IfStatement","src":"208579:123:0","trueBody":{"id":14223,"nodeType":"Block","src":"208619:83:0","statements":[{"expression":{"id":14209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14207,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14097,"src":"208633:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":14208,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"208640:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"208633:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14210,"nodeType":"ExpressionStatement","src":"208633:8:0"},{"expression":{"id":14221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14211,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14091,"src":"208655:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":14216,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14091,"src":"208675:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":14215,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"208670:4:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":14214,"name":"uint","nodeType":"ElementaryTypeName","src":"208670:4:0","typeDescriptions":{}}},"id":14217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"208670:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"30783130303030","id":14218,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"208683:7:0","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"value":"0x10000"},"src":"208670:20:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14213,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"208662:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":14212,"name":"bytes32","nodeType":"ElementaryTypeName","src":"208662:7:0","typeDescriptions":{}}},"id":14220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"208662:29:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"208655:36:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":14222,"nodeType":"ExpressionStatement","src":"208655:36:0"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":14227,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14091,"src":"208720:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":14226,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"208715:4:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":14225,"name":"uint","nodeType":"ElementaryTypeName","src":"208715:4:0","typeDescriptions":{}}},"id":14228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"208715:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"expression":{"arguments":[{"id":14231,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"208733:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":14230,"name":"uint8","nodeType":"ElementaryTypeName","src":"208733:5:0","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":14229,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"208728:4:0","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":14232,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"208728:11:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":14233,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"208740:3:0","memberName":"max","nodeType":"MemberAccess","src":"208728:15:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"208715:28:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":14235,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"208747:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"208715:33:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14242,"nodeType":"IfStatement","src":"208711:72:0","trueBody":{"id":14241,"nodeType":"Block","src":"208750:33:0","statements":[{"expression":{"id":14239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14237,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14097,"src":"208764:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":14238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"208771:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"208764:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14240,"nodeType":"ExpressionStatement","src":"208764:8:0"}]}},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":14243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"208799:2:0","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":14244,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14097,"src":"208804:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"208799:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14095,"id":14246,"nodeType":"Return","src":"208792:15:0"}]},"id":14248,"implemented":true,"kind":"function","modifiers":[],"name":"len","nameLocation":"208017:3:0","nodeType":"FunctionDefinition","parameters":{"id":14092,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14091,"mutability":"mutable","name":"self","nameLocation":"208029:4:0","nodeType":"VariableDeclaration","scope":14248,"src":"208021:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14090,"name":"bytes32","nodeType":"ElementaryTypeName","src":"208021:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"208020:14:0"},"returnParameters":{"id":14095,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14094,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14248,"src":"208058:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14093,"name":"uint","nodeType":"ElementaryTypeName","src":"208058:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"208057:6:0"},"scope":16079,"src":"208008:806:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14265,"nodeType":"Block","src":"209195:295:0","statements":[{"AST":{"nativeSrc":"209297:157:0","nodeType":"YulBlock","src":"209297:157:0","statements":[{"nativeSrc":"209311:22:0","nodeType":"YulVariableDeclaration","src":"209311:22:0","value":{"arguments":[{"kind":"number","nativeSrc":"209328:4:0","nodeType":"YulLiteral","src":"209328:4:0","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"209322:5:0","nodeType":"YulIdentifier","src":"209322:5:0"},"nativeSrc":"209322:11:0","nodeType":"YulFunctionCall","src":"209322:11:0"},"variables":[{"name":"ptr","nativeSrc":"209315:3:0","nodeType":"YulTypedName","src":"209315:3:0","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"209353:4:0","nodeType":"YulLiteral","src":"209353:4:0","type":"","value":"0x40"},{"arguments":[{"name":"ptr","nativeSrc":"209363:3:0","nodeType":"YulIdentifier","src":"209363:3:0"},{"kind":"number","nativeSrc":"209368:4:0","nodeType":"YulLiteral","src":"209368:4:0","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"209359:3:0","nodeType":"YulIdentifier","src":"209359:3:0"},"nativeSrc":"209359:14:0","nodeType":"YulFunctionCall","src":"209359:14:0"}],"functionName":{"name":"mstore","nativeSrc":"209346:6:0","nodeType":"YulIdentifier","src":"209346:6:0"},"nativeSrc":"209346:28:0","nodeType":"YulFunctionCall","src":"209346:28:0"},"nativeSrc":"209346:28:0","nodeType":"YulExpressionStatement","src":"209346:28:0"},{"expression":{"arguments":[{"name":"ptr","nativeSrc":"209394:3:0","nodeType":"YulIdentifier","src":"209394:3:0"},{"name":"self","nativeSrc":"209399:4:0","nodeType":"YulIdentifier","src":"209399:4:0"}],"functionName":{"name":"mstore","nativeSrc":"209387:6:0","nodeType":"YulIdentifier","src":"209387:6:0"},"nativeSrc":"209387:17:0","nodeType":"YulFunctionCall","src":"209387:17:0"},"nativeSrc":"209387:17:0","nodeType":"YulExpressionStatement","src":"209387:17:0"},{"expression":{"arguments":[{"arguments":[{"name":"ret","nativeSrc":"209428:3:0","nodeType":"YulIdentifier","src":"209428:3:0"},{"kind":"number","nativeSrc":"209433:4:0","nodeType":"YulLiteral","src":"209433:4:0","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"209424:3:0","nodeType":"YulIdentifier","src":"209424:3:0"},"nativeSrc":"209424:14:0","nodeType":"YulFunctionCall","src":"209424:14:0"},{"name":"ptr","nativeSrc":"209440:3:0","nodeType":"YulIdentifier","src":"209440:3:0"}],"functionName":{"name":"mstore","nativeSrc":"209417:6:0","nodeType":"YulIdentifier","src":"209417:6:0"},"nativeSrc":"209417:27:0","nodeType":"YulFunctionCall","src":"209417:27:0"},"nativeSrc":"209417:27:0","nodeType":"YulExpressionStatement","src":"209417:27:0"}]},"evmVersion":"paris","externalReferences":[{"declaration":14254,"isOffset":false,"isSlot":false,"src":"209428:3:0","valueSize":1},{"declaration":14250,"isOffset":false,"isSlot":false,"src":"209399:4:0","valueSize":1}],"id":14256,"nodeType":"InlineAssembly","src":"209288:166:0"},{"expression":{"id":14263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":14257,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14254,"src":"209463:3:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":14259,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"209467:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"209463:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":14261,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14250,"src":"209478:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":14260,"name":"len","nodeType":"Identifier","overloadedDeclarations":[14248,14403],"referencedDeclaration":14248,"src":"209474:3:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) pure returns (uint256)"}},"id":14262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"209474:9:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"209463:20:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14264,"nodeType":"ExpressionStatement","src":"209463:20:0"}]},"id":14266,"implemented":true,"kind":"function","modifiers":[],"name":"toSliceB32","nameLocation":"209129:10:0","nodeType":"FunctionDefinition","parameters":{"id":14251,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14250,"mutability":"mutable","name":"self","nameLocation":"209148:4:0","nodeType":"VariableDeclaration","scope":14266,"src":"209140:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14249,"name":"bytes32","nodeType":"ElementaryTypeName","src":"209140:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"209139:14:0"},"returnParameters":{"id":14255,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14254,"mutability":"mutable","name":"ret","nameLocation":"209190:3:0","nodeType":"VariableDeclaration","scope":14266,"src":"209177:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice"},"typeName":{"id":14253,"nodeType":"UserDefinedTypeName","pathNode":{"id":14252,"name":"slice","nameLocations":["209177:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"209177:5:0"},"referencedDeclaration":14014,"src":"209177:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"visibility":"internal"}],"src":"209176:18:0"},"scope":16079,"src":"209120:370:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14282,"nodeType":"Block","src":"209761:51:0","statements":[{"expression":{"arguments":[{"expression":{"id":14276,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14269,"src":"209784:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":14277,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"209789:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"209784:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":14278,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14269,"src":"209795:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":14279,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"209800:4:0","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":14013,"src":"209795:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14275,"name":"slice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14014,"src":"209778:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_slice_$14014_storage_ptr_$","typeString":"type(struct Strings.slice storage pointer)"}},"id":14280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"209778:27:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"functionReturnParameters":14274,"id":14281,"nodeType":"Return","src":"209771:34:0"}]},"id":14283,"implemented":true,"kind":"function","modifiers":[],"name":"copy","nameLocation":"209700:4:0","nodeType":"FunctionDefinition","parameters":{"id":14270,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14269,"mutability":"mutable","name":"self","nameLocation":"209718:4:0","nodeType":"VariableDeclaration","scope":14283,"src":"209705:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice"},"typeName":{"id":14268,"nodeType":"UserDefinedTypeName","pathNode":{"id":14267,"name":"slice","nameLocations":["209705:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"209705:5:0"},"referencedDeclaration":14014,"src":"209705:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"visibility":"internal"}],"src":"209704:19:0"},"returnParameters":{"id":14274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14273,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14283,"src":"209747:12:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice"},"typeName":{"id":14272,"nodeType":"UserDefinedTypeName","pathNode":{"id":14271,"name":"slice","nameLocations":["209747:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"209747:5:0"},"referencedDeclaration":14014,"src":"209747:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"visibility":"internal"}],"src":"209746:14:0"},"scope":16079,"src":"209691:121:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14313,"nodeType":"Block","src":"210059:190:0","statements":[{"assignments":[14292],"declarations":[{"constant":false,"id":14292,"mutability":"mutable","name":"ret","nameLocation":"210083:3:0","nodeType":"VariableDeclaration","scope":14313,"src":"210069:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14291,"name":"string","nodeType":"ElementaryTypeName","src":"210069:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":14298,"initialValue":{"arguments":[{"expression":{"id":14295,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14286,"src":"210100:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":14296,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"210105:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"210100:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14294,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"210089:10:0","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"},"typeName":{"id":14293,"name":"string","nodeType":"ElementaryTypeName","src":"210093:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"id":14297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"210089:21:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"210069:41:0"},{"assignments":[14300],"declarations":[{"constant":false,"id":14300,"mutability":"mutable","name":"retptr","nameLocation":"210125:6:0","nodeType":"VariableDeclaration","scope":14313,"src":"210120:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14299,"name":"uint","nodeType":"ElementaryTypeName","src":"210120:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14301,"nodeType":"VariableDeclarationStatement","src":"210120:11:0"},{"AST":{"nativeSrc":"210150:26:0","nodeType":"YulBlock","src":"210150:26:0","statements":[{"nativeSrc":"210152:22:0","nodeType":"YulAssignment","src":"210152:22:0","value":{"arguments":[{"name":"ret","nativeSrc":"210166:3:0","nodeType":"YulIdentifier","src":"210166:3:0"},{"kind":"number","nativeSrc":"210171:2:0","nodeType":"YulLiteral","src":"210171:2:0","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"210162:3:0","nodeType":"YulIdentifier","src":"210162:3:0"},"nativeSrc":"210162:12:0","nodeType":"YulFunctionCall","src":"210162:12:0"},"variableNames":[{"name":"retptr","nativeSrc":"210152:6:0","nodeType":"YulIdentifier","src":"210152:6:0"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":14292,"isOffset":false,"isSlot":false,"src":"210166:3:0","valueSize":1},{"declaration":14300,"isOffset":false,"isSlot":false,"src":"210152:6:0","valueSize":1}],"id":14302,"nodeType":"InlineAssembly","src":"210141:35:0"},{"expression":{"arguments":[{"id":14304,"name":"retptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14300,"src":"210193:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":14305,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14286,"src":"210201:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":14306,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"210206:4:0","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":14013,"src":"210201:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":14307,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14286,"src":"210212:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":14308,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"210217:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"210212:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14303,"name":"memcpy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14067,"src":"210186:6:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256) pure"}},"id":14309,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"210186:36:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14310,"nodeType":"ExpressionStatement","src":"210186:36:0"},{"expression":{"id":14311,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14292,"src":"210239:3:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":14290,"id":14312,"nodeType":"Return","src":"210232:10:0"}]},"id":14314,"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"209993:8:0","nodeType":"FunctionDefinition","parameters":{"id":14287,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14286,"mutability":"mutable","name":"self","nameLocation":"210015:4:0","nodeType":"VariableDeclaration","scope":14314,"src":"210002:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice"},"typeName":{"id":14285,"nodeType":"UserDefinedTypeName","pathNode":{"id":14284,"name":"slice","nameLocations":["210002:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"210002:5:0"},"referencedDeclaration":14014,"src":"210002:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"visibility":"internal"}],"src":"210001:19:0"},"returnParameters":{"id":14290,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14289,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14314,"src":"210044:13:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14288,"name":"string","nodeType":"ElementaryTypeName","src":"210044:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"210043:15:0"},"scope":16079,"src":"209984:265:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14402,"nodeType":"Block","src":"210703:629:0","statements":[{"assignments":[14323],"declarations":[{"constant":false,"id":14323,"mutability":"mutable","name":"ptr","nameLocation":"210793:3:0","nodeType":"VariableDeclaration","scope":14402,"src":"210788:8:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14322,"name":"uint","nodeType":"ElementaryTypeName","src":"210788:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14328,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14324,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14317,"src":"210799:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":14325,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"210804:4:0","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":14013,"src":"210799:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"3331","id":14326,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"210811:2:0","typeDescriptions":{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"},"value":"31"},"src":"210799:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"210788:25:0"},{"assignments":[14330],"declarations":[{"constant":false,"id":14330,"mutability":"mutable","name":"end","nameLocation":"210828:3:0","nodeType":"VariableDeclaration","scope":14402,"src":"210823:8:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14329,"name":"uint","nodeType":"ElementaryTypeName","src":"210823:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14335,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14331,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14323,"src":"210834:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":14332,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14317,"src":"210840:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":14333,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"210845:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"210840:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"210834:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"210823:26:0"},{"body":{"id":14400,"nodeType":"Block","src":"210887:439:0","statements":[{"assignments":[14347],"declarations":[{"constant":false,"id":14347,"mutability":"mutable","name":"b","nameLocation":"210907:1:0","nodeType":"VariableDeclaration","scope":14400,"src":"210901:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":14346,"name":"uint8","nodeType":"ElementaryTypeName","src":"210901:5:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":14348,"nodeType":"VariableDeclarationStatement","src":"210901:7:0"},{"AST":{"nativeSrc":"210931:30:0","nodeType":"YulBlock","src":"210931:30:0","statements":[{"nativeSrc":"210933:26:0","nodeType":"YulAssignment","src":"210933:26:0","value":{"arguments":[{"arguments":[{"name":"ptr","nativeSrc":"210948:3:0","nodeType":"YulIdentifier","src":"210948:3:0"}],"functionName":{"name":"mload","nativeSrc":"210942:5:0","nodeType":"YulIdentifier","src":"210942:5:0"},"nativeSrc":"210942:10:0","nodeType":"YulFunctionCall","src":"210942:10:0"},{"kind":"number","nativeSrc":"210954:4:0","nodeType":"YulLiteral","src":"210954:4:0","type":"","value":"0xFF"}],"functionName":{"name":"and","nativeSrc":"210938:3:0","nodeType":"YulIdentifier","src":"210938:3:0"},"nativeSrc":"210938:21:0","nodeType":"YulFunctionCall","src":"210938:21:0"},"variableNames":[{"name":"b","nativeSrc":"210933:1:0","nodeType":"YulIdentifier","src":"210933:1:0"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":14347,"isOffset":false,"isSlot":false,"src":"210933:1:0","valueSize":1},{"declaration":14323,"isOffset":false,"isSlot":false,"src":"210948:3:0","valueSize":1}],"id":14349,"nodeType":"InlineAssembly","src":"210922:39:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":14352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14350,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14347,"src":"210978:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30783830","id":14351,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"210982:4:0","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"0x80"},"src":"210978:8:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":14360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14358,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14347,"src":"211038:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30784530","id":14359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"211042:4:0","typeDescriptions":{"typeIdentifier":"t_rational_224_by_1","typeString":"int_const 224"},"value":"0xE0"},"src":"211038:8:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":14368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14366,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14347,"src":"211098:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30784630","id":14367,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"211102:4:0","typeDescriptions":{"typeIdentifier":"t_rational_240_by_1","typeString":"int_const 240"},"value":"0xF0"},"src":"211098:8:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":14376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14374,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14347,"src":"211158:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30784638","id":14375,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"211162:4:0","typeDescriptions":{"typeIdentifier":"t_rational_248_by_1","typeString":"int_const 248"},"value":"0xF8"},"src":"211158:8:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":14384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14382,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14347,"src":"211218:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30784643","id":14383,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"211222:4:0","typeDescriptions":{"typeIdentifier":"t_rational_252_by_1","typeString":"int_const 252"},"value":"0xFC"},"src":"211218:8:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":14394,"nodeType":"Block","src":"211275:41:0","statements":[{"expression":{"id":14392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14390,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14323,"src":"211293:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"36","id":14391,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"211300:1:0","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"src":"211293:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14393,"nodeType":"ExpressionStatement","src":"211293:8:0"}]},"id":14395,"nodeType":"IfStatement","src":"211215:101:0","trueBody":{"id":14389,"nodeType":"Block","src":"211228:41:0","statements":[{"expression":{"id":14387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14385,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14323,"src":"211246:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"35","id":14386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"211253:1:0","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"211246:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14388,"nodeType":"ExpressionStatement","src":"211246:8:0"}]}},"id":14396,"nodeType":"IfStatement","src":"211155:161:0","trueBody":{"id":14381,"nodeType":"Block","src":"211168:41:0","statements":[{"expression":{"id":14379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14377,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14323,"src":"211186:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":14378,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"211193:1:0","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"211186:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14380,"nodeType":"ExpressionStatement","src":"211186:8:0"}]}},"id":14397,"nodeType":"IfStatement","src":"211095:221:0","trueBody":{"id":14373,"nodeType":"Block","src":"211108:41:0","statements":[{"expression":{"id":14371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14369,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14323,"src":"211126:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"33","id":14370,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"211133:1:0","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"211126:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14372,"nodeType":"ExpressionStatement","src":"211126:8:0"}]}},"id":14398,"nodeType":"IfStatement","src":"211035:281:0","trueBody":{"id":14365,"nodeType":"Block","src":"211048:41:0","statements":[{"expression":{"id":14363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14361,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14323,"src":"211066:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":14362,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"211073:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"211066:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14364,"nodeType":"ExpressionStatement","src":"211066:8:0"}]}},"id":14399,"nodeType":"IfStatement","src":"210974:342:0","trueBody":{"id":14357,"nodeType":"Block","src":"210988:41:0","statements":[{"expression":{"id":14355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14353,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14323,"src":"211006:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":14354,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"211013:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"211006:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14356,"nodeType":"ExpressionStatement","src":"211006:8:0"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14340,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14323,"src":"210871:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":14341,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14330,"src":"210877:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"210871:9:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14401,"initializationExpression":{"expression":{"id":14338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14336,"name":"l","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14320,"src":"210864:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":14337,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"210868:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"210864:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14339,"nodeType":"ExpressionStatement","src":"210864:5:0"},"isSimpleCounterLoop":false,"loopExpression":{"expression":{"id":14344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"210882:3:0","subExpression":{"id":14343,"name":"l","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14320,"src":"210882:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14345,"nodeType":"ExpressionStatement","src":"210882:3:0"},"nodeType":"ForStatement","src":"210859:467:0"}]},"id":14403,"implemented":true,"kind":"function","modifiers":[],"name":"len","nameLocation":"210649:3:0","nodeType":"FunctionDefinition","parameters":{"id":14318,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14317,"mutability":"mutable","name":"self","nameLocation":"210666:4:0","nodeType":"VariableDeclaration","scope":14403,"src":"210653:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice"},"typeName":{"id":14316,"nodeType":"UserDefinedTypeName","pathNode":{"id":14315,"name":"slice","nameLocations":["210653:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"210653:5:0"},"referencedDeclaration":14014,"src":"210653:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"visibility":"internal"}],"src":"210652:19:0"},"returnParameters":{"id":14321,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14320,"mutability":"mutable","name":"l","nameLocation":"210700:1:0","nodeType":"VariableDeclaration","scope":14403,"src":"210695:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14319,"name":"uint","nodeType":"ElementaryTypeName","src":"210695:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"210694:8:0"},"scope":16079,"src":"210640:692:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14416,"nodeType":"Block","src":"211588:38:0","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14411,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14406,"src":"211605:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":14412,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"211610:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"211605:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":14413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"211618:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"211605:14:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":14410,"id":14415,"nodeType":"Return","src":"211598:21:0"}]},"id":14417,"implemented":true,"kind":"function","modifiers":[],"name":"empty","nameLocation":"211534:5:0","nodeType":"FunctionDefinition","parameters":{"id":14407,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14406,"mutability":"mutable","name":"self","nameLocation":"211553:4:0","nodeType":"VariableDeclaration","scope":14417,"src":"211540:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice"},"typeName":{"id":14405,"nodeType":"UserDefinedTypeName","pathNode":{"id":14404,"name":"slice","nameLocations":["211540:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"211540:5:0"},"referencedDeclaration":14014,"src":"211540:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"visibility":"internal"}],"src":"211539:19:0"},"returnParameters":{"id":14410,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14409,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14417,"src":"211582:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14408,"name":"bool","nodeType":"ElementaryTypeName","src":"211582:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"211581:6:0"},"scope":16079,"src":"211525:101:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14552,"nodeType":"Block","src":"212138:962:0","statements":[{"assignments":[14429],"declarations":[{"constant":false,"id":14429,"mutability":"mutable","name":"shortest","nameLocation":"212153:8:0","nodeType":"VariableDeclaration","scope":14552,"src":"212148:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14428,"name":"uint","nodeType":"ElementaryTypeName","src":"212148:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14432,"initialValue":{"expression":{"id":14430,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14420,"src":"212164:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":14431,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"212169:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"212164:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"212148:25:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14433,"name":"other","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14423,"src":"212187:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":14434,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"212193:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"212187:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":14435,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14420,"src":"212200:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":14436,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"212205:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"212200:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"212187:22:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14443,"nodeType":"IfStatement","src":"212183:61:0","trueBody":{"expression":{"id":14441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14438,"name":"shortest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14429,"src":"212223:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":14439,"name":"other","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14423,"src":"212234:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":14440,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"212240:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"212234:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"212223:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14442,"nodeType":"ExpressionStatement","src":"212223:21:0"}},{"assignments":[14445],"declarations":[{"constant":false,"id":14445,"mutability":"mutable","name":"selfptr","nameLocation":"212260:7:0","nodeType":"VariableDeclaration","scope":14552,"src":"212255:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14444,"name":"uint","nodeType":"ElementaryTypeName","src":"212255:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14448,"initialValue":{"expression":{"id":14446,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14420,"src":"212270:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":14447,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"212275:4:0","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":14013,"src":"212270:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"212255:24:0"},{"assignments":[14450],"declarations":[{"constant":false,"id":14450,"mutability":"mutable","name":"otherptr","nameLocation":"212294:8:0","nodeType":"VariableDeclaration","scope":14552,"src":"212289:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14449,"name":"uint","nodeType":"ElementaryTypeName","src":"212289:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14453,"initialValue":{"expression":{"id":14451,"name":"other","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14423,"src":"212305:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":14452,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"212311:4:0","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":14013,"src":"212305:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"212289:26:0"},{"body":{"id":14538,"nodeType":"Block","src":"212371:674:0","statements":[{"assignments":[14466],"declarations":[{"constant":false,"id":14466,"mutability":"mutable","name":"a","nameLocation":"212390:1:0","nodeType":"VariableDeclaration","scope":14538,"src":"212385:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14465,"name":"uint","nodeType":"ElementaryTypeName","src":"212385:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14467,"nodeType":"VariableDeclarationStatement","src":"212385:6:0"},{"assignments":[14469],"declarations":[{"constant":false,"id":14469,"mutability":"mutable","name":"b","nameLocation":"212410:1:0","nodeType":"VariableDeclaration","scope":14538,"src":"212405:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14468,"name":"uint","nodeType":"ElementaryTypeName","src":"212405:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14470,"nodeType":"VariableDeclarationStatement","src":"212405:6:0"},{"AST":{"nativeSrc":"212434:88:0","nodeType":"YulBlock","src":"212434:88:0","statements":[{"nativeSrc":"212452:19:0","nodeType":"YulAssignment","src":"212452:19:0","value":{"arguments":[{"name":"selfptr","nativeSrc":"212463:7:0","nodeType":"YulIdentifier","src":"212463:7:0"}],"functionName":{"name":"mload","nativeSrc":"212457:5:0","nodeType":"YulIdentifier","src":"212457:5:0"},"nativeSrc":"212457:14:0","nodeType":"YulFunctionCall","src":"212457:14:0"},"variableNames":[{"name":"a","nativeSrc":"212452:1:0","nodeType":"YulIdentifier","src":"212452:1:0"}]},{"nativeSrc":"212488:20:0","nodeType":"YulAssignment","src":"212488:20:0","value":{"arguments":[{"name":"otherptr","nativeSrc":"212499:8:0","nodeType":"YulIdentifier","src":"212499:8:0"}],"functionName":{"name":"mload","nativeSrc":"212493:5:0","nodeType":"YulIdentifier","src":"212493:5:0"},"nativeSrc":"212493:15:0","nodeType":"YulFunctionCall","src":"212493:15:0"},"variableNames":[{"name":"b","nativeSrc":"212488:1:0","nodeType":"YulIdentifier","src":"212488:1:0"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":14466,"isOffset":false,"isSlot":false,"src":"212452:1:0","valueSize":1},{"declaration":14469,"isOffset":false,"isSlot":false,"src":"212488:1:0","valueSize":1},{"declaration":14450,"isOffset":false,"isSlot":false,"src":"212499:8:0","valueSize":1},{"declaration":14445,"isOffset":false,"isSlot":false,"src":"212463:7:0","valueSize":1}],"id":14471,"nodeType":"InlineAssembly","src":"212425:97:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14472,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14466,"src":"212539:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":14473,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14469,"src":"212544:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"212539:6:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14529,"nodeType":"IfStatement","src":"212535:445:0","trueBody":{"id":14528,"nodeType":"Block","src":"212547:433:0","statements":[{"assignments":[14476],"declarations":[{"constant":false,"id":14476,"mutability":"mutable","name":"mask","nameLocation":"212631:4:0","nodeType":"VariableDeclaration","scope":14528,"src":"212626:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14475,"name":"uint","nodeType":"ElementaryTypeName","src":"212626:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14482,"initialValue":{"expression":{"arguments":[{"id":14479,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"212643:4:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":14478,"name":"uint","nodeType":"ElementaryTypeName","src":"212643:4:0","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":14477,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"212638:4:0","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":14480,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"212638:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":14481,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"212649:3:0","memberName":"max","nodeType":"MemberAccess","src":"212638:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"212626:26:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14483,"name":"shortest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14429,"src":"212686:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"3332","id":14484,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"212697:2:0","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"212686:13:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14505,"nodeType":"IfStatement","src":"212683:103:0","trueBody":{"id":14504,"nodeType":"Block","src":"212701:85:0","statements":[{"expression":{"id":14502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14486,"name":"mask","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14476,"src":"212721:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":14501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"212728:39:0","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":14487,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"212730:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"38","id":14488,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"212736:1:0","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14493,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":14489,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"212741:2:0","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":14490,"name":"shortest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14429,"src":"212746:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"212741:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":14492,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14455,"src":"212757:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"212741:19:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":14494,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"212740:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"212736:25:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":14496,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"212735:27:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"212730:32:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":14498,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"212765:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"212730:36:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":14500,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"212729:38:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"212721:46:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14503,"nodeType":"ExpressionStatement","src":"212721:46:0"}]}},{"id":14527,"nodeType":"UncheckedBlock","src":"212803:163:0","statements":[{"assignments":[14507],"declarations":[{"constant":false,"id":14507,"mutability":"mutable","name":"diff","nameLocation":"212840:4:0","nodeType":"VariableDeclaration","scope":14527,"src":"212835:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14506,"name":"uint","nodeType":"ElementaryTypeName","src":"212835:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14517,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14508,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14466,"src":"212848:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":14509,"name":"mask","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14476,"src":"212852:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"212848:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":14511,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"212847:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14512,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14469,"src":"212861:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":14513,"name":"mask","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14476,"src":"212865:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"212861:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":14515,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"212860:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"212847:23:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"212835:35:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14518,"name":"diff","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14507,"src":"212896:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":14519,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"212904:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"212896:9:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14526,"nodeType":"IfStatement","src":"212892:55:0","trueBody":{"expression":{"arguments":[{"id":14523,"name":"diff","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14507,"src":"212942:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14522,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"212938:3:0","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":14521,"name":"int","nodeType":"ElementaryTypeName","src":"212938:3:0","typeDescriptions":{}}},"id":14524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"212938:9:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":14427,"id":14525,"nodeType":"Return","src":"212931:16:0"}}]}]}},{"expression":{"id":14532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14530,"name":"selfptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14445,"src":"212993:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":14531,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"213004:2:0","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"212993:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14533,"nodeType":"ExpressionStatement","src":"212993:13:0"},{"expression":{"id":14536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14534,"name":"otherptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14450,"src":"213020:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":14535,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"213032:2:0","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"213020:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14537,"nodeType":"ExpressionStatement","src":"213020:14:0"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14458,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14455,"src":"212344:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":14459,"name":"shortest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14429,"src":"212350:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"212344:14:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14539,"initializationExpression":{"assignments":[14455],"declarations":[{"constant":false,"id":14455,"mutability":"mutable","name":"idx","nameLocation":"212335:3:0","nodeType":"VariableDeclaration","scope":14539,"src":"212330:8:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14454,"name":"uint","nodeType":"ElementaryTypeName","src":"212330:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14457,"initialValue":{"hexValue":"30","id":14456,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"212341:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"212330:12:0"},"isSimpleCounterLoop":false,"loopExpression":{"expression":{"id":14463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14461,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14455,"src":"212360:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":14462,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"212367:2:0","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"212360:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14464,"nodeType":"ExpressionStatement","src":"212360:9:0"},"nodeType":"ForStatement","src":"212325:720:0"},{"expression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":14550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":14542,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14420,"src":"213065:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":14543,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"213070:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"213065:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14541,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"213061:3:0","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":14540,"name":"int","nodeType":"ElementaryTypeName","src":"213061:3:0","typeDescriptions":{}}},"id":14544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"213061:14:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"expression":{"id":14547,"name":"other","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14423,"src":"213082:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":14548,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"213088:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"213082:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14546,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"213078:3:0","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":14545,"name":"int","nodeType":"ElementaryTypeName","src":"213078:3:0","typeDescriptions":{}}},"id":14549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"213078:15:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"213061:32:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":14427,"id":14551,"nodeType":"Return","src":"213054:39:0"}]},"id":14553,"implemented":true,"kind":"function","modifiers":[],"name":"compare","nameLocation":"212063:7:0","nodeType":"FunctionDefinition","parameters":{"id":14424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14420,"mutability":"mutable","name":"self","nameLocation":"212084:4:0","nodeType":"VariableDeclaration","scope":14553,"src":"212071:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice"},"typeName":{"id":14419,"nodeType":"UserDefinedTypeName","pathNode":{"id":14418,"name":"slice","nameLocations":["212071:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"212071:5:0"},"referencedDeclaration":14014,"src":"212071:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"visibility":"internal"},{"constant":false,"id":14423,"mutability":"mutable","name":"other","nameLocation":"212103:5:0","nodeType":"VariableDeclaration","scope":14553,"src":"212090:18:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice"},"typeName":{"id":14422,"nodeType":"UserDefinedTypeName","pathNode":{"id":14421,"name":"slice","nameLocations":["212090:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"212090:5:0"},"referencedDeclaration":14014,"src":"212090:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"visibility":"internal"}],"src":"212070:39:0"},"returnParameters":{"id":14427,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14426,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14553,"src":"212133:3:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14425,"name":"int","nodeType":"ElementaryTypeName","src":"212133:3:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"212132:5:0"},"scope":16079,"src":"212054:1046:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14571,"nodeType":"Block","src":"213428:49:0","statements":[{"expression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":14569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":14565,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14556,"src":"213453:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},{"id":14566,"name":"other","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14559,"src":"213459:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"},{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}],"id":14564,"name":"compare","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14553,"src":"213445:7:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$14014_memory_ptr_$_t_struct$_slice_$14014_memory_ptr_$returns$_t_int256_$","typeString":"function (struct Strings.slice memory,struct Strings.slice memory) pure returns (int256)"}},"id":14567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"213445:20:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":14568,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"213469:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"213445:25:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":14563,"id":14570,"nodeType":"Return","src":"213438:32:0"}]},"id":14572,"implemented":true,"kind":"function","modifiers":[],"name":"equals","nameLocation":"213353:6:0","nodeType":"FunctionDefinition","parameters":{"id":14560,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14556,"mutability":"mutable","name":"self","nameLocation":"213373:4:0","nodeType":"VariableDeclaration","scope":14572,"src":"213360:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice"},"typeName":{"id":14555,"nodeType":"UserDefinedTypeName","pathNode":{"id":14554,"name":"slice","nameLocations":["213360:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"213360:5:0"},"referencedDeclaration":14014,"src":"213360:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"visibility":"internal"},{"constant":false,"id":14559,"mutability":"mutable","name":"other","nameLocation":"213392:5:0","nodeType":"VariableDeclaration","scope":14572,"src":"213379:18:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice"},"typeName":{"id":14558,"nodeType":"UserDefinedTypeName","pathNode":{"id":14557,"name":"slice","nameLocations":["213379:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"213379:5:0"},"referencedDeclaration":14014,"src":"213379:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"visibility":"internal"}],"src":"213359:39:0"},"returnParameters":{"id":14563,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14562,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14572,"src":"213422:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14561,"name":"bool","nodeType":"ElementaryTypeName","src":"213422:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"213421:6:0"},"scope":16079,"src":"213344:133:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14692,"nodeType":"Block","src":"213863:785:0","statements":[{"expression":{"id":14589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":14584,"name":"rune","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14578,"src":"213873:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":14586,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"213878:4:0","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":14013,"src":"213873:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":14587,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14575,"src":"213885:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":14588,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"213890:4:0","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":14013,"src":"213885:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"213873:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14590,"nodeType":"ExpressionStatement","src":"213873:21:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14591,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14575,"src":"213909:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":14592,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"213914:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"213909:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":14593,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"213922:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"213909:14:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14604,"nodeType":"IfStatement","src":"213905:83:0","trueBody":{"id":14603,"nodeType":"Block","src":"213925:63:0","statements":[{"expression":{"id":14599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":14595,"name":"rune","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14578,"src":"213939:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":14597,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"213944:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"213939:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":14598,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"213951:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"213939:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14600,"nodeType":"ExpressionStatement","src":"213939:13:0"},{"expression":{"id":14601,"name":"rune","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14578,"src":"213973:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"functionReturnParameters":14583,"id":14602,"nodeType":"Return","src":"213966:11:0"}]}},{"assignments":[14606],"declarations":[{"constant":false,"id":14606,"mutability":"mutable","name":"l","nameLocation":"214003:1:0","nodeType":"VariableDeclaration","scope":14692,"src":"213998:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14605,"name":"uint","nodeType":"ElementaryTypeName","src":"213998:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14607,"nodeType":"VariableDeclarationStatement","src":"213998:6:0"},{"assignments":[14609],"declarations":[{"constant":false,"id":14609,"mutability":"mutable","name":"b","nameLocation":"214019:1:0","nodeType":"VariableDeclaration","scope":14692,"src":"214014:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14608,"name":"uint","nodeType":"ElementaryTypeName","src":"214014:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14610,"nodeType":"VariableDeclarationStatement","src":"214014:6:0"},{"AST":{"nativeSrc":"214101:56:0","nodeType":"YulBlock","src":"214101:56:0","statements":[{"nativeSrc":"214103:52:0","nodeType":"YulAssignment","src":"214103:52:0","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"self","nativeSrc":"214132:4:0","nodeType":"YulIdentifier","src":"214132:4:0"},{"kind":"number","nativeSrc":"214138:2:0","nodeType":"YulLiteral","src":"214138:2:0","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"214128:3:0","nodeType":"YulIdentifier","src":"214128:3:0"},"nativeSrc":"214128:13:0","nodeType":"YulFunctionCall","src":"214128:13:0"}],"functionName":{"name":"mload","nativeSrc":"214122:5:0","nodeType":"YulIdentifier","src":"214122:5:0"},"nativeSrc":"214122:20:0","nodeType":"YulFunctionCall","src":"214122:20:0"},{"kind":"number","nativeSrc":"214144:2:0","nodeType":"YulLiteral","src":"214144:2:0","type":"","value":"31"}],"functionName":{"name":"sub","nativeSrc":"214118:3:0","nodeType":"YulIdentifier","src":"214118:3:0"},"nativeSrc":"214118:29:0","nodeType":"YulFunctionCall","src":"214118:29:0"}],"functionName":{"name":"mload","nativeSrc":"214112:5:0","nodeType":"YulIdentifier","src":"214112:5:0"},"nativeSrc":"214112:36:0","nodeType":"YulFunctionCall","src":"214112:36:0"},{"kind":"number","nativeSrc":"214150:4:0","nodeType":"YulLiteral","src":"214150:4:0","type":"","value":"0xFF"}],"functionName":{"name":"and","nativeSrc":"214108:3:0","nodeType":"YulIdentifier","src":"214108:3:0"},"nativeSrc":"214108:47:0","nodeType":"YulFunctionCall","src":"214108:47:0"},"variableNames":[{"name":"b","nativeSrc":"214103:1:0","nodeType":"YulIdentifier","src":"214103:1:0"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":14609,"isOffset":false,"isSlot":false,"src":"214103:1:0","valueSize":1},{"declaration":14575,"isOffset":false,"isSlot":false,"src":"214132:4:0","valueSize":1}],"id":14611,"nodeType":"InlineAssembly","src":"214092:65:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14612,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14609,"src":"214170:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30783830","id":14613,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"214174:4:0","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"0x80"},"src":"214170:8:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14620,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14609,"src":"214219:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30784530","id":14621,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"214223:4:0","typeDescriptions":{"typeIdentifier":"t_rational_224_by_1","typeString":"int_const 224"},"value":"0xE0"},"src":"214219:8:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14628,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14609,"src":"214268:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30784630","id":14629,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"214272:4:0","typeDescriptions":{"typeIdentifier":"t_rational_240_by_1","typeString":"int_const 240"},"value":"0xF0"},"src":"214268:8:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":14640,"nodeType":"Block","src":"214314:30:0","statements":[{"expression":{"id":14638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14636,"name":"l","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14606,"src":"214328:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"34","id":14637,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"214332:1:0","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"214328:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14639,"nodeType":"ExpressionStatement","src":"214328:5:0"}]},"id":14641,"nodeType":"IfStatement","src":"214265:79:0","trueBody":{"id":14635,"nodeType":"Block","src":"214278:30:0","statements":[{"expression":{"id":14633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14631,"name":"l","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14606,"src":"214292:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"33","id":14632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"214296:1:0","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"214292:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14634,"nodeType":"ExpressionStatement","src":"214292:5:0"}]}},"id":14642,"nodeType":"IfStatement","src":"214216:128:0","trueBody":{"id":14627,"nodeType":"Block","src":"214229:30:0","statements":[{"expression":{"id":14625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14623,"name":"l","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14606,"src":"214243:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"32","id":14624,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"214247:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"214243:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14626,"nodeType":"ExpressionStatement","src":"214243:5:0"}]}},"id":14643,"nodeType":"IfStatement","src":"214166:178:0","trueBody":{"id":14619,"nodeType":"Block","src":"214180:30:0","statements":[{"expression":{"id":14617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14615,"name":"l","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14606,"src":"214194:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":14616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"214198:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"214194:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14618,"nodeType":"ExpressionStatement","src":"214194:5:0"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14644,"name":"l","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14606,"src":"214400:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":14645,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14575,"src":"214404:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":14646,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"214409:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"214404:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"214400:13:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14671,"nodeType":"IfStatement","src":"214396:153:0","trueBody":{"id":14670,"nodeType":"Block","src":"214415:134:0","statements":[{"expression":{"id":14653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":14648,"name":"rune","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14578,"src":"214429:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":14650,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"214434:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"214429:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":14651,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14575,"src":"214441:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":14652,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"214446:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"214441:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"214429:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14654,"nodeType":"ExpressionStatement","src":"214429:21:0"},{"expression":{"id":14660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":14655,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14575,"src":"214464:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":14657,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"214469:4:0","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":14013,"src":"214464:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":14658,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14575,"src":"214477:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":14659,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"214482:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"214477:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"214464:22:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14661,"nodeType":"ExpressionStatement","src":"214464:22:0"},{"expression":{"id":14666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":14662,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14575,"src":"214500:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":14664,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"214505:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"214500:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":14665,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"214512:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"214500:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14667,"nodeType":"ExpressionStatement","src":"214500:13:0"},{"expression":{"id":14668,"name":"rune","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14578,"src":"214534:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"functionReturnParameters":14583,"id":14669,"nodeType":"Return","src":"214527:11:0"}]}},{"expression":{"id":14676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":14672,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14575,"src":"214559:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":14674,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"214564:4:0","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":14013,"src":"214559:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":14675,"name":"l","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14606,"src":"214572:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"214559:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14677,"nodeType":"ExpressionStatement","src":"214559:14:0"},{"expression":{"id":14682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":14678,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14575,"src":"214583:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":14680,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"214588:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"214583:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":14681,"name":"l","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14606,"src":"214596:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"214583:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14683,"nodeType":"ExpressionStatement","src":"214583:14:0"},{"expression":{"id":14688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":14684,"name":"rune","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14578,"src":"214607:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":14686,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"214612:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"214607:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":14687,"name":"l","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14606,"src":"214619:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"214607:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14689,"nodeType":"ExpressionStatement","src":"214607:13:0"},{"expression":{"id":14690,"name":"rune","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14578,"src":"214637:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"functionReturnParameters":14583,"id":14691,"nodeType":"Return","src":"214630:11:0"}]},"id":14693,"implemented":true,"kind":"function","modifiers":[],"name":"nextRune","nameLocation":"213779:8:0","nodeType":"FunctionDefinition","parameters":{"id":14579,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14575,"mutability":"mutable","name":"self","nameLocation":"213801:4:0","nodeType":"VariableDeclaration","scope":14693,"src":"213788:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice"},"typeName":{"id":14574,"nodeType":"UserDefinedTypeName","pathNode":{"id":14573,"name":"slice","nameLocations":["213788:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"213788:5:0"},"referencedDeclaration":14014,"src":"213788:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"visibility":"internal"},{"constant":false,"id":14578,"mutability":"mutable","name":"rune","nameLocation":"213820:4:0","nodeType":"VariableDeclaration","scope":14693,"src":"213807:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice"},"typeName":{"id":14577,"nodeType":"UserDefinedTypeName","pathNode":{"id":14576,"name":"slice","nameLocations":["213807:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"213807:5:0"},"referencedDeclaration":14014,"src":"213807:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"visibility":"internal"}],"src":"213787:38:0"},"returnParameters":{"id":14583,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14582,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14693,"src":"213849:12:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice"},"typeName":{"id":14581,"nodeType":"UserDefinedTypeName","pathNode":{"id":14580,"name":"slice","nameLocations":["213849:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"213849:5:0"},"referencedDeclaration":14014,"src":"213849:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"visibility":"internal"}],"src":"213848:14:0"},"scope":16079,"src":"213770:878:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14707,"nodeType":"Block","src":"214966:36:0","statements":[{"expression":{"arguments":[{"id":14703,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14696,"src":"214985:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},{"id":14704,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14700,"src":"214991:3:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"},{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}],"id":14702,"name":"nextRune","nodeType":"Identifier","overloadedDeclarations":[14693,14708],"referencedDeclaration":14693,"src":"214976:8:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$14014_memory_ptr_$_t_struct$_slice_$14014_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$","typeString":"function (struct Strings.slice memory,struct Strings.slice memory) pure returns (struct Strings.slice memory)"}},"id":14705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"214976:19:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":14706,"nodeType":"ExpressionStatement","src":"214976:19:0"}]},"id":14708,"implemented":true,"kind":"function","modifiers":[],"name":"nextRune","nameLocation":"214897:8:0","nodeType":"FunctionDefinition","parameters":{"id":14697,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14696,"mutability":"mutable","name":"self","nameLocation":"214919:4:0","nodeType":"VariableDeclaration","scope":14708,"src":"214906:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice"},"typeName":{"id":14695,"nodeType":"UserDefinedTypeName","pathNode":{"id":14694,"name":"slice","nameLocations":["214906:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"214906:5:0"},"referencedDeclaration":14014,"src":"214906:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"visibility":"internal"}],"src":"214905:19:0"},"returnParameters":{"id":14701,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14700,"mutability":"mutable","name":"ret","nameLocation":"214961:3:0","nodeType":"VariableDeclaration","scope":14708,"src":"214948:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice"},"typeName":{"id":14699,"nodeType":"UserDefinedTypeName","pathNode":{"id":14698,"name":"slice","nameLocations":["214948:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"214948:5:0"},"referencedDeclaration":14014,"src":"214948:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"visibility":"internal"}],"src":"214947:18:0"},"scope":16079,"src":"214888:114:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14855,"nodeType":"Block","src":"215263:1013:0","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14716,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14711,"src":"215277:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":14717,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"215282:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"215277:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":14718,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"215290:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"215277:14:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14723,"nodeType":"IfStatement","src":"215273:53:0","trueBody":{"id":14722,"nodeType":"Block","src":"215293:33:0","statements":[{"expression":{"hexValue":"30","id":14720,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"215314:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":14715,"id":14721,"nodeType":"Return","src":"215307:8:0"}]}},{"assignments":[14725],"declarations":[{"constant":false,"id":14725,"mutability":"mutable","name":"word","nameLocation":"215341:4:0","nodeType":"VariableDeclaration","scope":14855,"src":"215336:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14724,"name":"uint","nodeType":"ElementaryTypeName","src":"215336:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14726,"nodeType":"VariableDeclarationStatement","src":"215336:9:0"},{"assignments":[14728],"declarations":[{"constant":false,"id":14728,"mutability":"mutable","name":"length","nameLocation":"215360:6:0","nodeType":"VariableDeclaration","scope":14855,"src":"215355:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14727,"name":"uint","nodeType":"ElementaryTypeName","src":"215355:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14729,"nodeType":"VariableDeclarationStatement","src":"215355:11:0"},{"assignments":[14731],"declarations":[{"constant":false,"id":14731,"mutability":"mutable","name":"divisor","nameLocation":"215381:7:0","nodeType":"VariableDeclaration","scope":14855,"src":"215376:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14730,"name":"uint","nodeType":"ElementaryTypeName","src":"215376:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14735,"initialValue":{"commonType":{"typeIdentifier":"t_rational_452312848583266388373324160190187140051835877600158453279131187530910662656_by_1","typeString":"int_const 4523...(67 digits omitted)...2656"},"id":14734,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":14732,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"215391:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"323438","id":14733,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"215396:3:0","typeDescriptions":{"typeIdentifier":"t_rational_248_by_1","typeString":"int_const 248"},"value":"248"},"src":"215391:8:0","typeDescriptions":{"typeIdentifier":"t_rational_452312848583266388373324160190187140051835877600158453279131187530910662656_by_1","typeString":"int_const 4523...(67 digits omitted)...2656"}},"nodeType":"VariableDeclarationStatement","src":"215376:23:0"},{"AST":{"nativeSrc":"215463:38:0","nodeType":"YulBlock","src":"215463:38:0","statements":[{"nativeSrc":"215465:34:0","nodeType":"YulAssignment","src":"215465:34:0","value":{"arguments":[{"arguments":[{"arguments":[{"name":"self","nativeSrc":"215488:4:0","nodeType":"YulIdentifier","src":"215488:4:0"},{"kind":"number","nativeSrc":"215494:2:0","nodeType":"YulLiteral","src":"215494:2:0","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"215484:3:0","nodeType":"YulIdentifier","src":"215484:3:0"},"nativeSrc":"215484:13:0","nodeType":"YulFunctionCall","src":"215484:13:0"}],"functionName":{"name":"mload","nativeSrc":"215478:5:0","nodeType":"YulIdentifier","src":"215478:5:0"},"nativeSrc":"215478:20:0","nodeType":"YulFunctionCall","src":"215478:20:0"}],"functionName":{"name":"mload","nativeSrc":"215472:5:0","nodeType":"YulIdentifier","src":"215472:5:0"},"nativeSrc":"215472:27:0","nodeType":"YulFunctionCall","src":"215472:27:0"},"variableNames":[{"name":"word","nativeSrc":"215465:4:0","nodeType":"YulIdentifier","src":"215465:4:0"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":14711,"isOffset":false,"isSlot":false,"src":"215488:4:0","valueSize":1},{"declaration":14725,"isOffset":false,"isSlot":false,"src":"215465:4:0","valueSize":1}],"id":14736,"nodeType":"InlineAssembly","src":"215454:47:0"},{"assignments":[14738],"declarations":[{"constant":false,"id":14738,"mutability":"mutable","name":"b","nameLocation":"215515:1:0","nodeType":"VariableDeclaration","scope":14855,"src":"215510:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14737,"name":"uint","nodeType":"ElementaryTypeName","src":"215510:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14742,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14739,"name":"word","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14725,"src":"215519:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":14740,"name":"divisor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14731,"src":"215526:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"215519:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"215510:23:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14743,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14738,"src":"215547:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30783830","id":14744,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"215551:4:0","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"0x80"},"src":"215547:8:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14755,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14738,"src":"215622:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30784530","id":14756,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"215626:4:0","typeDescriptions":{"typeIdentifier":"t_rational_224_by_1","typeString":"int_const 224"},"value":"0xE0"},"src":"215622:8:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14769,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14738,"src":"215704:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30784630","id":14770,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"215708:4:0","typeDescriptions":{"typeIdentifier":"t_rational_240_by_1","typeString":"int_const 240"},"value":"0xF0"},"src":"215704:8:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":14793,"nodeType":"Block","src":"215783:63:0","statements":[{"expression":{"id":14787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14783,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14714,"src":"215797:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14784,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14738,"src":"215803:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"30783037","id":14785,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"215807:4:0","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"0x07"},"src":"215803:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"215797:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14788,"nodeType":"ExpressionStatement","src":"215797:14:0"},{"expression":{"id":14791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14789,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14728,"src":"215825:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"34","id":14790,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"215834:1:0","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"215825:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14792,"nodeType":"ExpressionStatement","src":"215825:10:0"}]},"id":14794,"nodeType":"IfStatement","src":"215701:145:0","trueBody":{"id":14782,"nodeType":"Block","src":"215714:63:0","statements":[{"expression":{"id":14776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14772,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14714,"src":"215728:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14773,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14738,"src":"215734:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"30783046","id":14774,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"215738:4:0","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"0x0F"},"src":"215734:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"215728:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14777,"nodeType":"ExpressionStatement","src":"215728:14:0"},{"expression":{"id":14780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14778,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14728,"src":"215756:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"33","id":14779,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"215765:1:0","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"215756:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14781,"nodeType":"ExpressionStatement","src":"215756:10:0"}]}},"id":14795,"nodeType":"IfStatement","src":"215619:227:0","trueBody":{"id":14768,"nodeType":"Block","src":"215632:63:0","statements":[{"expression":{"id":14762,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14758,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14714,"src":"215646:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14759,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14738,"src":"215652:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"30783146","id":14760,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"215656:4:0","typeDescriptions":{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"},"value":"0x1F"},"src":"215652:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"215646:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14763,"nodeType":"ExpressionStatement","src":"215646:14:0"},{"expression":{"id":14766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14764,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14728,"src":"215674:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"32","id":14765,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"215683:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"215674:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14767,"nodeType":"ExpressionStatement","src":"215674:10:0"}]}},"id":14796,"nodeType":"IfStatement","src":"215543:303:0","trueBody":{"id":14754,"nodeType":"Block","src":"215557:56:0","statements":[{"expression":{"id":14748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14746,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14714,"src":"215571:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":14747,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14738,"src":"215577:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"215571:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14749,"nodeType":"ExpressionStatement","src":"215571:7:0"},{"expression":{"id":14752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14750,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14728,"src":"215592:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":14751,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"215601:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"215592:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14753,"nodeType":"ExpressionStatement","src":"215592:10:0"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14797,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14728,"src":"215902:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":14798,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14711,"src":"215911:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":14799,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"215916:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"215911:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"215902:18:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14804,"nodeType":"IfStatement","src":"215898:57:0","trueBody":{"id":14803,"nodeType":"Block","src":"215922:33:0","statements":[{"expression":{"hexValue":"30","id":14801,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"215943:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":14715,"id":14802,"nodeType":"Return","src":"215936:8:0"}]}},{"body":{"id":14851,"nodeType":"Block","src":"215999:250:0","statements":[{"expression":{"id":14819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14815,"name":"divisor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14731,"src":"216013:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14816,"name":"divisor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14731,"src":"216023:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"323536","id":14817,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"216033:3:0","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"src":"216023:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"216013:23:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14820,"nodeType":"ExpressionStatement","src":"216013:23:0"},{"expression":{"id":14828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14821,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14738,"src":"216050:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14822,"name":"word","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14725,"src":"216055:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":14823,"name":"divisor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14731,"src":"216062:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"216055:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":14825,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"216054:16:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"30784646","id":14826,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"216073:4:0","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"0xFF"},"src":"216054:23:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"216050:27:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14829,"nodeType":"ExpressionStatement","src":"216050:27:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14830,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14738,"src":"216095:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"30784330","id":14831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"216099:4:0","typeDescriptions":{"typeIdentifier":"t_rational_192_by_1","typeString":"int_const 192"},"value":"0xC0"},"src":"216095:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30783830","id":14833,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"216107:4:0","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"0x80"},"src":"216095:16:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14838,"nodeType":"IfStatement","src":"216091:105:0","trueBody":{"id":14837,"nodeType":"Block","src":"216113:83:0","statements":[{"expression":{"hexValue":"30","id":14835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"216180:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":14715,"id":14836,"nodeType":"Return","src":"216173:8:0"}]}},{"expression":{"id":14849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14839,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14714,"src":"216209:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14840,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14714,"src":"216216:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3634","id":14841,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"216222:2:0","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"216216:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":14843,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"216215:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14844,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14738,"src":"216229:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"30783346","id":14845,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"216233:4:0","typeDescriptions":{"typeIdentifier":"t_rational_63_by_1","typeString":"int_const 63"},"value":"0x3F"},"src":"216229:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":14847,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"216228:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"216215:23:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"216209:29:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14850,"nodeType":"ExpressionStatement","src":"216209:29:0"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14809,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14806,"src":"215982:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":14810,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14728,"src":"215986:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"215982:10:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14852,"initializationExpression":{"assignments":[14806],"declarations":[{"constant":false,"id":14806,"mutability":"mutable","name":"i","nameLocation":"215975:1:0","nodeType":"VariableDeclaration","scope":14852,"src":"215970:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14805,"name":"uint","nodeType":"ElementaryTypeName","src":"215970:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14808,"initialValue":{"hexValue":"31","id":14807,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"215979:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"215970:10:0"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":14813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"215994:3:0","subExpression":{"id":14812,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14806,"src":"215994:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14814,"nodeType":"ExpressionStatement","src":"215994:3:0"},"nodeType":"ForStatement","src":"215965:284:0"},{"expression":{"id":14853,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14714,"src":"216266:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14715,"id":14854,"nodeType":"Return","src":"216259:10:0"}]},"id":14856,"implemented":true,"kind":"function","modifiers":[],"name":"ord","nameLocation":"215207:3:0","nodeType":"FunctionDefinition","parameters":{"id":14712,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14711,"mutability":"mutable","name":"self","nameLocation":"215224:4:0","nodeType":"VariableDeclaration","scope":14856,"src":"215211:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice"},"typeName":{"id":14710,"nodeType":"UserDefinedTypeName","pathNode":{"id":14709,"name":"slice","nameLocations":["215211:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"215211:5:0"},"referencedDeclaration":14014,"src":"215211:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"visibility":"internal"}],"src":"215210:19:0"},"returnParameters":{"id":14715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14714,"mutability":"mutable","name":"ret","nameLocation":"215258:3:0","nodeType":"VariableDeclaration","scope":14856,"src":"215253:8:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14713,"name":"uint","nodeType":"ElementaryTypeName","src":"215253:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"215252:10:0"},"scope":16079,"src":"215198:1078:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14865,"nodeType":"Block","src":"216498:100:0","statements":[{"AST":{"nativeSrc":"216517:75:0","nodeType":"YulBlock","src":"216517:75:0","statements":[{"nativeSrc":"216531:51:0","nodeType":"YulAssignment","src":"216531:51:0","value":{"arguments":[{"arguments":[{"arguments":[{"name":"self","nativeSrc":"216558:4:0","nodeType":"YulIdentifier","src":"216558:4:0"},{"kind":"number","nativeSrc":"216564:2:0","nodeType":"YulLiteral","src":"216564:2:0","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"216554:3:0","nodeType":"YulIdentifier","src":"216554:3:0"},"nativeSrc":"216554:13:0","nodeType":"YulFunctionCall","src":"216554:13:0"}],"functionName":{"name":"mload","nativeSrc":"216548:5:0","nodeType":"YulIdentifier","src":"216548:5:0"},"nativeSrc":"216548:20:0","nodeType":"YulFunctionCall","src":"216548:20:0"},{"arguments":[{"name":"self","nativeSrc":"216576:4:0","nodeType":"YulIdentifier","src":"216576:4:0"}],"functionName":{"name":"mload","nativeSrc":"216570:5:0","nodeType":"YulIdentifier","src":"216570:5:0"},"nativeSrc":"216570:11:0","nodeType":"YulFunctionCall","src":"216570:11:0"}],"functionName":{"name":"keccak256","nativeSrc":"216538:9:0","nodeType":"YulIdentifier","src":"216538:9:0"},"nativeSrc":"216538:44:0","nodeType":"YulFunctionCall","src":"216538:44:0"},"variableNames":[{"name":"ret","nativeSrc":"216531:3:0","nodeType":"YulIdentifier","src":"216531:3:0"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":14862,"isOffset":false,"isSlot":false,"src":"216531:3:0","valueSize":1},{"declaration":14859,"isOffset":false,"isSlot":false,"src":"216558:4:0","valueSize":1},{"declaration":14859,"isOffset":false,"isSlot":false,"src":"216576:4:0","valueSize":1}],"id":14864,"nodeType":"InlineAssembly","src":"216508:84:0"}]},"id":14866,"implemented":true,"kind":"function","modifiers":[],"name":"keccak","nameLocation":"216436:6:0","nodeType":"FunctionDefinition","parameters":{"id":14860,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14859,"mutability":"mutable","name":"self","nameLocation":"216456:4:0","nodeType":"VariableDeclaration","scope":14866,"src":"216443:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice"},"typeName":{"id":14858,"nodeType":"UserDefinedTypeName","pathNode":{"id":14857,"name":"slice","nameLocations":["216443:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"216443:5:0"},"referencedDeclaration":14014,"src":"216443:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"visibility":"internal"}],"src":"216442:19:0"},"returnParameters":{"id":14863,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14862,"mutability":"mutable","name":"ret","nameLocation":"216493:3:0","nodeType":"VariableDeclaration","scope":14866,"src":"216485:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14861,"name":"bytes32","nodeType":"ElementaryTypeName","src":"216485:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"216484:13:0"},"scope":16079,"src":"216427:171:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14901,"nodeType":"Block","src":"216936:450:0","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14877,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14869,"src":"216950:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":14878,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"216955:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"216950:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":14879,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14872,"src":"216962:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":14880,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"216969:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"216962:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"216950:23:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14885,"nodeType":"IfStatement","src":"216946:66:0","trueBody":{"id":14884,"nodeType":"Block","src":"216975:37:0","statements":[{"expression":{"hexValue":"66616c7365","id":14882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"216996:5:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":14876,"id":14883,"nodeType":"Return","src":"216989:12:0"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14886,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14869,"src":"217026:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":14887,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"217031:4:0","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":14013,"src":"217026:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":14888,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14872,"src":"217039:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":14889,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"217046:4:0","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":14013,"src":"217039:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"217026:24:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14894,"nodeType":"IfStatement","src":"217022:66:0","trueBody":{"id":14893,"nodeType":"Block","src":"217052:36:0","statements":[{"expression":{"hexValue":"74727565","id":14891,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"217073:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":14876,"id":14892,"nodeType":"Return","src":"217066:11:0"}]}},{"assignments":[14896],"declarations":[{"constant":false,"id":14896,"mutability":"mutable","name":"eql","nameLocation":"217103:3:0","nodeType":"VariableDeclaration","scope":14901,"src":"217098:8:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14895,"name":"bool","nodeType":"ElementaryTypeName","src":"217098:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":14897,"nodeType":"VariableDeclarationStatement","src":"217098:8:0"},{"AST":{"nativeSrc":"217125:235:0","nodeType":"YulBlock","src":"217125:235:0","statements":[{"nativeSrc":"217139:27:0","nodeType":"YulVariableDeclaration","src":"217139:27:0","value":{"arguments":[{"name":"needle","nativeSrc":"217159:6:0","nodeType":"YulIdentifier","src":"217159:6:0"}],"functionName":{"name":"mload","nativeSrc":"217153:5:0","nodeType":"YulIdentifier","src":"217153:5:0"},"nativeSrc":"217153:13:0","nodeType":"YulFunctionCall","src":"217153:13:0"},"variables":[{"name":"length","nativeSrc":"217143:6:0","nodeType":"YulTypedName","src":"217143:6:0","type":""}]},{"nativeSrc":"217179:37:0","nodeType":"YulVariableDeclaration","src":"217179:37:0","value":{"arguments":[{"arguments":[{"name":"self","nativeSrc":"217204:4:0","nodeType":"YulIdentifier","src":"217204:4:0"},{"kind":"number","nativeSrc":"217210:4:0","nodeType":"YulLiteral","src":"217210:4:0","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"217200:3:0","nodeType":"YulIdentifier","src":"217200:3:0"},"nativeSrc":"217200:15:0","nodeType":"YulFunctionCall","src":"217200:15:0"}],"functionName":{"name":"mload","nativeSrc":"217194:5:0","nodeType":"YulIdentifier","src":"217194:5:0"},"nativeSrc":"217194:22:0","nodeType":"YulFunctionCall","src":"217194:22:0"},"variables":[{"name":"selfptr","nativeSrc":"217183:7:0","nodeType":"YulTypedName","src":"217183:7:0","type":""}]},{"nativeSrc":"217229:41:0","nodeType":"YulVariableDeclaration","src":"217229:41:0","value":{"arguments":[{"arguments":[{"name":"needle","nativeSrc":"217256:6:0","nodeType":"YulIdentifier","src":"217256:6:0"},{"kind":"number","nativeSrc":"217264:4:0","nodeType":"YulLiteral","src":"217264:4:0","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"217252:3:0","nodeType":"YulIdentifier","src":"217252:3:0"},"nativeSrc":"217252:17:0","nodeType":"YulFunctionCall","src":"217252:17:0"}],"functionName":{"name":"mload","nativeSrc":"217246:5:0","nodeType":"YulIdentifier","src":"217246:5:0"},"nativeSrc":"217246:24:0","nodeType":"YulFunctionCall","src":"217246:24:0"},"variables":[{"name":"needleptr","nativeSrc":"217233:9:0","nodeType":"YulTypedName","src":"217233:9:0","type":""}]},{"nativeSrc":"217283:67:0","nodeType":"YulAssignment","src":"217283:67:0","value":{"arguments":[{"arguments":[{"name":"selfptr","nativeSrc":"217303:7:0","nodeType":"YulIdentifier","src":"217303:7:0"},{"name":"length","nativeSrc":"217312:6:0","nodeType":"YulIdentifier","src":"217312:6:0"}],"functionName":{"name":"keccak256","nativeSrc":"217293:9:0","nodeType":"YulIdentifier","src":"217293:9:0"},"nativeSrc":"217293:26:0","nodeType":"YulFunctionCall","src":"217293:26:0"},{"arguments":[{"name":"needleptr","nativeSrc":"217331:9:0","nodeType":"YulIdentifier","src":"217331:9:0"},{"name":"length","nativeSrc":"217342:6:0","nodeType":"YulIdentifier","src":"217342:6:0"}],"functionName":{"name":"keccak256","nativeSrc":"217321:9:0","nodeType":"YulIdentifier","src":"217321:9:0"},"nativeSrc":"217321:28:0","nodeType":"YulFunctionCall","src":"217321:28:0"}],"functionName":{"name":"eq","nativeSrc":"217290:2:0","nodeType":"YulIdentifier","src":"217290:2:0"},"nativeSrc":"217290:60:0","nodeType":"YulFunctionCall","src":"217290:60:0"},"variableNames":[{"name":"eql","nativeSrc":"217283:3:0","nodeType":"YulIdentifier","src":"217283:3:0"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":14896,"isOffset":false,"isSlot":false,"src":"217283:3:0","valueSize":1},{"declaration":14872,"isOffset":false,"isSlot":false,"src":"217159:6:0","valueSize":1},{"declaration":14872,"isOffset":false,"isSlot":false,"src":"217256:6:0","valueSize":1},{"declaration":14869,"isOffset":false,"isSlot":false,"src":"217204:4:0","valueSize":1}],"id":14898,"nodeType":"InlineAssembly","src":"217116:244:0"},{"expression":{"id":14899,"name":"eql","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14896,"src":"217376:3:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":14876,"id":14900,"nodeType":"Return","src":"217369:10:0"}]},"id":14902,"implemented":true,"kind":"function","modifiers":[],"name":"startsWith","nameLocation":"216856:10:0","nodeType":"FunctionDefinition","parameters":{"id":14873,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14869,"mutability":"mutable","name":"self","nameLocation":"216880:4:0","nodeType":"VariableDeclaration","scope":14902,"src":"216867:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice"},"typeName":{"id":14868,"nodeType":"UserDefinedTypeName","pathNode":{"id":14867,"name":"slice","nameLocations":["216867:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"216867:5:0"},"referencedDeclaration":14014,"src":"216867:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"visibility":"internal"},{"constant":false,"id":14872,"mutability":"mutable","name":"needle","nameLocation":"216899:6:0","nodeType":"VariableDeclaration","scope":14902,"src":"216886:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice"},"typeName":{"id":14871,"nodeType":"UserDefinedTypeName","pathNode":{"id":14870,"name":"slice","nameLocations":["216886:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"216886:5:0"},"referencedDeclaration":14014,"src":"216886:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"visibility":"internal"}],"src":"216866:40:0"},"returnParameters":{"id":14876,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14875,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14902,"src":"216930:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14874,"name":"bool","nodeType":"ElementaryTypeName","src":"216930:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"216929:6:0"},"scope":16079,"src":"216847:539:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14954,"nodeType":"Block","src":"217751:562:0","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14914,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14905,"src":"217765:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":14915,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"217770:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"217765:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":14916,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14908,"src":"217777:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":14917,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"217784:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"217777:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"217765:23:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14922,"nodeType":"IfStatement","src":"217761:65:0","trueBody":{"id":14921,"nodeType":"Block","src":"217790:36:0","statements":[{"expression":{"id":14919,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14905,"src":"217811:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"functionReturnParameters":14913,"id":14920,"nodeType":"Return","src":"217804:11:0"}]}},{"assignments":[14924],"declarations":[{"constant":false,"id":14924,"mutability":"mutable","name":"eql","nameLocation":"217841:3:0","nodeType":"VariableDeclaration","scope":14954,"src":"217836:8:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14923,"name":"bool","nodeType":"ElementaryTypeName","src":"217836:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":14926,"initialValue":{"hexValue":"74727565","id":14925,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"217847:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"nodeType":"VariableDeclarationStatement","src":"217836:15:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14927,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14905,"src":"217865:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":14928,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"217870:4:0","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":14013,"src":"217865:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":14929,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14908,"src":"217878:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":14930,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"217885:4:0","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":14013,"src":"217878:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"217865:24:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14934,"nodeType":"IfStatement","src":"217861:318:0","trueBody":{"id":14933,"nodeType":"Block","src":"217891:288:0","statements":[{"AST":{"nativeSrc":"217914:255:0","nodeType":"YulBlock","src":"217914:255:0","statements":[{"nativeSrc":"217932:27:0","nodeType":"YulVariableDeclaration","src":"217932:27:0","value":{"arguments":[{"name":"needle","nativeSrc":"217952:6:0","nodeType":"YulIdentifier","src":"217952:6:0"}],"functionName":{"name":"mload","nativeSrc":"217946:5:0","nodeType":"YulIdentifier","src":"217946:5:0"},"nativeSrc":"217946:13:0","nodeType":"YulFunctionCall","src":"217946:13:0"},"variables":[{"name":"length","nativeSrc":"217936:6:0","nodeType":"YulTypedName","src":"217936:6:0","type":""}]},{"nativeSrc":"217976:37:0","nodeType":"YulVariableDeclaration","src":"217976:37:0","value":{"arguments":[{"arguments":[{"name":"self","nativeSrc":"218001:4:0","nodeType":"YulIdentifier","src":"218001:4:0"},{"kind":"number","nativeSrc":"218007:4:0","nodeType":"YulLiteral","src":"218007:4:0","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"217997:3:0","nodeType":"YulIdentifier","src":"217997:3:0"},"nativeSrc":"217997:15:0","nodeType":"YulFunctionCall","src":"217997:15:0"}],"functionName":{"name":"mload","nativeSrc":"217991:5:0","nodeType":"YulIdentifier","src":"217991:5:0"},"nativeSrc":"217991:22:0","nodeType":"YulFunctionCall","src":"217991:22:0"},"variables":[{"name":"selfptr","nativeSrc":"217980:7:0","nodeType":"YulTypedName","src":"217980:7:0","type":""}]},{"nativeSrc":"218030:41:0","nodeType":"YulVariableDeclaration","src":"218030:41:0","value":{"arguments":[{"arguments":[{"name":"needle","nativeSrc":"218057:6:0","nodeType":"YulIdentifier","src":"218057:6:0"},{"kind":"number","nativeSrc":"218065:4:0","nodeType":"YulLiteral","src":"218065:4:0","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"218053:3:0","nodeType":"YulIdentifier","src":"218053:3:0"},"nativeSrc":"218053:17:0","nodeType":"YulFunctionCall","src":"218053:17:0"}],"functionName":{"name":"mload","nativeSrc":"218047:5:0","nodeType":"YulIdentifier","src":"218047:5:0"},"nativeSrc":"218047:24:0","nodeType":"YulFunctionCall","src":"218047:24:0"},"variables":[{"name":"needleptr","nativeSrc":"218034:9:0","nodeType":"YulTypedName","src":"218034:9:0","type":""}]},{"nativeSrc":"218088:67:0","nodeType":"YulAssignment","src":"218088:67:0","value":{"arguments":[{"arguments":[{"name":"selfptr","nativeSrc":"218108:7:0","nodeType":"YulIdentifier","src":"218108:7:0"},{"name":"length","nativeSrc":"218117:6:0","nodeType":"YulIdentifier","src":"218117:6:0"}],"functionName":{"name":"keccak256","nativeSrc":"218098:9:0","nodeType":"YulIdentifier","src":"218098:9:0"},"nativeSrc":"218098:26:0","nodeType":"YulFunctionCall","src":"218098:26:0"},{"arguments":[{"name":"needleptr","nativeSrc":"218136:9:0","nodeType":"YulIdentifier","src":"218136:9:0"},{"name":"length","nativeSrc":"218147:6:0","nodeType":"YulIdentifier","src":"218147:6:0"}],"functionName":{"name":"keccak256","nativeSrc":"218126:9:0","nodeType":"YulIdentifier","src":"218126:9:0"},"nativeSrc":"218126:28:0","nodeType":"YulFunctionCall","src":"218126:28:0"}],"functionName":{"name":"eq","nativeSrc":"218095:2:0","nodeType":"YulIdentifier","src":"218095:2:0"},"nativeSrc":"218095:60:0","nodeType":"YulFunctionCall","src":"218095:60:0"},"variableNames":[{"name":"eql","nativeSrc":"218088:3:0","nodeType":"YulIdentifier","src":"218088:3:0"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":14924,"isOffset":false,"isSlot":false,"src":"218088:3:0","valueSize":1},{"declaration":14908,"isOffset":false,"isSlot":false,"src":"217952:6:0","valueSize":1},{"declaration":14908,"isOffset":false,"isSlot":false,"src":"218057:6:0","valueSize":1},{"declaration":14905,"isOffset":false,"isSlot":false,"src":"218001:4:0","valueSize":1}],"id":14932,"nodeType":"InlineAssembly","src":"217905:264:0"}]}},{"condition":{"id":14935,"name":"eql","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14924,"src":"218193:3:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14951,"nodeType":"IfStatement","src":"218189:96:0","trueBody":{"id":14950,"nodeType":"Block","src":"218198:87:0","statements":[{"expression":{"id":14941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":14936,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14905,"src":"218212:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":14938,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"218217:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"218212:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"expression":{"id":14939,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14908,"src":"218225:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":14940,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"218232:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"218225:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"218212:24:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14942,"nodeType":"ExpressionStatement","src":"218212:24:0"},{"expression":{"id":14948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":14943,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14905,"src":"218250:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":14945,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"218255:4:0","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":14013,"src":"218250:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":14946,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14908,"src":"218263:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":14947,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"218270:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"218263:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"218250:24:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14949,"nodeType":"ExpressionStatement","src":"218250:24:0"}]}},{"expression":{"id":14952,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14905,"src":"218302:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"functionReturnParameters":14913,"id":14953,"nodeType":"Return","src":"218295:11:0"}]},"id":14955,"implemented":true,"kind":"function","modifiers":[],"name":"beyond","nameLocation":"217667:6:0","nodeType":"FunctionDefinition","parameters":{"id":14909,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14905,"mutability":"mutable","name":"self","nameLocation":"217687:4:0","nodeType":"VariableDeclaration","scope":14955,"src":"217674:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice"},"typeName":{"id":14904,"nodeType":"UserDefinedTypeName","pathNode":{"id":14903,"name":"slice","nameLocations":["217674:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"217674:5:0"},"referencedDeclaration":14014,"src":"217674:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"visibility":"internal"},{"constant":false,"id":14908,"mutability":"mutable","name":"needle","nameLocation":"217706:6:0","nodeType":"VariableDeclaration","scope":14955,"src":"217693:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice"},"typeName":{"id":14907,"nodeType":"UserDefinedTypeName","pathNode":{"id":14906,"name":"slice","nameLocations":["217693:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"217693:5:0"},"referencedDeclaration":14014,"src":"217693:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"visibility":"internal"}],"src":"217673:40:0"},"returnParameters":{"id":14913,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14912,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14955,"src":"217737:12:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice"},"typeName":{"id":14911,"nodeType":"UserDefinedTypeName","pathNode":{"id":14910,"name":"slice","nameLocations":["217737:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"217737:5:0"},"referencedDeclaration":14014,"src":"217737:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"visibility":"internal"}],"src":"217736:14:0"},"scope":16079,"src":"217658:655:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15000,"nodeType":"Block","src":"218650:460:0","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14966,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14958,"src":"218664:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":14967,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"218669:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"218664:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":14968,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14961,"src":"218676:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":14969,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"218683:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"218676:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"218664:23:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14974,"nodeType":"IfStatement","src":"218660:66:0","trueBody":{"id":14973,"nodeType":"Block","src":"218689:37:0","statements":[{"expression":{"hexValue":"66616c7365","id":14971,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"218710:5:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":14965,"id":14972,"nodeType":"Return","src":"218703:12:0"}]}},{"assignments":[14976],"declarations":[{"constant":false,"id":14976,"mutability":"mutable","name":"selfptr","nameLocation":"218741:7:0","nodeType":"VariableDeclaration","scope":15000,"src":"218736:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14975,"name":"uint","nodeType":"ElementaryTypeName","src":"218736:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14985,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14977,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14958,"src":"218751:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":14978,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"218756:4:0","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":14013,"src":"218751:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":14979,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14958,"src":"218763:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":14980,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"218768:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"218763:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"218751:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":14982,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14961,"src":"218775:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":14983,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"218782:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"218775:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"218751:35:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"218736:50:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14986,"name":"selfptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14976,"src":"218801:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":14987,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14961,"src":"218812:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":14988,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"218819:4:0","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":14013,"src":"218812:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"218801:22:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14993,"nodeType":"IfStatement","src":"218797:64:0","trueBody":{"id":14992,"nodeType":"Block","src":"218825:36:0","statements":[{"expression":{"hexValue":"74727565","id":14990,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"218846:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":14965,"id":14991,"nodeType":"Return","src":"218839:11:0"}]}},{"assignments":[14995],"declarations":[{"constant":false,"id":14995,"mutability":"mutable","name":"eql","nameLocation":"218876:3:0","nodeType":"VariableDeclaration","scope":15000,"src":"218871:8:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14994,"name":"bool","nodeType":"ElementaryTypeName","src":"218871:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":14996,"nodeType":"VariableDeclarationStatement","src":"218871:8:0"},{"AST":{"nativeSrc":"218898:185:0","nodeType":"YulBlock","src":"218898:185:0","statements":[{"nativeSrc":"218912:27:0","nodeType":"YulVariableDeclaration","src":"218912:27:0","value":{"arguments":[{"name":"needle","nativeSrc":"218932:6:0","nodeType":"YulIdentifier","src":"218932:6:0"}],"functionName":{"name":"mload","nativeSrc":"218926:5:0","nodeType":"YulIdentifier","src":"218926:5:0"},"nativeSrc":"218926:13:0","nodeType":"YulFunctionCall","src":"218926:13:0"},"variables":[{"name":"length","nativeSrc":"218916:6:0","nodeType":"YulTypedName","src":"218916:6:0","type":""}]},{"nativeSrc":"218952:41:0","nodeType":"YulVariableDeclaration","src":"218952:41:0","value":{"arguments":[{"arguments":[{"name":"needle","nativeSrc":"218979:6:0","nodeType":"YulIdentifier","src":"218979:6:0"},{"kind":"number","nativeSrc":"218987:4:0","nodeType":"YulLiteral","src":"218987:4:0","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"218975:3:0","nodeType":"YulIdentifier","src":"218975:3:0"},"nativeSrc":"218975:17:0","nodeType":"YulFunctionCall","src":"218975:17:0"}],"functionName":{"name":"mload","nativeSrc":"218969:5:0","nodeType":"YulIdentifier","src":"218969:5:0"},"nativeSrc":"218969:24:0","nodeType":"YulFunctionCall","src":"218969:24:0"},"variables":[{"name":"needleptr","nativeSrc":"218956:9:0","nodeType":"YulTypedName","src":"218956:9:0","type":""}]},{"nativeSrc":"219006:67:0","nodeType":"YulAssignment","src":"219006:67:0","value":{"arguments":[{"arguments":[{"name":"selfptr","nativeSrc":"219026:7:0","nodeType":"YulIdentifier","src":"219026:7:0"},{"name":"length","nativeSrc":"219035:6:0","nodeType":"YulIdentifier","src":"219035:6:0"}],"functionName":{"name":"keccak256","nativeSrc":"219016:9:0","nodeType":"YulIdentifier","src":"219016:9:0"},"nativeSrc":"219016:26:0","nodeType":"YulFunctionCall","src":"219016:26:0"},{"arguments":[{"name":"needleptr","nativeSrc":"219054:9:0","nodeType":"YulIdentifier","src":"219054:9:0"},{"name":"length","nativeSrc":"219065:6:0","nodeType":"YulIdentifier","src":"219065:6:0"}],"functionName":{"name":"keccak256","nativeSrc":"219044:9:0","nodeType":"YulIdentifier","src":"219044:9:0"},"nativeSrc":"219044:28:0","nodeType":"YulFunctionCall","src":"219044:28:0"}],"functionName":{"name":"eq","nativeSrc":"219013:2:0","nodeType":"YulIdentifier","src":"219013:2:0"},"nativeSrc":"219013:60:0","nodeType":"YulFunctionCall","src":"219013:60:0"},"variableNames":[{"name":"eql","nativeSrc":"219006:3:0","nodeType":"YulIdentifier","src":"219006:3:0"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":14995,"isOffset":false,"isSlot":false,"src":"219006:3:0","valueSize":1},{"declaration":14961,"isOffset":false,"isSlot":false,"src":"218932:6:0","valueSize":1},{"declaration":14961,"isOffset":false,"isSlot":false,"src":"218979:6:0","valueSize":1},{"declaration":14976,"isOffset":false,"isSlot":false,"src":"219026:7:0","valueSize":1}],"id":14997,"nodeType":"InlineAssembly","src":"218889:194:0"},{"expression":{"id":14998,"name":"eql","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14995,"src":"219100:3:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":14965,"id":14999,"nodeType":"Return","src":"219093:10:0"}]},"id":15001,"implemented":true,"kind":"function","modifiers":[],"name":"endsWith","nameLocation":"218572:8:0","nodeType":"FunctionDefinition","parameters":{"id":14962,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14958,"mutability":"mutable","name":"self","nameLocation":"218594:4:0","nodeType":"VariableDeclaration","scope":15001,"src":"218581:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice"},"typeName":{"id":14957,"nodeType":"UserDefinedTypeName","pathNode":{"id":14956,"name":"slice","nameLocations":["218581:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"218581:5:0"},"referencedDeclaration":14014,"src":"218581:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"visibility":"internal"},{"constant":false,"id":14961,"mutability":"mutable","name":"needle","nameLocation":"218613:6:0","nodeType":"VariableDeclaration","scope":15001,"src":"218600:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice"},"typeName":{"id":14960,"nodeType":"UserDefinedTypeName","pathNode":{"id":14959,"name":"slice","nameLocations":["218600:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"218600:5:0"},"referencedDeclaration":14014,"src":"218600:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"visibility":"internal"}],"src":"218580:40:0"},"returnParameters":{"id":14965,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14964,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15001,"src":"218644:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14963,"name":"bool","nodeType":"ElementaryTypeName","src":"218644:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"218643:6:0"},"scope":16079,"src":"218563:547:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15056,"nodeType":"Block","src":"219466:528:0","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15013,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15004,"src":"219480:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15014,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"219485:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"219480:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":15015,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15007,"src":"219492:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15016,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"219499:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"219492:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"219480:23:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15021,"nodeType":"IfStatement","src":"219476:65:0","trueBody":{"id":15020,"nodeType":"Block","src":"219505:36:0","statements":[{"expression":{"id":15018,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15004,"src":"219526:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"functionReturnParameters":15012,"id":15019,"nodeType":"Return","src":"219519:11:0"}]}},{"assignments":[15023],"declarations":[{"constant":false,"id":15023,"mutability":"mutable","name":"selfptr","nameLocation":"219556:7:0","nodeType":"VariableDeclaration","scope":15056,"src":"219551:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15022,"name":"uint","nodeType":"ElementaryTypeName","src":"219551:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15032,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15024,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15004,"src":"219566:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15025,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"219571:4:0","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":14013,"src":"219566:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":15026,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15004,"src":"219578:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15027,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"219583:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"219578:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"219566:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":15029,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15007,"src":"219590:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15030,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"219597:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"219590:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"219566:35:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"219551:50:0"},{"assignments":[15034],"declarations":[{"constant":false,"id":15034,"mutability":"mutable","name":"eql","nameLocation":"219616:3:0","nodeType":"VariableDeclaration","scope":15056,"src":"219611:8:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15033,"name":"bool","nodeType":"ElementaryTypeName","src":"219611:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":15036,"initialValue":{"hexValue":"74727565","id":15035,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"219622:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"nodeType":"VariableDeclarationStatement","src":"219611:15:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15037,"name":"selfptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15023,"src":"219640:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":15038,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15007,"src":"219651:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15039,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"219658:4:0","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":14013,"src":"219651:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"219640:22:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15043,"nodeType":"IfStatement","src":"219636:262:0","trueBody":{"id":15042,"nodeType":"Block","src":"219664:234:0","statements":[{"AST":{"nativeSrc":"219687:201:0","nodeType":"YulBlock","src":"219687:201:0","statements":[{"nativeSrc":"219705:27:0","nodeType":"YulVariableDeclaration","src":"219705:27:0","value":{"arguments":[{"name":"needle","nativeSrc":"219725:6:0","nodeType":"YulIdentifier","src":"219725:6:0"}],"functionName":{"name":"mload","nativeSrc":"219719:5:0","nodeType":"YulIdentifier","src":"219719:5:0"},"nativeSrc":"219719:13:0","nodeType":"YulFunctionCall","src":"219719:13:0"},"variables":[{"name":"length","nativeSrc":"219709:6:0","nodeType":"YulTypedName","src":"219709:6:0","type":""}]},{"nativeSrc":"219749:41:0","nodeType":"YulVariableDeclaration","src":"219749:41:0","value":{"arguments":[{"arguments":[{"name":"needle","nativeSrc":"219776:6:0","nodeType":"YulIdentifier","src":"219776:6:0"},{"kind":"number","nativeSrc":"219784:4:0","nodeType":"YulLiteral","src":"219784:4:0","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"219772:3:0","nodeType":"YulIdentifier","src":"219772:3:0"},"nativeSrc":"219772:17:0","nodeType":"YulFunctionCall","src":"219772:17:0"}],"functionName":{"name":"mload","nativeSrc":"219766:5:0","nodeType":"YulIdentifier","src":"219766:5:0"},"nativeSrc":"219766:24:0","nodeType":"YulFunctionCall","src":"219766:24:0"},"variables":[{"name":"needleptr","nativeSrc":"219753:9:0","nodeType":"YulTypedName","src":"219753:9:0","type":""}]},{"nativeSrc":"219807:67:0","nodeType":"YulAssignment","src":"219807:67:0","value":{"arguments":[{"arguments":[{"name":"selfptr","nativeSrc":"219827:7:0","nodeType":"YulIdentifier","src":"219827:7:0"},{"name":"length","nativeSrc":"219836:6:0","nodeType":"YulIdentifier","src":"219836:6:0"}],"functionName":{"name":"keccak256","nativeSrc":"219817:9:0","nodeType":"YulIdentifier","src":"219817:9:0"},"nativeSrc":"219817:26:0","nodeType":"YulFunctionCall","src":"219817:26:0"},{"arguments":[{"name":"needleptr","nativeSrc":"219855:9:0","nodeType":"YulIdentifier","src":"219855:9:0"},{"name":"length","nativeSrc":"219866:6:0","nodeType":"YulIdentifier","src":"219866:6:0"}],"functionName":{"name":"keccak256","nativeSrc":"219845:9:0","nodeType":"YulIdentifier","src":"219845:9:0"},"nativeSrc":"219845:28:0","nodeType":"YulFunctionCall","src":"219845:28:0"}],"functionName":{"name":"eq","nativeSrc":"219814:2:0","nodeType":"YulIdentifier","src":"219814:2:0"},"nativeSrc":"219814:60:0","nodeType":"YulFunctionCall","src":"219814:60:0"},"variableNames":[{"name":"eql","nativeSrc":"219807:3:0","nodeType":"YulIdentifier","src":"219807:3:0"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":15034,"isOffset":false,"isSlot":false,"src":"219807:3:0","valueSize":1},{"declaration":15007,"isOffset":false,"isSlot":false,"src":"219725:6:0","valueSize":1},{"declaration":15007,"isOffset":false,"isSlot":false,"src":"219776:6:0","valueSize":1},{"declaration":15023,"isOffset":false,"isSlot":false,"src":"219827:7:0","valueSize":1}],"id":15041,"nodeType":"InlineAssembly","src":"219678:210:0"}]}},{"condition":{"id":15044,"name":"eql","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15034,"src":"219912:3:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15053,"nodeType":"IfStatement","src":"219908:58:0","trueBody":{"id":15052,"nodeType":"Block","src":"219917:49:0","statements":[{"expression":{"id":15050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15045,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15004,"src":"219931:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15047,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"219936:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"219931:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"expression":{"id":15048,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15007,"src":"219944:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15049,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"219951:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"219944:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"219931:24:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15051,"nodeType":"ExpressionStatement","src":"219931:24:0"}]}},{"expression":{"id":15054,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15004,"src":"219983:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"functionReturnParameters":15012,"id":15055,"nodeType":"Return","src":"219976:11:0"}]},"id":15057,"implemented":true,"kind":"function","modifiers":[],"name":"until","nameLocation":"219383:5:0","nodeType":"FunctionDefinition","parameters":{"id":15008,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15004,"mutability":"mutable","name":"self","nameLocation":"219402:4:0","nodeType":"VariableDeclaration","scope":15057,"src":"219389:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice"},"typeName":{"id":15003,"nodeType":"UserDefinedTypeName","pathNode":{"id":15002,"name":"slice","nameLocations":["219389:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"219389:5:0"},"referencedDeclaration":14014,"src":"219389:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"visibility":"internal"},{"constant":false,"id":15007,"mutability":"mutable","name":"needle","nameLocation":"219421:6:0","nodeType":"VariableDeclaration","scope":15057,"src":"219408:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice"},"typeName":{"id":15006,"nodeType":"UserDefinedTypeName","pathNode":{"id":15005,"name":"slice","nameLocations":["219408:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"219408:5:0"},"referencedDeclaration":14014,"src":"219408:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"visibility":"internal"}],"src":"219388:40:0"},"returnParameters":{"id":15012,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15011,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15057,"src":"219452:12:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice"},"typeName":{"id":15010,"nodeType":"UserDefinedTypeName","pathNode":{"id":15009,"name":"slice","nameLocations":["219452:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"219452:5:0"},"referencedDeclaration":14014,"src":"219452:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"visibility":"internal"}],"src":"219451:14:0"},"scope":16079,"src":"219374:620:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15186,"nodeType":"Block","src":"220256:1348:0","statements":[{"assignments":[15071],"declarations":[{"constant":false,"id":15071,"mutability":"mutable","name":"ptr","nameLocation":"220271:3:0","nodeType":"VariableDeclaration","scope":15186,"src":"220266:8:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15070,"name":"uint","nodeType":"ElementaryTypeName","src":"220266:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15073,"initialValue":{"id":15072,"name":"selfptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15061,"src":"220277:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"220266:18:0"},{"assignments":[15075],"declarations":[{"constant":false,"id":15075,"mutability":"mutable","name":"idx","nameLocation":"220299:3:0","nodeType":"VariableDeclaration","scope":15186,"src":"220294:8:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15074,"name":"uint","nodeType":"ElementaryTypeName","src":"220294:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15076,"nodeType":"VariableDeclarationStatement","src":"220294:8:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15077,"name":"needlelen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15063,"src":"220317:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":15078,"name":"selflen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15059,"src":"220330:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"220317:20:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15181,"nodeType":"IfStatement","src":"220313:1251:0","trueBody":{"id":15180,"nodeType":"Block","src":"220339:1225:0","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15080,"name":"needlelen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15063,"src":"220357:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"3332","id":15081,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"220370:2:0","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"220357:15:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":15178,"nodeType":"Block","src":"221088:466:0","statements":[{"assignments":[15147],"declarations":[{"constant":false,"id":15147,"mutability":"mutable","name":"hash","nameLocation":"221163:4:0","nodeType":"VariableDeclaration","scope":15178,"src":"221155:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15146,"name":"bytes32","nodeType":"ElementaryTypeName","src":"221155:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":15148,"nodeType":"VariableDeclarationStatement","src":"221155:12:0"},{"AST":{"nativeSrc":"221194:43:0","nodeType":"YulBlock","src":"221194:43:0","statements":[{"nativeSrc":"221196:39:0","nodeType":"YulAssignment","src":"221196:39:0","value":{"arguments":[{"name":"needleptr","nativeSrc":"221214:9:0","nodeType":"YulIdentifier","src":"221214:9:0"},{"name":"needlelen","nativeSrc":"221225:9:0","nodeType":"YulIdentifier","src":"221225:9:0"}],"functionName":{"name":"keccak256","nativeSrc":"221204:9:0","nodeType":"YulIdentifier","src":"221204:9:0"},"nativeSrc":"221204:31:0","nodeType":"YulFunctionCall","src":"221204:31:0"},"variableNames":[{"name":"hash","nativeSrc":"221196:4:0","nodeType":"YulIdentifier","src":"221196:4:0"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":15147,"isOffset":false,"isSlot":false,"src":"221196:4:0","valueSize":1},{"declaration":15063,"isOffset":false,"isSlot":false,"src":"221225:9:0","valueSize":1},{"declaration":15065,"isOffset":false,"isSlot":false,"src":"221214:9:0","valueSize":1}],"id":15149,"nodeType":"InlineAssembly","src":"221185:52:0"},{"body":{"id":15176,"nodeType":"Block","src":"221304:236:0","statements":[{"assignments":[15163],"declarations":[{"constant":false,"id":15163,"mutability":"mutable","name":"testHash","nameLocation":"221334:8:0","nodeType":"VariableDeclaration","scope":15176,"src":"221326:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15162,"name":"bytes32","nodeType":"ElementaryTypeName","src":"221326:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":15164,"nodeType":"VariableDeclarationStatement","src":"221326:16:0"},{"AST":{"nativeSrc":"221373:41:0","nodeType":"YulBlock","src":"221373:41:0","statements":[{"nativeSrc":"221375:37:0","nodeType":"YulAssignment","src":"221375:37:0","value":{"arguments":[{"name":"ptr","nativeSrc":"221397:3:0","nodeType":"YulIdentifier","src":"221397:3:0"},{"name":"needlelen","nativeSrc":"221402:9:0","nodeType":"YulIdentifier","src":"221402:9:0"}],"functionName":{"name":"keccak256","nativeSrc":"221387:9:0","nodeType":"YulIdentifier","src":"221387:9:0"},"nativeSrc":"221387:25:0","nodeType":"YulFunctionCall","src":"221387:25:0"},"variableNames":[{"name":"testHash","nativeSrc":"221375:8:0","nodeType":"YulIdentifier","src":"221375:8:0"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":15063,"isOffset":false,"isSlot":false,"src":"221402:9:0","valueSize":1},{"declaration":15071,"isOffset":false,"isSlot":false,"src":"221397:3:0","valueSize":1},{"declaration":15163,"isOffset":false,"isSlot":false,"src":"221375:8:0","valueSize":1}],"id":15165,"nodeType":"InlineAssembly","src":"221364:50:0"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":15168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15166,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15147,"src":"221439:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":15167,"name":"testHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15163,"src":"221447:8:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"221439:16:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15171,"nodeType":"IfStatement","src":"221435:56:0","trueBody":{"expression":{"id":15169,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15071,"src":"221488:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15069,"id":15170,"nodeType":"Return","src":"221481:10:0"}},{"expression":{"id":15174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15172,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15071,"src":"221513:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":15173,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"221520:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"221513:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15175,"nodeType":"ExpressionStatement","src":"221513:8:0"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15154,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15075,"src":"221269:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15155,"name":"selflen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15059,"src":"221276:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":15156,"name":"needlelen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15063,"src":"221286:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"221276:19:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"221269:26:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15177,"initializationExpression":{"expression":{"id":15152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15150,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15075,"src":"221260:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":15151,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"221266:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"221260:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15153,"nodeType":"ExpressionStatement","src":"221260:7:0"},"isSimpleCounterLoop":false,"loopExpression":{"expression":{"id":15160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"221297:5:0","subExpression":{"id":15159,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15075,"src":"221297:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15161,"nodeType":"ExpressionStatement","src":"221297:5:0"},"nodeType":"ForStatement","src":"221255:285:0"}]},"id":15179,"nodeType":"IfStatement","src":"220353:1201:0","trueBody":{"id":15145,"nodeType":"Block","src":"220374:708:0","statements":[{"assignments":[15084],"declarations":[{"constant":false,"id":15084,"mutability":"mutable","name":"mask","nameLocation":"220400:4:0","nodeType":"VariableDeclaration","scope":15145,"src":"220392:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15083,"name":"bytes32","nodeType":"ElementaryTypeName","src":"220392:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":15085,"nodeType":"VariableDeclarationStatement","src":"220392:12:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15086,"name":"needlelen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15063,"src":"220426:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":15087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"220438:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"220426:13:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15109,"nodeType":"IfStatement","src":"220422:110:0","trueBody":{"id":15108,"nodeType":"Block","src":"220441:91:0","statements":[{"expression":{"id":15106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15089,"name":"mask","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15084,"src":"220463:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":15104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"220478:34:0","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":15092,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"220480:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"38","id":15093,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"220486:1:0","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":15094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"220491:2:0","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":15095,"name":"needlelen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15063,"src":"220496:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"220491:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":15097,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"220490:16:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"220486:20:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":15099,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"220485:22:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"220480:27:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":15101,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"220510:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"220480:31:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":15103,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"220479:33:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15091,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"220470:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":15090,"name":"bytes32","nodeType":"ElementaryTypeName","src":"220470:7:0","typeDescriptions":{}}},"id":15105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"220470:43:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"220463:50:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":15107,"nodeType":"ExpressionStatement","src":"220463:50:0"}]}},{"assignments":[15111],"declarations":[{"constant":false,"id":15111,"mutability":"mutable","name":"needledata","nameLocation":"220558:10:0","nodeType":"VariableDeclaration","scope":15145,"src":"220550:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15110,"name":"bytes32","nodeType":"ElementaryTypeName","src":"220550:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":15112,"nodeType":"VariableDeclarationStatement","src":"220550:18:0"},{"AST":{"nativeSrc":"220595:45:0","nodeType":"YulBlock","src":"220595:45:0","statements":[{"nativeSrc":"220597:41:0","nodeType":"YulAssignment","src":"220597:41:0","value":{"arguments":[{"arguments":[{"name":"needleptr","nativeSrc":"220621:9:0","nodeType":"YulIdentifier","src":"220621:9:0"}],"functionName":{"name":"mload","nativeSrc":"220615:5:0","nodeType":"YulIdentifier","src":"220615:5:0"},"nativeSrc":"220615:16:0","nodeType":"YulFunctionCall","src":"220615:16:0"},{"name":"mask","nativeSrc":"220633:4:0","nodeType":"YulIdentifier","src":"220633:4:0"}],"functionName":{"name":"and","nativeSrc":"220611:3:0","nodeType":"YulIdentifier","src":"220611:3:0"},"nativeSrc":"220611:27:0","nodeType":"YulFunctionCall","src":"220611:27:0"},"variableNames":[{"name":"needledata","nativeSrc":"220597:10:0","nodeType":"YulIdentifier","src":"220597:10:0"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":15084,"isOffset":false,"isSlot":false,"src":"220633:4:0","valueSize":1},{"declaration":15111,"isOffset":false,"isSlot":false,"src":"220597:10:0","valueSize":1},{"declaration":15065,"isOffset":false,"isSlot":false,"src":"220621:9:0","valueSize":1}],"id":15113,"nodeType":"InlineAssembly","src":"220586:54:0"},{"assignments":[15115],"declarations":[{"constant":false,"id":15115,"mutability":"mutable","name":"end","nameLocation":"220663:3:0","nodeType":"VariableDeclaration","scope":15145,"src":"220658:8:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15114,"name":"uint","nodeType":"ElementaryTypeName","src":"220658:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15121,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15116,"name":"selfptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15061,"src":"220669:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":15117,"name":"selflen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15059,"src":"220679:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"220669:17:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":15119,"name":"needlelen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15063,"src":"220689:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"220669:29:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"220658:40:0"},{"assignments":[15123],"declarations":[{"constant":false,"id":15123,"mutability":"mutable","name":"ptrdata","nameLocation":"220724:7:0","nodeType":"VariableDeclaration","scope":15145,"src":"220716:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15122,"name":"bytes32","nodeType":"ElementaryTypeName","src":"220716:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":15124,"nodeType":"VariableDeclarationStatement","src":"220716:15:0"},{"AST":{"nativeSrc":"220758:36:0","nodeType":"YulBlock","src":"220758:36:0","statements":[{"nativeSrc":"220760:32:0","nodeType":"YulAssignment","src":"220760:32:0","value":{"arguments":[{"arguments":[{"name":"ptr","nativeSrc":"220781:3:0","nodeType":"YulIdentifier","src":"220781:3:0"}],"functionName":{"name":"mload","nativeSrc":"220775:5:0","nodeType":"YulIdentifier","src":"220775:5:0"},"nativeSrc":"220775:10:0","nodeType":"YulFunctionCall","src":"220775:10:0"},{"name":"mask","nativeSrc":"220787:4:0","nodeType":"YulIdentifier","src":"220787:4:0"}],"functionName":{"name":"and","nativeSrc":"220771:3:0","nodeType":"YulIdentifier","src":"220771:3:0"},"nativeSrc":"220771:21:0","nodeType":"YulFunctionCall","src":"220771:21:0"},"variableNames":[{"name":"ptrdata","nativeSrc":"220760:7:0","nodeType":"YulIdentifier","src":"220760:7:0"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":15084,"isOffset":false,"isSlot":false,"src":"220787:4:0","valueSize":1},{"declaration":15071,"isOffset":false,"isSlot":false,"src":"220781:3:0","valueSize":1},{"declaration":15123,"isOffset":false,"isSlot":false,"src":"220760:7:0","valueSize":1}],"id":15125,"nodeType":"InlineAssembly","src":"220749:45:0"},{"body":{"id":15141,"nodeType":"Block","src":"220842:198:0","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15129,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15071,"src":"220868:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":15130,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15115,"src":"220875:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"220868:10:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15136,"nodeType":"IfStatement","src":"220864:64:0","trueBody":{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15132,"name":"selfptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15061,"src":"220911:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":15133,"name":"selflen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15059,"src":"220921:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"220911:17:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15069,"id":15135,"nodeType":"Return","src":"220904:24:0"}},{"expression":{"id":15138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"220950:5:0","subExpression":{"id":15137,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15071,"src":"220950:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15139,"nodeType":"ExpressionStatement","src":"220950:5:0"},{"AST":{"nativeSrc":"220986:36:0","nodeType":"YulBlock","src":"220986:36:0","statements":[{"nativeSrc":"220988:32:0","nodeType":"YulAssignment","src":"220988:32:0","value":{"arguments":[{"arguments":[{"name":"ptr","nativeSrc":"221009:3:0","nodeType":"YulIdentifier","src":"221009:3:0"}],"functionName":{"name":"mload","nativeSrc":"221003:5:0","nodeType":"YulIdentifier","src":"221003:5:0"},"nativeSrc":"221003:10:0","nodeType":"YulFunctionCall","src":"221003:10:0"},{"name":"mask","nativeSrc":"221015:4:0","nodeType":"YulIdentifier","src":"221015:4:0"}],"functionName":{"name":"and","nativeSrc":"220999:3:0","nodeType":"YulIdentifier","src":"220999:3:0"},"nativeSrc":"220999:21:0","nodeType":"YulFunctionCall","src":"220999:21:0"},"variableNames":[{"name":"ptrdata","nativeSrc":"220988:7:0","nodeType":"YulIdentifier","src":"220988:7:0"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":15084,"isOffset":false,"isSlot":false,"src":"221015:4:0","valueSize":1},{"declaration":15071,"isOffset":false,"isSlot":false,"src":"221009:3:0","valueSize":1},{"declaration":15123,"isOffset":false,"isSlot":false,"src":"220988:7:0","valueSize":1}],"id":15140,"nodeType":"InlineAssembly","src":"220977:45:0"}]},"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":15128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15126,"name":"ptrdata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15123,"src":"220819:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":15127,"name":"needledata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15111,"src":"220830:10:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"220819:21:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15142,"nodeType":"WhileStatement","src":"220812:228:0"},{"expression":{"id":15143,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15071,"src":"221064:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15069,"id":15144,"nodeType":"Return","src":"221057:10:0"}]}}]}},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15182,"name":"selfptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15061,"src":"221580:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":15183,"name":"selflen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15059,"src":"221590:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"221580:17:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15069,"id":15185,"nodeType":"Return","src":"221573:24:0"}]},"id":15187,"implemented":true,"kind":"function","modifiers":[],"name":"findPtr","nameLocation":"220160:7:0","nodeType":"FunctionDefinition","parameters":{"id":15066,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15059,"mutability":"mutable","name":"selflen","nameLocation":"220173:7:0","nodeType":"VariableDeclaration","scope":15187,"src":"220168:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15058,"name":"uint","nodeType":"ElementaryTypeName","src":"220168:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15061,"mutability":"mutable","name":"selfptr","nameLocation":"220187:7:0","nodeType":"VariableDeclaration","scope":15187,"src":"220182:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15060,"name":"uint","nodeType":"ElementaryTypeName","src":"220182:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15063,"mutability":"mutable","name":"needlelen","nameLocation":"220201:9:0","nodeType":"VariableDeclaration","scope":15187,"src":"220196:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15062,"name":"uint","nodeType":"ElementaryTypeName","src":"220196:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15065,"mutability":"mutable","name":"needleptr","nameLocation":"220217:9:0","nodeType":"VariableDeclaration","scope":15187,"src":"220212:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15064,"name":"uint","nodeType":"ElementaryTypeName","src":"220212:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"220167:60:0"},"returnParameters":{"id":15069,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15068,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15187,"src":"220250:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15067,"name":"uint","nodeType":"ElementaryTypeName","src":"220250:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"220249:6:0"},"scope":16079,"src":"220151:1453:0","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":15312,"nodeType":"Block","src":"221863:1351:0","statements":[{"assignments":[15201],"declarations":[{"constant":false,"id":15201,"mutability":"mutable","name":"ptr","nameLocation":"221878:3:0","nodeType":"VariableDeclaration","scope":15312,"src":"221873:8:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15200,"name":"uint","nodeType":"ElementaryTypeName","src":"221873:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15202,"nodeType":"VariableDeclarationStatement","src":"221873:8:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15203,"name":"needlelen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15193,"src":"221896:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":15204,"name":"selflen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15189,"src":"221909:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"221896:20:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15309,"nodeType":"IfStatement","src":"221892:1292:0","trueBody":{"id":15308,"nodeType":"Block","src":"221918:1266:0","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15206,"name":"needlelen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15193,"src":"221936:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"3332","id":15207,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"221949:2:0","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"221936:15:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":15306,"nodeType":"Block","src":"222668:506:0","statements":[{"assignments":[15273],"declarations":[{"constant":false,"id":15273,"mutability":"mutable","name":"hash","nameLocation":"222743:4:0","nodeType":"VariableDeclaration","scope":15306,"src":"222735:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15272,"name":"bytes32","nodeType":"ElementaryTypeName","src":"222735:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":15274,"nodeType":"VariableDeclarationStatement","src":"222735:12:0"},{"AST":{"nativeSrc":"222774:43:0","nodeType":"YulBlock","src":"222774:43:0","statements":[{"nativeSrc":"222776:39:0","nodeType":"YulAssignment","src":"222776:39:0","value":{"arguments":[{"name":"needleptr","nativeSrc":"222794:9:0","nodeType":"YulIdentifier","src":"222794:9:0"},{"name":"needlelen","nativeSrc":"222805:9:0","nodeType":"YulIdentifier","src":"222805:9:0"}],"functionName":{"name":"keccak256","nativeSrc":"222784:9:0","nodeType":"YulIdentifier","src":"222784:9:0"},"nativeSrc":"222784:31:0","nodeType":"YulFunctionCall","src":"222784:31:0"},"variableNames":[{"name":"hash","nativeSrc":"222776:4:0","nodeType":"YulIdentifier","src":"222776:4:0"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":15273,"isOffset":false,"isSlot":false,"src":"222776:4:0","valueSize":1},{"declaration":15193,"isOffset":false,"isSlot":false,"src":"222805:9:0","valueSize":1},{"declaration":15195,"isOffset":false,"isSlot":false,"src":"222794:9:0","valueSize":1}],"id":15275,"nodeType":"InlineAssembly","src":"222765:52:0"},{"expression":{"id":15283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15276,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15201,"src":"222834:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15277,"name":"selfptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15191,"src":"222840:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15278,"name":"selflen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15189,"src":"222851:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":15279,"name":"needlelen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15193,"src":"222861:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"222851:19:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":15281,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"222850:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"222840:31:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"222834:37:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15284,"nodeType":"ExpressionStatement","src":"222834:37:0"},{"body":{"id":15304,"nodeType":"Block","src":"222912:248:0","statements":[{"assignments":[15289],"declarations":[{"constant":false,"id":15289,"mutability":"mutable","name":"testHash","nameLocation":"222942:8:0","nodeType":"VariableDeclaration","scope":15304,"src":"222934:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15288,"name":"bytes32","nodeType":"ElementaryTypeName","src":"222934:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":15290,"nodeType":"VariableDeclarationStatement","src":"222934:16:0"},{"AST":{"nativeSrc":"222981:41:0","nodeType":"YulBlock","src":"222981:41:0","statements":[{"nativeSrc":"222983:37:0","nodeType":"YulAssignment","src":"222983:37:0","value":{"arguments":[{"name":"ptr","nativeSrc":"223005:3:0","nodeType":"YulIdentifier","src":"223005:3:0"},{"name":"needlelen","nativeSrc":"223010:9:0","nodeType":"YulIdentifier","src":"223010:9:0"}],"functionName":{"name":"keccak256","nativeSrc":"222995:9:0","nodeType":"YulIdentifier","src":"222995:9:0"},"nativeSrc":"222995:25:0","nodeType":"YulFunctionCall","src":"222995:25:0"},"variableNames":[{"name":"testHash","nativeSrc":"222983:8:0","nodeType":"YulIdentifier","src":"222983:8:0"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":15193,"isOffset":false,"isSlot":false,"src":"223010:9:0","valueSize":1},{"declaration":15201,"isOffset":false,"isSlot":false,"src":"223005:3:0","valueSize":1},{"declaration":15289,"isOffset":false,"isSlot":false,"src":"222983:8:0","valueSize":1}],"id":15291,"nodeType":"InlineAssembly","src":"222972:50:0"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":15294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15292,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15273,"src":"223047:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":15293,"name":"testHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15289,"src":"223055:8:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"223047:16:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15299,"nodeType":"IfStatement","src":"223043:68:0","trueBody":{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15295,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15201,"src":"223096:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":15296,"name":"needlelen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15193,"src":"223102:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"223096:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15199,"id":15298,"nodeType":"Return","src":"223089:22:0"}},{"expression":{"id":15302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15300,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15201,"src":"223133:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":15301,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"223140:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"223133:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15303,"nodeType":"ExpressionStatement","src":"223133:8:0"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15285,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15201,"src":"222896:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":15286,"name":"selfptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15191,"src":"222903:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"222896:14:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15305,"nodeType":"WhileStatement","src":"222889:271:0"}]},"id":15307,"nodeType":"IfStatement","src":"221932:1242:0","trueBody":{"id":15271,"nodeType":"Block","src":"221953:709:0","statements":[{"assignments":[15210],"declarations":[{"constant":false,"id":15210,"mutability":"mutable","name":"mask","nameLocation":"221979:4:0","nodeType":"VariableDeclaration","scope":15271,"src":"221971:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15209,"name":"bytes32","nodeType":"ElementaryTypeName","src":"221971:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":15211,"nodeType":"VariableDeclarationStatement","src":"221971:12:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15212,"name":"needlelen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15193,"src":"222005:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":15213,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"222017:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"222005:13:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15235,"nodeType":"IfStatement","src":"222001:110:0","trueBody":{"id":15234,"nodeType":"Block","src":"222020:91:0","statements":[{"expression":{"id":15232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15215,"name":"mask","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15210,"src":"222042:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":15230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"222057:34:0","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":15218,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"222059:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"38","id":15219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"222065:1:0","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":15220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"222070:2:0","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":15221,"name":"needlelen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15193,"src":"222075:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"222070:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":15223,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"222069:16:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"222065:20:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":15225,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"222064:22:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"222059:27:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":15227,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"222089:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"222059:31:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":15229,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"222058:33:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15217,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"222049:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":15216,"name":"bytes32","nodeType":"ElementaryTypeName","src":"222049:7:0","typeDescriptions":{}}},"id":15231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"222049:43:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"222042:50:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":15233,"nodeType":"ExpressionStatement","src":"222042:50:0"}]}},{"assignments":[15237],"declarations":[{"constant":false,"id":15237,"mutability":"mutable","name":"needledata","nameLocation":"222137:10:0","nodeType":"VariableDeclaration","scope":15271,"src":"222129:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15236,"name":"bytes32","nodeType":"ElementaryTypeName","src":"222129:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":15238,"nodeType":"VariableDeclarationStatement","src":"222129:18:0"},{"AST":{"nativeSrc":"222174:45:0","nodeType":"YulBlock","src":"222174:45:0","statements":[{"nativeSrc":"222176:41:0","nodeType":"YulAssignment","src":"222176:41:0","value":{"arguments":[{"arguments":[{"name":"needleptr","nativeSrc":"222200:9:0","nodeType":"YulIdentifier","src":"222200:9:0"}],"functionName":{"name":"mload","nativeSrc":"222194:5:0","nodeType":"YulIdentifier","src":"222194:5:0"},"nativeSrc":"222194:16:0","nodeType":"YulFunctionCall","src":"222194:16:0"},{"name":"mask","nativeSrc":"222212:4:0","nodeType":"YulIdentifier","src":"222212:4:0"}],"functionName":{"name":"and","nativeSrc":"222190:3:0","nodeType":"YulIdentifier","src":"222190:3:0"},"nativeSrc":"222190:27:0","nodeType":"YulFunctionCall","src":"222190:27:0"},"variableNames":[{"name":"needledata","nativeSrc":"222176:10:0","nodeType":"YulIdentifier","src":"222176:10:0"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":15210,"isOffset":false,"isSlot":false,"src":"222212:4:0","valueSize":1},{"declaration":15237,"isOffset":false,"isSlot":false,"src":"222176:10:0","valueSize":1},{"declaration":15195,"isOffset":false,"isSlot":false,"src":"222200:9:0","valueSize":1}],"id":15239,"nodeType":"InlineAssembly","src":"222165:54:0"},{"expression":{"id":15246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15240,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15201,"src":"222237:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15241,"name":"selfptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15191,"src":"222243:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":15242,"name":"selflen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15189,"src":"222253:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"222243:17:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":15244,"name":"needlelen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15193,"src":"222263:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"222243:29:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"222237:35:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15247,"nodeType":"ExpressionStatement","src":"222237:35:0"},{"assignments":[15249],"declarations":[{"constant":false,"id":15249,"mutability":"mutable","name":"ptrdata","nameLocation":"222298:7:0","nodeType":"VariableDeclaration","scope":15271,"src":"222290:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15248,"name":"bytes32","nodeType":"ElementaryTypeName","src":"222290:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":15250,"nodeType":"VariableDeclarationStatement","src":"222290:15:0"},{"AST":{"nativeSrc":"222332:36:0","nodeType":"YulBlock","src":"222332:36:0","statements":[{"nativeSrc":"222334:32:0","nodeType":"YulAssignment","src":"222334:32:0","value":{"arguments":[{"arguments":[{"name":"ptr","nativeSrc":"222355:3:0","nodeType":"YulIdentifier","src":"222355:3:0"}],"functionName":{"name":"mload","nativeSrc":"222349:5:0","nodeType":"YulIdentifier","src":"222349:5:0"},"nativeSrc":"222349:10:0","nodeType":"YulFunctionCall","src":"222349:10:0"},{"name":"mask","nativeSrc":"222361:4:0","nodeType":"YulIdentifier","src":"222361:4:0"}],"functionName":{"name":"and","nativeSrc":"222345:3:0","nodeType":"YulIdentifier","src":"222345:3:0"},"nativeSrc":"222345:21:0","nodeType":"YulFunctionCall","src":"222345:21:0"},"variableNames":[{"name":"ptrdata","nativeSrc":"222334:7:0","nodeType":"YulIdentifier","src":"222334:7:0"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":15210,"isOffset":false,"isSlot":false,"src":"222361:4:0","valueSize":1},{"declaration":15201,"isOffset":false,"isSlot":false,"src":"222355:3:0","valueSize":1},{"declaration":15249,"isOffset":false,"isSlot":false,"src":"222334:7:0","valueSize":1}],"id":15251,"nodeType":"InlineAssembly","src":"222323:45:0"},{"body":{"id":15265,"nodeType":"Block","src":"222416:192:0","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15255,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15201,"src":"222442:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":15256,"name":"selfptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15191,"src":"222449:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"222442:14:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15260,"nodeType":"IfStatement","src":"222438:58:0","trueBody":{"expression":{"id":15258,"name":"selfptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15191,"src":"222489:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15199,"id":15259,"nodeType":"Return","src":"222482:14:0"}},{"expression":{"id":15262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"222518:5:0","subExpression":{"id":15261,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15201,"src":"222518:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15263,"nodeType":"ExpressionStatement","src":"222518:5:0"},{"AST":{"nativeSrc":"222554:36:0","nodeType":"YulBlock","src":"222554:36:0","statements":[{"nativeSrc":"222556:32:0","nodeType":"YulAssignment","src":"222556:32:0","value":{"arguments":[{"arguments":[{"name":"ptr","nativeSrc":"222577:3:0","nodeType":"YulIdentifier","src":"222577:3:0"}],"functionName":{"name":"mload","nativeSrc":"222571:5:0","nodeType":"YulIdentifier","src":"222571:5:0"},"nativeSrc":"222571:10:0","nodeType":"YulFunctionCall","src":"222571:10:0"},{"name":"mask","nativeSrc":"222583:4:0","nodeType":"YulIdentifier","src":"222583:4:0"}],"functionName":{"name":"and","nativeSrc":"222567:3:0","nodeType":"YulIdentifier","src":"222567:3:0"},"nativeSrc":"222567:21:0","nodeType":"YulFunctionCall","src":"222567:21:0"},"variableNames":[{"name":"ptrdata","nativeSrc":"222556:7:0","nodeType":"YulIdentifier","src":"222556:7:0"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":15210,"isOffset":false,"isSlot":false,"src":"222583:4:0","valueSize":1},{"declaration":15201,"isOffset":false,"isSlot":false,"src":"222577:3:0","valueSize":1},{"declaration":15249,"isOffset":false,"isSlot":false,"src":"222556:7:0","valueSize":1}],"id":15264,"nodeType":"InlineAssembly","src":"222545:45:0"}]},"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":15254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15252,"name":"ptrdata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15249,"src":"222393:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":15253,"name":"needledata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15237,"src":"222404:10:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"222393:21:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15266,"nodeType":"WhileStatement","src":"222386:222:0"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15267,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15201,"src":"222632:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":15268,"name":"needlelen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15193,"src":"222638:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"222632:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15199,"id":15270,"nodeType":"Return","src":"222625:22:0"}]}}]}},{"expression":{"id":15310,"name":"selfptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15191,"src":"223200:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15199,"id":15311,"nodeType":"Return","src":"223193:14:0"}]},"id":15313,"implemented":true,"kind":"function","modifiers":[],"name":"rfindPtr","nameLocation":"221766:8:0","nodeType":"FunctionDefinition","parameters":{"id":15196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15189,"mutability":"mutable","name":"selflen","nameLocation":"221780:7:0","nodeType":"VariableDeclaration","scope":15313,"src":"221775:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15188,"name":"uint","nodeType":"ElementaryTypeName","src":"221775:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15191,"mutability":"mutable","name":"selfptr","nameLocation":"221794:7:0","nodeType":"VariableDeclaration","scope":15313,"src":"221789:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15190,"name":"uint","nodeType":"ElementaryTypeName","src":"221789:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15193,"mutability":"mutable","name":"needlelen","nameLocation":"221808:9:0","nodeType":"VariableDeclaration","scope":15313,"src":"221803:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15192,"name":"uint","nodeType":"ElementaryTypeName","src":"221803:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15195,"mutability":"mutable","name":"needleptr","nameLocation":"221824:9:0","nodeType":"VariableDeclaration","scope":15313,"src":"221819:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15194,"name":"uint","nodeType":"ElementaryTypeName","src":"221819:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"221774:60:0"},"returnParameters":{"id":15199,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15198,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15313,"src":"221857:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15197,"name":"uint","nodeType":"ElementaryTypeName","src":"221857:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"221856:6:0"},"scope":16079,"src":"221757:1457:0","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":15355,"nodeType":"Block","src":"223641:167:0","statements":[{"assignments":[15326],"declarations":[{"constant":false,"id":15326,"mutability":"mutable","name":"ptr","nameLocation":"223656:3:0","nodeType":"VariableDeclaration","scope":15355,"src":"223651:8:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15325,"name":"uint","nodeType":"ElementaryTypeName","src":"223651:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15337,"initialValue":{"arguments":[{"expression":{"id":15328,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15316,"src":"223670:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15329,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"223675:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"223670:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":15330,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15316,"src":"223681:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15331,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"223686:4:0","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":14013,"src":"223681:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":15332,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15319,"src":"223692:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15333,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"223699:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"223692:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":15334,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15319,"src":"223705:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15335,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"223712:4:0","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":14013,"src":"223705:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15327,"name":"findPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15187,"src":"223662:7:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256,uint256) pure returns (uint256)"}},"id":15336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"223662:55:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"223651:66:0"},{"expression":{"id":15345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15338,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15316,"src":"223727:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15340,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"223732:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"223727:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15341,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15326,"src":"223740:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":15342,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15316,"src":"223746:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15343,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"223751:4:0","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":14013,"src":"223746:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"223740:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"223727:28:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15346,"nodeType":"ExpressionStatement","src":"223727:28:0"},{"expression":{"id":15351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15347,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15316,"src":"223765:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15349,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"223770:4:0","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":14013,"src":"223765:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":15350,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15326,"src":"223777:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"223765:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15352,"nodeType":"ExpressionStatement","src":"223765:15:0"},{"expression":{"id":15353,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15316,"src":"223797:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"functionReturnParameters":15324,"id":15354,"nodeType":"Return","src":"223790:11:0"}]},"id":15356,"implemented":true,"kind":"function","modifiers":[],"name":"find","nameLocation":"223559:4:0","nodeType":"FunctionDefinition","parameters":{"id":15320,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15316,"mutability":"mutable","name":"self","nameLocation":"223577:4:0","nodeType":"VariableDeclaration","scope":15356,"src":"223564:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice"},"typeName":{"id":15315,"nodeType":"UserDefinedTypeName","pathNode":{"id":15314,"name":"slice","nameLocations":["223564:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"223564:5:0"},"referencedDeclaration":14014,"src":"223564:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"visibility":"internal"},{"constant":false,"id":15319,"mutability":"mutable","name":"needle","nameLocation":"223596:6:0","nodeType":"VariableDeclaration","scope":15356,"src":"223583:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice"},"typeName":{"id":15318,"nodeType":"UserDefinedTypeName","pathNode":{"id":15317,"name":"slice","nameLocations":["223583:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"223583:5:0"},"referencedDeclaration":14014,"src":"223583:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"visibility":"internal"}],"src":"223563:40:0"},"returnParameters":{"id":15324,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15323,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15356,"src":"223627:12:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice"},"typeName":{"id":15322,"nodeType":"UserDefinedTypeName","pathNode":{"id":15321,"name":"slice","nameLocations":["223627:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"223627:5:0"},"referencedDeclaration":14014,"src":"223627:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"visibility":"internal"}],"src":"223626:14:0"},"scope":16079,"src":"223550:258:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15392,"nodeType":"Block","src":"224259:142:0","statements":[{"assignments":[15369],"declarations":[{"constant":false,"id":15369,"mutability":"mutable","name":"ptr","nameLocation":"224274:3:0","nodeType":"VariableDeclaration","scope":15392,"src":"224269:8:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15368,"name":"uint","nodeType":"ElementaryTypeName","src":"224269:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15380,"initialValue":{"arguments":[{"expression":{"id":15371,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15359,"src":"224289:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15372,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"224294:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"224289:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":15373,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15359,"src":"224300:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15374,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"224305:4:0","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":14013,"src":"224300:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":15375,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15362,"src":"224311:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15376,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"224318:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"224311:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":15377,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15362,"src":"224324:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15378,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"224331:4:0","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":14013,"src":"224324:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15370,"name":"rfindPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15313,"src":"224280:8:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256,uint256) pure returns (uint256)"}},"id":15379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"224280:56:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"224269:67:0"},{"expression":{"id":15388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15381,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15359,"src":"224346:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15383,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"224351:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"224346:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15384,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15369,"src":"224358:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":15385,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15359,"src":"224364:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15386,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"224369:4:0","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":14013,"src":"224364:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"224358:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"224346:27:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15389,"nodeType":"ExpressionStatement","src":"224346:27:0"},{"expression":{"id":15390,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15359,"src":"224390:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"functionReturnParameters":15367,"id":15391,"nodeType":"Return","src":"224383:11:0"}]},"id":15393,"implemented":true,"kind":"function","modifiers":[],"name":"rfind","nameLocation":"224176:5:0","nodeType":"FunctionDefinition","parameters":{"id":15363,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15359,"mutability":"mutable","name":"self","nameLocation":"224195:4:0","nodeType":"VariableDeclaration","scope":15393,"src":"224182:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice"},"typeName":{"id":15358,"nodeType":"UserDefinedTypeName","pathNode":{"id":15357,"name":"slice","nameLocations":["224182:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"224182:5:0"},"referencedDeclaration":14014,"src":"224182:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"visibility":"internal"},{"constant":false,"id":15362,"mutability":"mutable","name":"needle","nameLocation":"224214:6:0","nodeType":"VariableDeclaration","scope":15393,"src":"224201:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice"},"typeName":{"id":15361,"nodeType":"UserDefinedTypeName","pathNode":{"id":15360,"name":"slice","nameLocations":["224201:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"224201:5:0"},"referencedDeclaration":14014,"src":"224201:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"visibility":"internal"}],"src":"224181:40:0"},"returnParameters":{"id":15367,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15366,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15393,"src":"224245:12:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice"},"typeName":{"id":15365,"nodeType":"UserDefinedTypeName","pathNode":{"id":15364,"name":"slice","nameLocations":["224245:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"224245:5:0"},"referencedDeclaration":14014,"src":"224245:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"visibility":"internal"}],"src":"224244:14:0"},"scope":16079,"src":"224167:234:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15474,"nodeType":"Block","src":"225019:392:0","statements":[{"assignments":[15409],"declarations":[{"constant":false,"id":15409,"mutability":"mutable","name":"ptr","nameLocation":"225034:3:0","nodeType":"VariableDeclaration","scope":15474,"src":"225029:8:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15408,"name":"uint","nodeType":"ElementaryTypeName","src":"225029:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15420,"initialValue":{"arguments":[{"expression":{"id":15411,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15396,"src":"225048:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15412,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"225053:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"225048:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":15413,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15396,"src":"225059:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15414,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"225064:4:0","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":14013,"src":"225059:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":15415,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15399,"src":"225070:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15416,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"225077:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"225070:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":15417,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15399,"src":"225083:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15418,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"225090:4:0","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":14013,"src":"225083:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15410,"name":"findPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15187,"src":"225040:7:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256,uint256) pure returns (uint256)"}},"id":15419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"225040:55:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"225029:66:0"},{"expression":{"id":15426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15421,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15402,"src":"225105:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15423,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"225111:4:0","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":14013,"src":"225105:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":15424,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15396,"src":"225118:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15425,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"225123:4:0","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":14013,"src":"225118:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"225105:22:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15427,"nodeType":"ExpressionStatement","src":"225105:22:0"},{"expression":{"id":15435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15428,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15402,"src":"225137:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15430,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"225143:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"225137:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15431,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15409,"src":"225150:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":15432,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15396,"src":"225156:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15433,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"225161:4:0","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":14013,"src":"225156:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"225150:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"225137:28:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15436,"nodeType":"ExpressionStatement","src":"225137:28:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15437,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15409,"src":"225179:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15438,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15396,"src":"225186:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15439,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"225191:4:0","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":14013,"src":"225186:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":15440,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15396,"src":"225198:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15441,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"225203:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"225198:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"225186:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"225179:28:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":15470,"nodeType":"Block","src":"225278:105:0","statements":[{"expression":{"id":15459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15451,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15396,"src":"225292:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15453,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"225297:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"225292:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15454,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15402,"src":"225305:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15455,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"225311:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"225305:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":15456,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15399,"src":"225318:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15457,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"225325:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"225318:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"225305:24:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"225292:37:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15460,"nodeType":"ExpressionStatement","src":"225292:37:0"},{"expression":{"id":15468,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15461,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15396,"src":"225343:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15463,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"225348:4:0","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":14013,"src":"225343:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15464,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15409,"src":"225355:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":15465,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15399,"src":"225361:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15466,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"225368:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"225361:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"225355:17:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"225343:29:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15469,"nodeType":"ExpressionStatement","src":"225343:29:0"}]},"id":15471,"nodeType":"IfStatement","src":"225175:208:0","trueBody":{"id":15450,"nodeType":"Block","src":"225209:63:0","statements":[{"expression":{"id":15448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15444,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15396,"src":"225248:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15446,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"225253:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"225248:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":15447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"225260:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"225248:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15449,"nodeType":"ExpressionStatement","src":"225248:13:0"}]}},{"expression":{"id":15472,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15402,"src":"225399:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"functionReturnParameters":15407,"id":15473,"nodeType":"Return","src":"225392:12:0"}]},"id":15475,"implemented":true,"kind":"function","modifiers":[],"name":"split","nameLocation":"224916:5:0","nodeType":"FunctionDefinition","parameters":{"id":15403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15396,"mutability":"mutable","name":"self","nameLocation":"224935:4:0","nodeType":"VariableDeclaration","scope":15475,"src":"224922:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice"},"typeName":{"id":15395,"nodeType":"UserDefinedTypeName","pathNode":{"id":15394,"name":"slice","nameLocations":["224922:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"224922:5:0"},"referencedDeclaration":14014,"src":"224922:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"visibility":"internal"},{"constant":false,"id":15399,"mutability":"mutable","name":"needle","nameLocation":"224954:6:0","nodeType":"VariableDeclaration","scope":15475,"src":"224941:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice"},"typeName":{"id":15398,"nodeType":"UserDefinedTypeName","pathNode":{"id":15397,"name":"slice","nameLocations":["224941:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"224941:5:0"},"referencedDeclaration":14014,"src":"224941:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"visibility":"internal"},{"constant":false,"id":15402,"mutability":"mutable","name":"token","nameLocation":"224975:5:0","nodeType":"VariableDeclaration","scope":15475,"src":"224962:18:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice"},"typeName":{"id":15401,"nodeType":"UserDefinedTypeName","pathNode":{"id":15400,"name":"slice","nameLocations":["224962:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"224962:5:0"},"referencedDeclaration":14014,"src":"224962:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"visibility":"internal"}],"src":"224921:60:0"},"returnParameters":{"id":15407,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15406,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15475,"src":"225005:12:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice"},"typeName":{"id":15405,"nodeType":"UserDefinedTypeName","pathNode":{"id":15404,"name":"slice","nameLocations":["225005:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"225005:5:0"},"referencedDeclaration":14014,"src":"225005:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"visibility":"internal"}],"src":"225004:14:0"},"scope":16079,"src":"224907:504:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15493,"nodeType":"Block","src":"225980:43:0","statements":[{"expression":{"arguments":[{"id":15488,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15478,"src":"225996:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},{"id":15489,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15481,"src":"226002:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},{"id":15490,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15485,"src":"226010:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"},{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"},{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}],"id":15487,"name":"split","nodeType":"Identifier","overloadedDeclarations":[15475,15494],"referencedDeclaration":15475,"src":"225990:5:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$14014_memory_ptr_$_t_struct$_slice_$14014_memory_ptr_$_t_struct$_slice_$14014_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$","typeString":"function (struct Strings.slice memory,struct Strings.slice memory,struct Strings.slice memory) pure returns (struct Strings.slice memory)"}},"id":15491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"225990:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15492,"nodeType":"ExpressionStatement","src":"225990:26:0"}]},"id":15494,"implemented":true,"kind":"function","modifiers":[],"name":"split","nameLocation":"225891:5:0","nodeType":"FunctionDefinition","parameters":{"id":15482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15478,"mutability":"mutable","name":"self","nameLocation":"225910:4:0","nodeType":"VariableDeclaration","scope":15494,"src":"225897:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice"},"typeName":{"id":15477,"nodeType":"UserDefinedTypeName","pathNode":{"id":15476,"name":"slice","nameLocations":["225897:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"225897:5:0"},"referencedDeclaration":14014,"src":"225897:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"visibility":"internal"},{"constant":false,"id":15481,"mutability":"mutable","name":"needle","nameLocation":"225929:6:0","nodeType":"VariableDeclaration","scope":15494,"src":"225916:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice"},"typeName":{"id":15480,"nodeType":"UserDefinedTypeName","pathNode":{"id":15479,"name":"slice","nameLocations":["225916:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"225916:5:0"},"referencedDeclaration":14014,"src":"225916:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"visibility":"internal"}],"src":"225896:40:0"},"returnParameters":{"id":15486,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15485,"mutability":"mutable","name":"token","nameLocation":"225973:5:0","nodeType":"VariableDeclaration","scope":15494,"src":"225960:18:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice"},"typeName":{"id":15484,"nodeType":"UserDefinedTypeName","pathNode":{"id":15483,"name":"slice","nameLocations":["225960:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"225960:5:0"},"referencedDeclaration":14014,"src":"225960:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"visibility":"internal"}],"src":"225959:20:0"},"scope":16079,"src":"225882:141:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15566,"nodeType":"Block","src":"226641:346:0","statements":[{"assignments":[15510],"declarations":[{"constant":false,"id":15510,"mutability":"mutable","name":"ptr","nameLocation":"226656:3:0","nodeType":"VariableDeclaration","scope":15566,"src":"226651:8:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15509,"name":"uint","nodeType":"ElementaryTypeName","src":"226651:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15521,"initialValue":{"arguments":[{"expression":{"id":15512,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15497,"src":"226671:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15513,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"226676:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"226671:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":15514,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15497,"src":"226682:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15515,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"226687:4:0","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":14013,"src":"226682:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":15516,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15500,"src":"226693:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15517,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"226700:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"226693:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":15518,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15500,"src":"226706:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15519,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"226713:4:0","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":14013,"src":"226706:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15511,"name":"rfindPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15313,"src":"226662:8:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256,uint256) pure returns (uint256)"}},"id":15520,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"226662:56:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"226651:67:0"},{"expression":{"id":15526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15522,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15503,"src":"226728:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15524,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"226734:4:0","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":14013,"src":"226728:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":15525,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15510,"src":"226741:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"226728:16:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15527,"nodeType":"ExpressionStatement","src":"226728:16:0"},{"expression":{"id":15539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15528,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15503,"src":"226754:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15530,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"226760:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"226754:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15531,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15497,"src":"226767:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15532,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"226772:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"226767:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15533,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15510,"src":"226780:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":15534,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15497,"src":"226786:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15535,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"226791:4:0","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":14013,"src":"226786:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"226780:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":15537,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"226779:17:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"226767:29:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"226754:42:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15540,"nodeType":"ExpressionStatement","src":"226754:42:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15541,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15510,"src":"226810:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":15542,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15497,"src":"226817:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15543,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"226822:4:0","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":14013,"src":"226817:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"226810:16:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":15562,"nodeType":"Block","src":"226897:62:0","statements":[{"expression":{"id":15560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15552,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15497,"src":"226911:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15554,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"226916:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"226911:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15555,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15503,"src":"226924:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15556,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"226930:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"226924:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":15557,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15500,"src":"226937:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15558,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"226944:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"226937:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"226924:24:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"226911:37:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15561,"nodeType":"ExpressionStatement","src":"226911:37:0"}]},"id":15563,"nodeType":"IfStatement","src":"226806:153:0","trueBody":{"id":15551,"nodeType":"Block","src":"226828:63:0","statements":[{"expression":{"id":15549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15545,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15497,"src":"226867:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15547,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"226872:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"226867:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":15548,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"226879:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"226867:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15550,"nodeType":"ExpressionStatement","src":"226867:13:0"}]}},{"expression":{"id":15564,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15503,"src":"226975:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"functionReturnParameters":15508,"id":15565,"nodeType":"Return","src":"226968:12:0"}]},"id":15567,"implemented":true,"kind":"function","modifiers":[],"name":"rsplit","nameLocation":"226537:6:0","nodeType":"FunctionDefinition","parameters":{"id":15504,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15497,"mutability":"mutable","name":"self","nameLocation":"226557:4:0","nodeType":"VariableDeclaration","scope":15567,"src":"226544:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice"},"typeName":{"id":15496,"nodeType":"UserDefinedTypeName","pathNode":{"id":15495,"name":"slice","nameLocations":["226544:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"226544:5:0"},"referencedDeclaration":14014,"src":"226544:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"visibility":"internal"},{"constant":false,"id":15500,"mutability":"mutable","name":"needle","nameLocation":"226576:6:0","nodeType":"VariableDeclaration","scope":15567,"src":"226563:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice"},"typeName":{"id":15499,"nodeType":"UserDefinedTypeName","pathNode":{"id":15498,"name":"slice","nameLocations":["226563:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"226563:5:0"},"referencedDeclaration":14014,"src":"226563:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"visibility":"internal"},{"constant":false,"id":15503,"mutability":"mutable","name":"token","nameLocation":"226597:5:0","nodeType":"VariableDeclaration","scope":15567,"src":"226584:18:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice"},"typeName":{"id":15502,"nodeType":"UserDefinedTypeName","pathNode":{"id":15501,"name":"slice","nameLocations":["226584:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"226584:5:0"},"referencedDeclaration":14014,"src":"226584:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"visibility":"internal"}],"src":"226543:60:0"},"returnParameters":{"id":15508,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15507,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15567,"src":"226627:12:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice"},"typeName":{"id":15506,"nodeType":"UserDefinedTypeName","pathNode":{"id":15505,"name":"slice","nameLocations":["226627:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"226627:5:0"},"referencedDeclaration":14014,"src":"226627:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"visibility":"internal"}],"src":"226626:14:0"},"scope":16079,"src":"226528:459:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15585,"nodeType":"Block","src":"227555:44:0","statements":[{"expression":{"arguments":[{"id":15580,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15570,"src":"227572:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},{"id":15581,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15573,"src":"227578:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},{"id":15582,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15577,"src":"227586:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"},{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"},{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}],"id":15579,"name":"rsplit","nodeType":"Identifier","overloadedDeclarations":[15567,15586],"referencedDeclaration":15567,"src":"227565:6:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$14014_memory_ptr_$_t_struct$_slice_$14014_memory_ptr_$_t_struct$_slice_$14014_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$","typeString":"function (struct Strings.slice memory,struct Strings.slice memory,struct Strings.slice memory) pure returns (struct Strings.slice memory)"}},"id":15583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"227565:27:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15584,"nodeType":"ExpressionStatement","src":"227565:27:0"}]},"id":15586,"implemented":true,"kind":"function","modifiers":[],"name":"rsplit","nameLocation":"227465:6:0","nodeType":"FunctionDefinition","parameters":{"id":15574,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15570,"mutability":"mutable","name":"self","nameLocation":"227485:4:0","nodeType":"VariableDeclaration","scope":15586,"src":"227472:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice"},"typeName":{"id":15569,"nodeType":"UserDefinedTypeName","pathNode":{"id":15568,"name":"slice","nameLocations":["227472:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"227472:5:0"},"referencedDeclaration":14014,"src":"227472:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"visibility":"internal"},{"constant":false,"id":15573,"mutability":"mutable","name":"needle","nameLocation":"227504:6:0","nodeType":"VariableDeclaration","scope":15586,"src":"227491:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice"},"typeName":{"id":15572,"nodeType":"UserDefinedTypeName","pathNode":{"id":15571,"name":"slice","nameLocations":["227491:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"227491:5:0"},"referencedDeclaration":14014,"src":"227491:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"visibility":"internal"}],"src":"227471:40:0"},"returnParameters":{"id":15578,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15577,"mutability":"mutable","name":"token","nameLocation":"227548:5:0","nodeType":"VariableDeclaration","scope":15586,"src":"227535:18:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice"},"typeName":{"id":15576,"nodeType":"UserDefinedTypeName","pathNode":{"id":15575,"name":"slice","nameLocations":["227535:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"227535:5:0"},"referencedDeclaration":14014,"src":"227535:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"visibility":"internal"}],"src":"227534:20:0"},"scope":16079,"src":"227456:143:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15646,"nodeType":"Block","src":"227956:276:0","statements":[{"assignments":[15598],"declarations":[{"constant":false,"id":15598,"mutability":"mutable","name":"ptr","nameLocation":"227971:3:0","nodeType":"VariableDeclaration","scope":15646,"src":"227966:8:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15597,"name":"uint","nodeType":"ElementaryTypeName","src":"227966:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15612,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":15600,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15589,"src":"227985:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15601,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"227990:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"227985:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":15602,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15589,"src":"227996:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15603,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"228001:4:0","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":14013,"src":"227996:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":15604,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15592,"src":"228007:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15605,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"228014:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"228007:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":15606,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15592,"src":"228020:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15607,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"228027:4:0","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":14013,"src":"228020:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15599,"name":"findPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15187,"src":"227977:7:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256,uint256) pure returns (uint256)"}},"id":15608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"227977:55:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":15609,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15592,"src":"228035:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15610,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"228042:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"228035:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"227977:69:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"227966:80:0"},{"body":{"id":15644,"nodeType":"Block","src":"228093:133:0","statements":[{"expression":{"id":15621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"228107:5:0","subExpression":{"id":15620,"name":"cnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15595,"src":"228107:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15622,"nodeType":"ExpressionStatement","src":"228107:5:0"},{"expression":{"id":15642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15623,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15598,"src":"228126:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15625,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15589,"src":"228140:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15626,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"228145:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"228140:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15627,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15598,"src":"228153:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":15628,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15589,"src":"228159:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15629,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"228164:4:0","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":14013,"src":"228159:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"228153:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":15631,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"228152:17:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"228140:29:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15633,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15598,"src":"228171:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":15634,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15592,"src":"228176:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15635,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"228183:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"228176:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":15636,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15592,"src":"228189:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15637,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"228196:4:0","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":14013,"src":"228189:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15624,"name":"findPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15187,"src":"228132:7:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256,uint256) pure returns (uint256)"}},"id":15638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"228132:69:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":15639,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15592,"src":"228204:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15640,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"228211:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"228204:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"228132:83:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"228126:89:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15643,"nodeType":"ExpressionStatement","src":"228126:89:0"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15613,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15598,"src":"228063:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15614,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15589,"src":"228070:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15615,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"228075:4:0","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":14013,"src":"228070:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":15616,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15589,"src":"228082:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15617,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"228087:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"228082:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"228070:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"228063:28:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15645,"nodeType":"WhileStatement","src":"228056:170:0"}]},"id":15647,"implemented":true,"kind":"function","modifiers":[],"name":"count","nameLocation":"227877:5:0","nodeType":"FunctionDefinition","parameters":{"id":15593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15589,"mutability":"mutable","name":"self","nameLocation":"227896:4:0","nodeType":"VariableDeclaration","scope":15647,"src":"227883:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice"},"typeName":{"id":15588,"nodeType":"UserDefinedTypeName","pathNode":{"id":15587,"name":"slice","nameLocations":["227883:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"227883:5:0"},"referencedDeclaration":14014,"src":"227883:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"visibility":"internal"},{"constant":false,"id":15592,"mutability":"mutable","name":"needle","nameLocation":"227915:6:0","nodeType":"VariableDeclaration","scope":15647,"src":"227902:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice"},"typeName":{"id":15591,"nodeType":"UserDefinedTypeName","pathNode":{"id":15590,"name":"slice","nameLocations":["227902:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"227902:5:0"},"referencedDeclaration":14014,"src":"227902:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"visibility":"internal"}],"src":"227882:40:0"},"returnParameters":{"id":15596,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15595,"mutability":"mutable","name":"cnt","nameLocation":"227951:3:0","nodeType":"VariableDeclaration","scope":15647,"src":"227946:8:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15594,"name":"uint","nodeType":"ElementaryTypeName","src":"227946:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"227945:10:0"},"scope":16079,"src":"227868:364:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15672,"nodeType":"Block","src":"228558:93:0","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":15659,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15650,"src":"228584:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15660,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"228589:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"228584:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":15661,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15650,"src":"228595:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15662,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"228600:4:0","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":14013,"src":"228595:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":15663,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15653,"src":"228606:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15664,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"228613:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"228606:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":15665,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15653,"src":"228619:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15666,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"228626:4:0","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":14013,"src":"228619:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15658,"name":"rfindPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15313,"src":"228575:8:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256,uint256) pure returns (uint256)"}},"id":15667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"228575:56:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":15668,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15650,"src":"228635:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15669,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"228640:4:0","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":14013,"src":"228635:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"228575:69:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":15657,"id":15671,"nodeType":"Return","src":"228568:76:0"}]},"id":15673,"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"228480:8:0","nodeType":"FunctionDefinition","parameters":{"id":15654,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15650,"mutability":"mutable","name":"self","nameLocation":"228502:4:0","nodeType":"VariableDeclaration","scope":15673,"src":"228489:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice"},"typeName":{"id":15649,"nodeType":"UserDefinedTypeName","pathNode":{"id":15648,"name":"slice","nameLocations":["228489:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"228489:5:0"},"referencedDeclaration":14014,"src":"228489:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"visibility":"internal"},{"constant":false,"id":15653,"mutability":"mutable","name":"needle","nameLocation":"228521:6:0","nodeType":"VariableDeclaration","scope":15673,"src":"228508:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice"},"typeName":{"id":15652,"nodeType":"UserDefinedTypeName","pathNode":{"id":15651,"name":"slice","nameLocations":["228508:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"228508:5:0"},"referencedDeclaration":14014,"src":"228508:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"visibility":"internal"}],"src":"228488:40:0"},"returnParameters":{"id":15657,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15656,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15673,"src":"228552:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15655,"name":"bool","nodeType":"ElementaryTypeName","src":"228552:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"228551:6:0"},"scope":16079,"src":"228471:180:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15720,"nodeType":"Block","src":"229031:262:0","statements":[{"assignments":[15685],"declarations":[{"constant":false,"id":15685,"mutability":"mutable","name":"ret","nameLocation":"229055:3:0","nodeType":"VariableDeclaration","scope":15720,"src":"229041:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15684,"name":"string","nodeType":"ElementaryTypeName","src":"229041:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":15694,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15688,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15676,"src":"229072:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15689,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"229077:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"229072:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":15690,"name":"other","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15679,"src":"229084:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15691,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"229090:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"229084:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"229072:22:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15687,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"229061:10:0","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"},"typeName":{"id":15686,"name":"string","nodeType":"ElementaryTypeName","src":"229065:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"id":15693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"229061:34:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"229041:54:0"},{"assignments":[15696],"declarations":[{"constant":false,"id":15696,"mutability":"mutable","name":"retptr","nameLocation":"229110:6:0","nodeType":"VariableDeclaration","scope":15720,"src":"229105:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15695,"name":"uint","nodeType":"ElementaryTypeName","src":"229105:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15697,"nodeType":"VariableDeclarationStatement","src":"229105:11:0"},{"AST":{"nativeSrc":"229135:26:0","nodeType":"YulBlock","src":"229135:26:0","statements":[{"nativeSrc":"229137:22:0","nodeType":"YulAssignment","src":"229137:22:0","value":{"arguments":[{"name":"ret","nativeSrc":"229151:3:0","nodeType":"YulIdentifier","src":"229151:3:0"},{"kind":"number","nativeSrc":"229156:2:0","nodeType":"YulLiteral","src":"229156:2:0","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"229147:3:0","nodeType":"YulIdentifier","src":"229147:3:0"},"nativeSrc":"229147:12:0","nodeType":"YulFunctionCall","src":"229147:12:0"},"variableNames":[{"name":"retptr","nativeSrc":"229137:6:0","nodeType":"YulIdentifier","src":"229137:6:0"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":15685,"isOffset":false,"isSlot":false,"src":"229151:3:0","valueSize":1},{"declaration":15696,"isOffset":false,"isSlot":false,"src":"229137:6:0","valueSize":1}],"id":15698,"nodeType":"InlineAssembly","src":"229126:35:0"},{"expression":{"arguments":[{"id":15700,"name":"retptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15696,"src":"229177:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":15701,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15676,"src":"229185:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15702,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"229190:4:0","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":14013,"src":"229185:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":15703,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15676,"src":"229196:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15704,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"229201:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"229196:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15699,"name":"memcpy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14067,"src":"229170:6:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256) pure"}},"id":15705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"229170:36:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15706,"nodeType":"ExpressionStatement","src":"229170:36:0"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15708,"name":"retptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15696,"src":"229223:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":15709,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15676,"src":"229232:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15710,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"229237:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"229232:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"229223:18:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":15712,"name":"other","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15679,"src":"229243:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15713,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"229249:4:0","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":14013,"src":"229243:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":15714,"name":"other","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15679,"src":"229255:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15715,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"229261:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"229255:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15707,"name":"memcpy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14067,"src":"229216:6:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256) pure"}},"id":15716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"229216:50:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15717,"nodeType":"ExpressionStatement","src":"229216:50:0"},{"expression":{"id":15718,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15685,"src":"229283:3:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":15683,"id":15719,"nodeType":"Return","src":"229276:10:0"}]},"id":15721,"implemented":true,"kind":"function","modifiers":[],"name":"concat","nameLocation":"228947:6:0","nodeType":"FunctionDefinition","parameters":{"id":15680,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15676,"mutability":"mutable","name":"self","nameLocation":"228967:4:0","nodeType":"VariableDeclaration","scope":15721,"src":"228954:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice"},"typeName":{"id":15675,"nodeType":"UserDefinedTypeName","pathNode":{"id":15674,"name":"slice","nameLocations":["228954:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"228954:5:0"},"referencedDeclaration":14014,"src":"228954:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"visibility":"internal"},{"constant":false,"id":15679,"mutability":"mutable","name":"other","nameLocation":"228986:5:0","nodeType":"VariableDeclaration","scope":15721,"src":"228973:18:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice"},"typeName":{"id":15678,"nodeType":"UserDefinedTypeName","pathNode":{"id":15677,"name":"slice","nameLocations":["228973:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"228973:5:0"},"referencedDeclaration":14014,"src":"228973:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"visibility":"internal"}],"src":"228953:39:0"},"returnParameters":{"id":15683,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15682,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15721,"src":"229016:13:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15681,"name":"string","nodeType":"ElementaryTypeName","src":"229016:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"229015:15:0"},"scope":16079,"src":"228938:355:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15836,"nodeType":"Block","src":"229722:635:0","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15733,"name":"parts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15728,"src":"229736:5:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_slice_$14014_memory_ptr_$dyn_memory_ptr","typeString":"struct Strings.slice memory[] memory"}},"id":15734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"229742:6:0","memberName":"length","nodeType":"MemberAccess","src":"229736:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":15735,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"229752:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"229736:17:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15739,"nodeType":"IfStatement","src":"229732:44:0","trueBody":{"expression":{"hexValue":"","id":15737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"229774:2:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"functionReturnParameters":15732,"id":15738,"nodeType":"Return","src":"229767:9:0"}},{"assignments":[15741],"declarations":[{"constant":false,"id":15741,"mutability":"mutable","name":"length","nameLocation":"229792:6:0","nodeType":"VariableDeclaration","scope":15836,"src":"229787:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15740,"name":"uint","nodeType":"ElementaryTypeName","src":"229787:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15750,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15742,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15724,"src":"229801:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15743,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"229806:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"229801:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15744,"name":"parts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15728,"src":"229814:5:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_slice_$14014_memory_ptr_$dyn_memory_ptr","typeString":"struct Strings.slice memory[] memory"}},"id":15745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"229820:6:0","memberName":"length","nodeType":"MemberAccess","src":"229814:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":15746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"229829:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"229814:16:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":15748,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"229813:18:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"229801:30:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"229787:44:0"},{"body":{"expression":{"id":15767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15762,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15741,"src":"229892:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"baseExpression":{"id":15763,"name":"parts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15728,"src":"229902:5:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_slice_$14014_memory_ptr_$dyn_memory_ptr","typeString":"struct Strings.slice memory[] memory"}},"id":15765,"indexExpression":{"id":15764,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15752,"src":"229908:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"229902:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15766,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"229911:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"229902:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"229892:23:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15768,"nodeType":"ExpressionStatement","src":"229892:23:0"},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15755,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15752,"src":"229857:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":15756,"name":"parts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15728,"src":"229861:5:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_slice_$14014_memory_ptr_$dyn_memory_ptr","typeString":"struct Strings.slice memory[] memory"}},"id":15757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"229867:6:0","memberName":"length","nodeType":"MemberAccess","src":"229861:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"229857:16:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15769,"initializationExpression":{"assignments":[15752],"declarations":[{"constant":false,"id":15752,"mutability":"mutable","name":"i","nameLocation":"229850:1:0","nodeType":"VariableDeclaration","scope":15769,"src":"229845:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15751,"name":"uint","nodeType":"ElementaryTypeName","src":"229845:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15754,"initialValue":{"hexValue":"30","id":15753,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"229854:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"229845:10:0"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":15760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"229875:3:0","subExpression":{"id":15759,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15752,"src":"229875:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15761,"nodeType":"ExpressionStatement","src":"229875:3:0"},"nodeType":"ForStatement","src":"229841:74:0"},{"assignments":[15771],"declarations":[{"constant":false,"id":15771,"mutability":"mutable","name":"ret","nameLocation":"229940:3:0","nodeType":"VariableDeclaration","scope":15836,"src":"229926:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15770,"name":"string","nodeType":"ElementaryTypeName","src":"229926:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":15776,"initialValue":{"arguments":[{"id":15774,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15741,"src":"229957:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15773,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"229946:10:0","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"},"typeName":{"id":15772,"name":"string","nodeType":"ElementaryTypeName","src":"229950:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"id":15775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"229946:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"229926:38:0"},{"assignments":[15778],"declarations":[{"constant":false,"id":15778,"mutability":"mutable","name":"retptr","nameLocation":"229979:6:0","nodeType":"VariableDeclaration","scope":15836,"src":"229974:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15777,"name":"uint","nodeType":"ElementaryTypeName","src":"229974:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15779,"nodeType":"VariableDeclarationStatement","src":"229974:11:0"},{"AST":{"nativeSrc":"230004:26:0","nodeType":"YulBlock","src":"230004:26:0","statements":[{"nativeSrc":"230006:22:0","nodeType":"YulAssignment","src":"230006:22:0","value":{"arguments":[{"name":"ret","nativeSrc":"230020:3:0","nodeType":"YulIdentifier","src":"230020:3:0"},{"kind":"number","nativeSrc":"230025:2:0","nodeType":"YulLiteral","src":"230025:2:0","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"230016:3:0","nodeType":"YulIdentifier","src":"230016:3:0"},"nativeSrc":"230016:12:0","nodeType":"YulFunctionCall","src":"230016:12:0"},"variableNames":[{"name":"retptr","nativeSrc":"230006:6:0","nodeType":"YulIdentifier","src":"230006:6:0"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":15771,"isOffset":false,"isSlot":false,"src":"230020:3:0","valueSize":1},{"declaration":15778,"isOffset":false,"isSlot":false,"src":"230006:6:0","valueSize":1}],"id":15780,"nodeType":"InlineAssembly","src":"229995:35:0"},{"body":{"id":15832,"nodeType":"Block","src":"230079:251:0","statements":[{"expression":{"arguments":[{"id":15793,"name":"retptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15778,"src":"230100:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"baseExpression":{"id":15794,"name":"parts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15728,"src":"230108:5:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_slice_$14014_memory_ptr_$dyn_memory_ptr","typeString":"struct Strings.slice memory[] memory"}},"id":15796,"indexExpression":{"id":15795,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15782,"src":"230114:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"230108:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15797,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"230117:4:0","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":14013,"src":"230108:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"baseExpression":{"id":15798,"name":"parts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15728,"src":"230123:5:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_slice_$14014_memory_ptr_$dyn_memory_ptr","typeString":"struct Strings.slice memory[] memory"}},"id":15800,"indexExpression":{"id":15799,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15782,"src":"230129:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"230123:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15801,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"230132:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"230123:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15792,"name":"memcpy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14067,"src":"230093:6:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256) pure"}},"id":15802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"230093:44:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15803,"nodeType":"ExpressionStatement","src":"230093:44:0"},{"expression":{"id":15809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15804,"name":"retptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15778,"src":"230151:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"baseExpression":{"id":15805,"name":"parts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15728,"src":"230161:5:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_slice_$14014_memory_ptr_$dyn_memory_ptr","typeString":"struct Strings.slice memory[] memory"}},"id":15807,"indexExpression":{"id":15806,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15782,"src":"230167:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"230161:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15808,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"230170:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"230161:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"230151:23:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15810,"nodeType":"ExpressionStatement","src":"230151:23:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15811,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15782,"src":"230192:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15812,"name":"parts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15728,"src":"230196:5:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_slice_$14014_memory_ptr_$dyn_memory_ptr","typeString":"struct Strings.slice memory[] memory"}},"id":15813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"230202:6:0","memberName":"length","nodeType":"MemberAccess","src":"230196:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":15814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"230211:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"230196:16:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"230192:20:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15831,"nodeType":"IfStatement","src":"230188:132:0","trueBody":{"id":15830,"nodeType":"Block","src":"230214:106:0","statements":[{"expression":{"arguments":[{"id":15818,"name":"retptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15778,"src":"230239:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":15819,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15724,"src":"230247:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15820,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"230252:4:0","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":14013,"src":"230247:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":15821,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15724,"src":"230258:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15822,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"230263:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"230258:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15817,"name":"memcpy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14067,"src":"230232:6:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256) pure"}},"id":15823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"230232:36:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15824,"nodeType":"ExpressionStatement","src":"230232:36:0"},{"expression":{"id":15828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15825,"name":"retptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15778,"src":"230286:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":15826,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15724,"src":"230296:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":15827,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"230301:4:0","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14011,"src":"230296:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"230286:19:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15829,"nodeType":"ExpressionStatement","src":"230286:19:0"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15785,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15782,"src":"230056:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":15786,"name":"parts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15728,"src":"230060:5:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_slice_$14014_memory_ptr_$dyn_memory_ptr","typeString":"struct Strings.slice memory[] memory"}},"id":15787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"230066:6:0","memberName":"length","nodeType":"MemberAccess","src":"230060:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"230056:16:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15833,"initializationExpression":{"assignments":[15782],"declarations":[{"constant":false,"id":15782,"mutability":"mutable","name":"i","nameLocation":"230049:1:0","nodeType":"VariableDeclaration","scope":15833,"src":"230044:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15781,"name":"uint","nodeType":"ElementaryTypeName","src":"230044:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15784,"initialValue":{"hexValue":"30","id":15783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"230053:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"230044:10:0"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":15790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"230074:3:0","subExpression":{"id":15789,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15782,"src":"230074:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15791,"nodeType":"ExpressionStatement","src":"230074:3:0"},"nodeType":"ForStatement","src":"230040:290:0"},{"expression":{"id":15834,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15771,"src":"230347:3:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":15732,"id":15835,"nodeType":"Return","src":"230340:10:0"}]},"id":15837,"implemented":true,"kind":"function","modifiers":[],"name":"join","nameLocation":"229638:4:0","nodeType":"FunctionDefinition","parameters":{"id":15729,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15724,"mutability":"mutable","name":"self","nameLocation":"229656:4:0","nodeType":"VariableDeclaration","scope":15837,"src":"229643:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice"},"typeName":{"id":15723,"nodeType":"UserDefinedTypeName","pathNode":{"id":15722,"name":"slice","nameLocations":["229643:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"229643:5:0"},"referencedDeclaration":14014,"src":"229643:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"visibility":"internal"},{"constant":false,"id":15728,"mutability":"mutable","name":"parts","nameLocation":"229677:5:0","nodeType":"VariableDeclaration","scope":15837,"src":"229662:20:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_slice_$14014_memory_ptr_$dyn_memory_ptr","typeString":"struct Strings.slice[]"},"typeName":{"baseType":{"id":15726,"nodeType":"UserDefinedTypeName","pathNode":{"id":15725,"name":"slice","nameLocations":["229662:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"229662:5:0"},"referencedDeclaration":14014,"src":"229662:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"id":15727,"nodeType":"ArrayTypeName","src":"229662:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_slice_$14014_storage_$dyn_storage_ptr","typeString":"struct Strings.slice[]"}},"visibility":"internal"}],"src":"229642:41:0"},"returnParameters":{"id":15732,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15731,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15837,"src":"229707:13:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15730,"name":"string","nodeType":"ElementaryTypeName","src":"229707:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"229706:15:0"},"scope":16079,"src":"229629:728:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"documentation":{"id":15838,"nodeType":"StructuredDocumentation","src":"230363:81:0","text":" @dev The `value` string doesn't fit in the specified `length`."},"errorSelector":"e22e27eb","id":15844,"name":"StringsInsufficientHexLength","nameLocation":"230455:28:0","nodeType":"ErrorDefinition","parameters":{"id":15843,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15840,"mutability":"mutable","name":"value","nameLocation":"230492:5:0","nodeType":"VariableDeclaration","scope":15844,"src":"230484:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15839,"name":"uint256","nodeType":"ElementaryTypeName","src":"230484:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15842,"mutability":"mutable","name":"length","nameLocation":"230507:6:0","nodeType":"VariableDeclaration","scope":15844,"src":"230499:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15841,"name":"uint256","nodeType":"ElementaryTypeName","src":"230499:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"230483:31:0"},"src":"230449:66:0"},{"body":{"id":15891,"nodeType":"Block","src":"230687:627:0","statements":[{"id":15890,"nodeType":"UncheckedBlock","src":"230697:611:0","statements":[{"assignments":[15853],"declarations":[{"constant":false,"id":15853,"mutability":"mutable","name":"length","nameLocation":"230729:6:0","nodeType":"VariableDeclaration","scope":15890,"src":"230721:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15852,"name":"uint256","nodeType":"ElementaryTypeName","src":"230721:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15860,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":15856,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15847,"src":"230749:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15854,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13659,"src":"230738:4:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$13659_$","typeString":"type(library Math)"}},"id":15855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"230743:5:0","memberName":"log10","nodeType":"MemberAccess","referencedDeclaration":13479,"src":"230738:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":15857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"230738:17:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":15858,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"230758:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"230738:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"230721:38:0"},{"assignments":[15862],"declarations":[{"constant":false,"id":15862,"mutability":"mutable","name":"buffer","nameLocation":"230787:6:0","nodeType":"VariableDeclaration","scope":15890,"src":"230773:20:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15861,"name":"string","nodeType":"ElementaryTypeName","src":"230773:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":15867,"initialValue":{"arguments":[{"id":15865,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15853,"src":"230807:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15864,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"230796:10:0","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"},"typeName":{"id":15863,"name":"string","nodeType":"ElementaryTypeName","src":"230800:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"id":15866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"230796:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"230773:41:0"},{"assignments":[15869],"declarations":[{"constant":false,"id":15869,"mutability":"mutable","name":"ptr","nameLocation":"230836:3:0","nodeType":"VariableDeclaration","scope":15890,"src":"230828:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15868,"name":"uint256","nodeType":"ElementaryTypeName","src":"230828:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15870,"nodeType":"VariableDeclarationStatement","src":"230828:11:0"},{"AST":{"nativeSrc":"230909:67:0","nodeType":"YulBlock","src":"230909:67:0","statements":[{"nativeSrc":"230927:35:0","nodeType":"YulAssignment","src":"230927:35:0","value":{"arguments":[{"name":"buffer","nativeSrc":"230938:6:0","nodeType":"YulIdentifier","src":"230938:6:0"},{"arguments":[{"kind":"number","nativeSrc":"230950:2:0","nodeType":"YulLiteral","src":"230950:2:0","type":"","value":"32"},{"name":"length","nativeSrc":"230954:6:0","nodeType":"YulIdentifier","src":"230954:6:0"}],"functionName":{"name":"add","nativeSrc":"230946:3:0","nodeType":"YulIdentifier","src":"230946:3:0"},"nativeSrc":"230946:15:0","nodeType":"YulFunctionCall","src":"230946:15:0"}],"functionName":{"name":"add","nativeSrc":"230934:3:0","nodeType":"YulIdentifier","src":"230934:3:0"},"nativeSrc":"230934:28:0","nodeType":"YulFunctionCall","src":"230934:28:0"},"variableNames":[{"name":"ptr","nativeSrc":"230927:3:0","nodeType":"YulIdentifier","src":"230927:3:0"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":15862,"isOffset":false,"isSlot":false,"src":"230938:6:0","valueSize":1},{"declaration":15853,"isOffset":false,"isSlot":false,"src":"230954:6:0","valueSize":1},{"declaration":15869,"isOffset":false,"isSlot":false,"src":"230927:3:0","valueSize":1}],"id":15871,"nodeType":"InlineAssembly","src":"230900:76:0"},{"body":{"id":15886,"nodeType":"Block","src":"231002:269:0","statements":[{"expression":{"id":15874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"231020:5:0","subExpression":{"id":15873,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15869,"src":"231020:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15875,"nodeType":"ExpressionStatement","src":"231020:5:0"},{"AST":{"nativeSrc":"231103:86:0","nodeType":"YulBlock","src":"231103:86:0","statements":[{"expression":{"arguments":[{"name":"ptr","nativeSrc":"231133:3:0","nodeType":"YulIdentifier","src":"231133:3:0"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"231147:5:0","nodeType":"YulIdentifier","src":"231147:5:0"},{"kind":"number","nativeSrc":"231154:2:0","nodeType":"YulLiteral","src":"231154:2:0","type":"","value":"10"}],"functionName":{"name":"mod","nativeSrc":"231143:3:0","nodeType":"YulIdentifier","src":"231143:3:0"},"nativeSrc":"231143:14:0","nodeType":"YulFunctionCall","src":"231143:14:0"},{"name":"HEX_DIGITS","nativeSrc":"231159:10:0","nodeType":"YulIdentifier","src":"231159:10:0"}],"functionName":{"name":"byte","nativeSrc":"231138:4:0","nodeType":"YulIdentifier","src":"231138:4:0"},"nativeSrc":"231138:32:0","nodeType":"YulFunctionCall","src":"231138:32:0"}],"functionName":{"name":"mstore8","nativeSrc":"231125:7:0","nodeType":"YulIdentifier","src":"231125:7:0"},"nativeSrc":"231125:46:0","nodeType":"YulFunctionCall","src":"231125:46:0"},"nativeSrc":"231125:46:0","nodeType":"YulExpressionStatement","src":"231125:46:0"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":14006,"isOffset":false,"isSlot":false,"src":"231159:10:0","valueSize":1},{"declaration":15869,"isOffset":false,"isSlot":false,"src":"231133:3:0","valueSize":1},{"declaration":15847,"isOffset":false,"isSlot":false,"src":"231147:5:0","valueSize":1}],"id":15876,"nodeType":"InlineAssembly","src":"231094:95:0"},{"expression":{"id":15879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15877,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15847,"src":"231206:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"hexValue":"3130","id":15878,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"231215:2:0","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"231206:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15880,"nodeType":"ExpressionStatement","src":"231206:11:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15881,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15847,"src":"231239:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":15882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"231248:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"231239:10:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15885,"nodeType":"IfStatement","src":"231235:21:0","trueBody":{"id":15884,"nodeType":"Break","src":"231251:5:0"}}]},"condition":{"hexValue":"74727565","id":15872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"230996:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"id":15887,"nodeType":"WhileStatement","src":"230989:282:0"},{"expression":{"id":15888,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15862,"src":"231291:6:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":15851,"id":15889,"nodeType":"Return","src":"231284:13:0"}]}]},"documentation":{"id":15845,"nodeType":"StructuredDocumentation","src":"230521:90:0","text":" @dev Converts a `uint256` to its ASCII `string` decimal representation."},"id":15892,"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"230625:8:0","nodeType":"FunctionDefinition","parameters":{"id":15848,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15847,"mutability":"mutable","name":"value","nameLocation":"230642:5:0","nodeType":"VariableDeclaration","scope":15892,"src":"230634:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15846,"name":"uint256","nodeType":"ElementaryTypeName","src":"230634:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"230633:15:0"},"returnParameters":{"id":15851,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15850,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15892,"src":"230672:13:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15849,"name":"string","nodeType":"ElementaryTypeName","src":"230672:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"230671:15:0"},"scope":16079,"src":"230616:698:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15917,"nodeType":"Block","src":"231490:92:0","statements":[{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":15905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15903,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15895,"src":"231521:5:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":15904,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"231529:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"231521:9:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"","id":15907,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"231539:2:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"id":15908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"231521:20:0","trueExpression":{"hexValue":"2d","id":15906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"231533:3:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_d3b8281179950f98149eefdb158d0e1acb56f56e8e343aa9fefafa7e36959561","typeString":"literal_string \"-\""},"value":"-"},"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"arguments":[{"id":15912,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15895,"src":"231567:5:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":15910,"name":"SignedMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13762,"src":"231552:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SignedMath_$13762_$","typeString":"type(library SignedMath)"}},"id":15911,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"231563:3:0","memberName":"abs","nodeType":"MemberAccess","referencedDeclaration":13761,"src":"231552:14:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_uint256_$","typeString":"function (int256) pure returns (uint256)"}},"id":15913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"231552:21:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15909,"name":"toString","nodeType":"Identifier","overloadedDeclarations":[14314,15892],"referencedDeclaration":15892,"src":"231543:8:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":15914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"231543:31:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":15901,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"231507:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":15900,"name":"string","nodeType":"ElementaryTypeName","src":"231507:6:0","typeDescriptions":{}}},"id":15902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"231514:6:0","memberName":"concat","nodeType":"MemberAccess","src":"231507:13:0","typeDescriptions":{"typeIdentifier":"t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$","typeString":"function () pure returns (string memory)"}},"id":15915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"231507:68:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":15899,"id":15916,"nodeType":"Return","src":"231500:75:0"}]},"documentation":{"id":15893,"nodeType":"StructuredDocumentation","src":"231320:89:0","text":" @dev Converts a `int256` to its ASCII `string` decimal representation."},"id":15918,"implemented":true,"kind":"function","modifiers":[],"name":"toStringSigned","nameLocation":"231423:14:0","nodeType":"FunctionDefinition","parameters":{"id":15896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15895,"mutability":"mutable","name":"value","nameLocation":"231445:5:0","nodeType":"VariableDeclaration","scope":15918,"src":"231438:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":15894,"name":"int256","nodeType":"ElementaryTypeName","src":"231438:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"231437:14:0"},"returnParameters":{"id":15899,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15898,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15918,"src":"231475:13:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15897,"name":"string","nodeType":"ElementaryTypeName","src":"231475:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"231474:15:0"},"scope":16079,"src":"231414:168:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15937,"nodeType":"Block","src":"231761:100:0","statements":[{"id":15936,"nodeType":"UncheckedBlock","src":"231771:84:0","statements":[{"expression":{"arguments":[{"id":15927,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15921,"src":"231814:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":15930,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15921,"src":"231833:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15928,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13659,"src":"231821:4:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$13659_$","typeString":"type(library Math)"}},"id":15929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"231826:6:0","memberName":"log256","nodeType":"MemberAccess","referencedDeclaration":13601,"src":"231821:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":15931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"231821:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":15932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"231842:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"231821:22:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15926,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[15938,16021,16041],"referencedDeclaration":16021,"src":"231802:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":15934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"231802:42:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":15925,"id":15935,"nodeType":"Return","src":"231795:49:0"}]}]},"documentation":{"id":15919,"nodeType":"StructuredDocumentation","src":"231588:94:0","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation."},"id":15938,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"231696:11:0","nodeType":"FunctionDefinition","parameters":{"id":15922,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15921,"mutability":"mutable","name":"value","nameLocation":"231716:5:0","nodeType":"VariableDeclaration","scope":15938,"src":"231708:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15920,"name":"uint256","nodeType":"ElementaryTypeName","src":"231708:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"231707:15:0"},"returnParameters":{"id":15925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15924,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15938,"src":"231746:13:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15923,"name":"string","nodeType":"ElementaryTypeName","src":"231746:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"231745:15:0"},"scope":16079,"src":"231687:174:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16020,"nodeType":"Block","src":"232074:435:0","statements":[{"assignments":[15949],"declarations":[{"constant":false,"id":15949,"mutability":"mutable","name":"localValue","nameLocation":"232092:10:0","nodeType":"VariableDeclaration","scope":16020,"src":"232084:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15948,"name":"uint256","nodeType":"ElementaryTypeName","src":"232084:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15951,"initialValue":{"id":15950,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15941,"src":"232105:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"232084:26:0"},{"assignments":[15953],"declarations":[{"constant":false,"id":15953,"mutability":"mutable","name":"buffer","nameLocation":"232133:6:0","nodeType":"VariableDeclaration","scope":16020,"src":"232120:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":15952,"name":"bytes","nodeType":"ElementaryTypeName","src":"232120:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":15962,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":15956,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"232152:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":15957,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15943,"src":"232156:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"232152:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":15959,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"232165:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"232152:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15955,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"232142:9:0","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":15954,"name":"bytes","nodeType":"ElementaryTypeName","src":"232146:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":15961,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"232142:25:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"232120:47:0"},{"expression":{"id":15967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":15963,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15953,"src":"232177:6:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":15965,"indexExpression":{"hexValue":"30","id":15964,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"232184:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"232177:9:0","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":15966,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"232189:3:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d","typeString":"literal_string \"0\""},"value":"0"},"src":"232177:15:0","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":15968,"nodeType":"ExpressionStatement","src":"232177:15:0"},{"expression":{"id":15973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":15969,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15953,"src":"232202:6:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":15971,"indexExpression":{"hexValue":"31","id":15970,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"232209:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"232202:9:0","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"78","id":15972,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"232214:3:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_7521d1cadbcfa91eec65aa16715b94ffc1c9654ba57ea2ef1a2127bca1127a83","typeString":"literal_string \"x\""},"value":"x"},"src":"232202:15:0","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":15974,"nodeType":"ExpressionStatement","src":"232202:15:0"},{"body":{"id":16003,"nodeType":"Block","src":"232272:95:0","statements":[{"expression":{"id":15997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":15989,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15953,"src":"232286:6:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":15991,"indexExpression":{"id":15990,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15976,"src":"232293:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"232286:9:0","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":15992,"name":"HEX_DIGITS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14006,"src":"232298:10:0","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"id":15996,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15993,"name":"localValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15949,"src":"232309:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"307866","id":15994,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"232322:3:0","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"0xf"},"src":"232309:16:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"232298:28:0","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"232286:40:0","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":15998,"nodeType":"ExpressionStatement","src":"232286:40:0"},{"expression":{"id":16001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15999,"name":"localValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15949,"src":"232340:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":16000,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"232355:1:0","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"232340:16:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16002,"nodeType":"ExpressionStatement","src":"232340:16:0"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15983,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15976,"src":"232260:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":15984,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"232264:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"232260:5:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16004,"initializationExpression":{"assignments":[15976],"declarations":[{"constant":false,"id":15976,"mutability":"mutable","name":"i","nameLocation":"232240:1:0","nodeType":"VariableDeclaration","scope":16004,"src":"232232:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15975,"name":"uint256","nodeType":"ElementaryTypeName","src":"232232:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15982,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":15977,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"232244:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":15978,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15943,"src":"232248:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"232244:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":15980,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"232257:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"232244:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"232232:26:0"},"isSimpleCounterLoop":false,"loopExpression":{"expression":{"id":15987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"232267:3:0","subExpression":{"id":15986,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15976,"src":"232269:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15988,"nodeType":"ExpressionStatement","src":"232267:3:0"},"nodeType":"ForStatement","src":"232227:140:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16005,"name":"localValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15949,"src":"232380:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":16006,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"232394:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"232380:15:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16014,"nodeType":"IfStatement","src":"232376:96:0","trueBody":{"id":16013,"nodeType":"Block","src":"232397:75:0","statements":[{"errorCall":{"arguments":[{"id":16009,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15941,"src":"232447:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16010,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15943,"src":"232454:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16008,"name":"StringsInsufficientHexLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15844,"src":"232418:28:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (uint256,uint256) pure returns (error)"}},"id":16011,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"232418:43:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":16012,"nodeType":"RevertStatement","src":"232411:50:0"}]}},{"expression":{"arguments":[{"id":16017,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15953,"src":"232495:6:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16016,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"232488:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":16015,"name":"string","nodeType":"ElementaryTypeName","src":"232488:6:0","typeDescriptions":{}}},"id":16018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"232488:14:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":15947,"id":16019,"nodeType":"Return","src":"232481:21:0"}]},"documentation":{"id":15939,"nodeType":"StructuredDocumentation","src":"231867:112:0","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length."},"id":16021,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"231993:11:0","nodeType":"FunctionDefinition","parameters":{"id":15944,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15941,"mutability":"mutable","name":"value","nameLocation":"232013:5:0","nodeType":"VariableDeclaration","scope":16021,"src":"232005:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15940,"name":"uint256","nodeType":"ElementaryTypeName","src":"232005:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15943,"mutability":"mutable","name":"length","nameLocation":"232028:6:0","nodeType":"VariableDeclaration","scope":16021,"src":"232020:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15942,"name":"uint256","nodeType":"ElementaryTypeName","src":"232020:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"232004:31:0"},"returnParameters":{"id":15947,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15946,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16021,"src":"232059:13:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15945,"name":"string","nodeType":"ElementaryTypeName","src":"232059:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"232058:15:0"},"scope":16079,"src":"231984:525:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16040,"nodeType":"Block","src":"232741:75:0","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":16034,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16024,"src":"232786:4:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16033,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"232778:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":16032,"name":"uint160","nodeType":"ElementaryTypeName","src":"232778:7:0","typeDescriptions":{}}},"id":16035,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"232778:13:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":16031,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"232770:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":16030,"name":"uint256","nodeType":"ElementaryTypeName","src":"232770:7:0","typeDescriptions":{}}},"id":16036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"232770:22:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16037,"name":"ADDRESS_LENGTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14009,"src":"232794:14:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":16029,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[15938,16021,16041],"referencedDeclaration":16021,"src":"232758:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":16038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"232758:51:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":16028,"id":16039,"nodeType":"Return","src":"232751:58:0"}]},"documentation":{"id":16022,"nodeType":"StructuredDocumentation","src":"232515:148:0","text":" @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal\n representation."},"id":16041,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"232677:11:0","nodeType":"FunctionDefinition","parameters":{"id":16025,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16024,"mutability":"mutable","name":"addr","nameLocation":"232697:4:0","nodeType":"VariableDeclaration","scope":16041,"src":"232689:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16023,"name":"address","nodeType":"ElementaryTypeName","src":"232689:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"232688:14:0"},"returnParameters":{"id":16028,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16027,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16041,"src":"232726:13:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16026,"name":"string","nodeType":"ElementaryTypeName","src":"232726:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"232725:15:0"},"scope":16079,"src":"232668:148:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16077,"nodeType":"Block","src":"232971:104:0","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":16075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":16053,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16044,"src":"232994:1:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":16052,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"232988:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":16051,"name":"bytes","nodeType":"ElementaryTypeName","src":"232988:5:0","typeDescriptions":{}}},"id":16054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"232988:8:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":16055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"232997:6:0","memberName":"length","nodeType":"MemberAccess","src":"232988:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":16058,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16046,"src":"233013:1:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":16057,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"233007:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":16056,"name":"bytes","nodeType":"ElementaryTypeName","src":"233007:5:0","typeDescriptions":{}}},"id":16059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"233007:8:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":16060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"233016:6:0","memberName":"length","nodeType":"MemberAccess","src":"233007:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"232988:34:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":16074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":16065,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16044,"src":"233042:1:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":16064,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"233036:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":16063,"name":"bytes","nodeType":"ElementaryTypeName","src":"233036:5:0","typeDescriptions":{}}},"id":16066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"233036:8:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16062,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"233026:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":16067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"233026:19:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"id":16071,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16046,"src":"233065:1:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":16070,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"233059:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":16069,"name":"bytes","nodeType":"ElementaryTypeName","src":"233059:5:0","typeDescriptions":{}}},"id":16072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"233059:8:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16068,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"233049:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":16073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"233049:19:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"233026:42:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"232988:80:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":16050,"id":16076,"nodeType":"Return","src":"232981:87:0"}]},"documentation":{"id":16042,"nodeType":"StructuredDocumentation","src":"232822:66:0","text":" @dev Returns true if the two strings are equal."},"id":16078,"implemented":true,"kind":"function","modifiers":[],"name":"equal","nameLocation":"232902:5:0","nodeType":"FunctionDefinition","parameters":{"id":16047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16044,"mutability":"mutable","name":"a","nameLocation":"232922:1:0","nodeType":"VariableDeclaration","scope":16078,"src":"232908:15:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16043,"name":"string","nodeType":"ElementaryTypeName","src":"232908:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16046,"mutability":"mutable","name":"b","nameLocation":"232939:1:0","nodeType":"VariableDeclaration","scope":16078,"src":"232925:15:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16045,"name":"string","nodeType":"ElementaryTypeName","src":"232925:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"232907:34:0"},"returnParameters":{"id":16050,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16049,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16078,"src":"232965:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16048,"name":"bool","nodeType":"ElementaryTypeName","src":"232965:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"232964:6:0"},"scope":16079,"src":"232893:182:0","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":20815,"src":"206574:26503:0","usedErrors":[15844],"usedEvents":[]},{"abstract":false,"baseContracts":[],"canonicalName":"ERC1967Utils","contractDependencies":[],"contractKind":"library","documentation":{"id":16080,"nodeType":"StructuredDocumentation","src":"233272:154:0","text":" @dev This abstract contract provides getters and event emitting update functions for\n https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots."},"fullyImplemented":true,"id":16374,"linearizedBaseContracts":[16374],"name":"ERC1967Utils","nameLocation":"233435:12:0","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":16081,"nodeType":"StructuredDocumentation","src":"233638:68:0","text":" @dev Emitted when the implementation is upgraded."},"eventSelector":"bc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","id":16085,"name":"Upgraded","nameLocation":"233717:8:0","nodeType":"EventDefinition","parameters":{"id":16084,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16083,"indexed":true,"mutability":"mutable","name":"implementation","nameLocation":"233742:14:0","nodeType":"VariableDeclaration","scope":16085,"src":"233726:30:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16082,"name":"address","nodeType":"ElementaryTypeName","src":"233726:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"233725:32:0"},"src":"233711:47:0"},{"anonymous":false,"documentation":{"id":16086,"nodeType":"StructuredDocumentation","src":"233764:67:0","text":" @dev Emitted when the admin account has changed."},"eventSelector":"7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f","id":16092,"name":"AdminChanged","nameLocation":"233842:12:0","nodeType":"EventDefinition","parameters":{"id":16091,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16088,"indexed":false,"mutability":"mutable","name":"previousAdmin","nameLocation":"233863:13:0","nodeType":"VariableDeclaration","scope":16092,"src":"233855:21:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16087,"name":"address","nodeType":"ElementaryTypeName","src":"233855:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16090,"indexed":false,"mutability":"mutable","name":"newAdmin","nameLocation":"233886:8:0","nodeType":"VariableDeclaration","scope":16092,"src":"233878:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16089,"name":"address","nodeType":"ElementaryTypeName","src":"233878:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"233854:41:0"},"src":"233836:60:0"},{"anonymous":false,"documentation":{"id":16093,"nodeType":"StructuredDocumentation","src":"233902:59:0","text":" @dev Emitted when the beacon is changed."},"eventSelector":"1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e","id":16097,"name":"BeaconUpgraded","nameLocation":"233972:14:0","nodeType":"EventDefinition","parameters":{"id":16096,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16095,"indexed":true,"mutability":"mutable","name":"beacon","nameLocation":"234003:6:0","nodeType":"VariableDeclaration","scope":16097,"src":"233987:22:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16094,"name":"address","nodeType":"ElementaryTypeName","src":"233987:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"233986:24:0"},"src":"233966:45:0"},{"constant":true,"documentation":{"id":16098,"nodeType":"StructuredDocumentation","src":"234017:170:0","text":" @dev Storage slot with the address of the current implementation.\n This is the keccak-256 hash of \"eip1967.proxy.implementation\" subtracted by 1."},"id":16101,"mutability":"constant","name":"IMPLEMENTATION_SLOT","nameLocation":"234283:19:0","nodeType":"VariableDeclaration","scope":16374,"src":"234257:114:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16099,"name":"bytes32","nodeType":"ElementaryTypeName","src":"234257:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307833363038393461313362613161333231303636376338323834393264623938646361336532303736636333373335613932306133636135303564333832626263","id":16100,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"234305:66:0","typeDescriptions":{"typeIdentifier":"t_rational_24440054405305269366569402256811496959409073762505157381672968839269610695612_by_1","typeString":"int_const 2444...(69 digits omitted)...5612"},"value":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"},"visibility":"internal"},{"documentation":{"id":16102,"nodeType":"StructuredDocumentation","src":"234378:69:0","text":" @dev The `implementation` of the proxy is invalid."},"errorSelector":"4c9c8ce3","id":16106,"name":"ERC1967InvalidImplementation","nameLocation":"234458:28:0","nodeType":"ErrorDefinition","parameters":{"id":16105,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16104,"mutability":"mutable","name":"implementation","nameLocation":"234495:14:0","nodeType":"VariableDeclaration","scope":16106,"src":"234487:22:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16103,"name":"address","nodeType":"ElementaryTypeName","src":"234487:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"234486:24:0"},"src":"234452:59:0"},{"documentation":{"id":16107,"nodeType":"StructuredDocumentation","src":"234517:60:0","text":" @dev The `admin` of the proxy is invalid."},"errorSelector":"62e77ba2","id":16111,"name":"ERC1967InvalidAdmin","nameLocation":"234588:19:0","nodeType":"ErrorDefinition","parameters":{"id":16110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16109,"mutability":"mutable","name":"admin","nameLocation":"234616:5:0","nodeType":"VariableDeclaration","scope":16111,"src":"234608:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16108,"name":"address","nodeType":"ElementaryTypeName","src":"234608:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"234607:15:0"},"src":"234582:41:0"},{"documentation":{"id":16112,"nodeType":"StructuredDocumentation","src":"234629:61:0","text":" @dev The `beacon` of the proxy is invalid."},"errorSelector":"64ced0ec","id":16116,"name":"ERC1967InvalidBeacon","nameLocation":"234701:20:0","nodeType":"ErrorDefinition","parameters":{"id":16115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16114,"mutability":"mutable","name":"beacon","nameLocation":"234730:6:0","nodeType":"VariableDeclaration","scope":16116,"src":"234722:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16113,"name":"address","nodeType":"ElementaryTypeName","src":"234722:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"234721:16:0"},"src":"234695:43:0"},{"documentation":{"id":16117,"nodeType":"StructuredDocumentation","src":"234744:82:0","text":" @dev An upgrade function sees `msg.value > 0` that may be lost."},"errorSelector":"b398979f","id":16119,"name":"ERC1967NonPayable","nameLocation":"234837:17:0","nodeType":"ErrorDefinition","parameters":{"id":16118,"nodeType":"ParameterList","parameters":[],"src":"234854:2:0"},"src":"234831:26:0"},{"body":{"id":16131,"nodeType":"Block","src":"234996:77:0","statements":[{"expression":{"expression":{"arguments":[{"id":16127,"name":"IMPLEMENTATION_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16101,"src":"235040:19:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":16125,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12607,"src":"235013:11:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$12607_$","typeString":"type(library StorageSlot)"}},"id":16126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"235025:14:0","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":12529,"src":"235013:26:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$12503_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":16128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"235013:47:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$12503_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":16129,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"235061:5:0","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":12502,"src":"235013:53:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":16124,"id":16130,"nodeType":"Return","src":"235006:60:0"}]},"documentation":{"id":16120,"nodeType":"StructuredDocumentation","src":"234863:67:0","text":" @dev Returns the current implementation address."},"id":16132,"implemented":true,"kind":"function","modifiers":[],"name":"getImplementation","nameLocation":"234944:17:0","nodeType":"FunctionDefinition","parameters":{"id":16121,"nodeType":"ParameterList","parameters":[],"src":"234961:2:0"},"returnParameters":{"id":16124,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16123,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16132,"src":"234987:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16122,"name":"address","nodeType":"ElementaryTypeName","src":"234987:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"234986:9:0"},"scope":16374,"src":"234935:138:0","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":16158,"nodeType":"Block","src":"235227:218:0","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":16138,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16135,"src":"235241:17:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"235259:4:0","memberName":"code","nodeType":"MemberAccess","src":"235241:22:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":16140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"235264:6:0","memberName":"length","nodeType":"MemberAccess","src":"235241:29:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":16141,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"235274:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"235241:34:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16148,"nodeType":"IfStatement","src":"235237:119:0","trueBody":{"id":16147,"nodeType":"Block","src":"235277:79:0","statements":[{"errorCall":{"arguments":[{"id":16144,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16135,"src":"235327:17:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16143,"name":"ERC1967InvalidImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16106,"src":"235298:28:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":16145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"235298:47:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":16146,"nodeType":"RevertStatement","src":"235291:54:0"}]}},{"expression":{"id":16156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":16152,"name":"IMPLEMENTATION_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16101,"src":"235392:19:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":16149,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12607,"src":"235365:11:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$12607_$","typeString":"type(library StorageSlot)"}},"id":16151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"235377:14:0","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":12529,"src":"235365:26:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$12503_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":16153,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"235365:47:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$12503_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":16154,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"235413:5:0","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":12502,"src":"235365:53:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":16155,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16135,"src":"235421:17:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"235365:73:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16157,"nodeType":"ExpressionStatement","src":"235365:73:0"}]},"documentation":{"id":16133,"nodeType":"StructuredDocumentation","src":"235079:80:0","text":" @dev Stores a new address in the EIP1967 implementation slot."},"id":16159,"implemented":true,"kind":"function","modifiers":[],"name":"_setImplementation","nameLocation":"235173:18:0","nodeType":"FunctionDefinition","parameters":{"id":16136,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16135,"mutability":"mutable","name":"newImplementation","nameLocation":"235200:17:0","nodeType":"VariableDeclaration","scope":16159,"src":"235192:25:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16134,"name":"address","nodeType":"ElementaryTypeName","src":"235192:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"235191:27:0"},"returnParameters":{"id":16137,"nodeType":"ParameterList","parameters":[],"src":"235227:0:0"},"scope":16374,"src":"235164:281:0","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":16192,"nodeType":"Block","src":"235838:254:0","statements":[{"expression":{"arguments":[{"id":16168,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16162,"src":"235867:17:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16167,"name":"_setImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16159,"src":"235848:18:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":16169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"235848:37:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16170,"nodeType":"ExpressionStatement","src":"235848:37:0"},{"eventCall":{"arguments":[{"id":16172,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16162,"src":"235909:17:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16171,"name":"Upgraded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16085,"src":"235900:8:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":16173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"235900:27:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16174,"nodeType":"EmitStatement","src":"235895:32:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16175,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16164,"src":"235942:4:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":16176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"235947:6:0","memberName":"length","nodeType":"MemberAccess","src":"235942:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":16177,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"235956:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"235942:15:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":16190,"nodeType":"Block","src":"236043:43:0","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":16187,"name":"_checkNonPayable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16373,"src":"236057:16:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":16188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"236057:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16189,"nodeType":"ExpressionStatement","src":"236057:18:0"}]},"id":16191,"nodeType":"IfStatement","src":"235938:148:0","trueBody":{"id":16186,"nodeType":"Block","src":"235959:78:0","statements":[{"expression":{"arguments":[{"id":16182,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16162,"src":"236002:17:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16183,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16164,"src":"236021:4:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":16179,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12471,"src":"235973:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$12471_$","typeString":"type(library Address)"}},"id":16181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"235981:20:0","memberName":"functionDelegateCall","nodeType":"MemberAccess","referencedDeclaration":12390,"src":"235973:28:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory) returns (bytes memory)"}},"id":16184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"235973:53:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":16185,"nodeType":"ExpressionStatement","src":"235973:53:0"}]}}]},"documentation":{"id":16160,"nodeType":"StructuredDocumentation","src":"235451:301:0","text":" @dev Performs implementation upgrade with additional setup call if data is nonempty.\n This function is payable only if the setup call is performed, otherwise `msg.value` is rejected\n to avoid stuck value in the contract.\n Emits an {IERC1967-Upgraded} event."},"id":16193,"implemented":true,"kind":"function","modifiers":[],"name":"upgradeToAndCall","nameLocation":"235766:16:0","nodeType":"FunctionDefinition","parameters":{"id":16165,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16162,"mutability":"mutable","name":"newImplementation","nameLocation":"235791:17:0","nodeType":"VariableDeclaration","scope":16193,"src":"235783:25:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16161,"name":"address","nodeType":"ElementaryTypeName","src":"235783:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16164,"mutability":"mutable","name":"data","nameLocation":"235823:4:0","nodeType":"VariableDeclaration","scope":16193,"src":"235810:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":16163,"name":"bytes","nodeType":"ElementaryTypeName","src":"235810:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"235782:46:0"},"returnParameters":{"id":16166,"nodeType":"ParameterList","parameters":[],"src":"235838:0:0"},"scope":16374,"src":"235757:335:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"constant":true,"documentation":{"id":16194,"nodeType":"StructuredDocumentation","src":"236098:145:0","text":" @dev Storage slot with the admin of the contract.\n This is the keccak-256 hash of \"eip1967.proxy.admin\" subtracted by 1."},"id":16197,"mutability":"constant","name":"ADMIN_SLOT","nameLocation":"236339:10:0","nodeType":"VariableDeclaration","scope":16374,"src":"236313:105:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16195,"name":"bytes32","nodeType":"ElementaryTypeName","src":"236313:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307862353331323736383461353638623331373361653133623966386136303136653234336536336236653865653131373864366137313738353062356436313033","id":16196,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"236352:66:0","typeDescriptions":{"typeIdentifier":"t_rational_81955473079516046949633743016697847541294818689821282749996681496272635257091_by_1","typeString":"int_const 8195...(69 digits omitted)...7091"},"value":"0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103"},"visibility":"internal"},{"body":{"id":16209,"nodeType":"Block","src":"236822:68:0","statements":[{"expression":{"expression":{"arguments":[{"id":16205,"name":"ADMIN_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16197,"src":"236866:10:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":16203,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12607,"src":"236839:11:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$12607_$","typeString":"type(library StorageSlot)"}},"id":16204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"236851:14:0","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":12529,"src":"236839:26:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$12503_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":16206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"236839:38:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$12503_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":16207,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"236878:5:0","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":12502,"src":"236839:44:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":16202,"id":16208,"nodeType":"Return","src":"236832:51:0"}]},"documentation":{"id":16198,"nodeType":"StructuredDocumentation","src":"236425:340:0","text":" @dev Returns the current admin.\n TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using\n the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`"},"id":16210,"implemented":true,"kind":"function","modifiers":[],"name":"getAdmin","nameLocation":"236779:8:0","nodeType":"FunctionDefinition","parameters":{"id":16199,"nodeType":"ParameterList","parameters":[],"src":"236787:2:0"},"returnParameters":{"id":16202,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16201,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16210,"src":"236813:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16200,"name":"address","nodeType":"ElementaryTypeName","src":"236813:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"236812:9:0"},"scope":16374,"src":"236770:120:0","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":16240,"nodeType":"Block","src":"237017:172:0","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":16221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16216,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16213,"src":"237031:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":16219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"237051:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":16218,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"237043:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16217,"name":"address","nodeType":"ElementaryTypeName","src":"237043:7:0","typeDescriptions":{}}},"id":16220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"237043:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"237031:22:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16230,"nodeType":"IfStatement","src":"237027:91:0","trueBody":{"id":16229,"nodeType":"Block","src":"237055:63:0","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":16225,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"237104:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":16224,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"237096:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16223,"name":"address","nodeType":"ElementaryTypeName","src":"237096:7:0","typeDescriptions":{}}},"id":16226,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"237096:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16222,"name":"ERC1967InvalidAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16111,"src":"237076:19:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":16227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"237076:31:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":16228,"nodeType":"RevertStatement","src":"237069:38:0"}]}},{"expression":{"id":16238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":16234,"name":"ADMIN_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16197,"src":"237154:10:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":16231,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12607,"src":"237127:11:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$12607_$","typeString":"type(library StorageSlot)"}},"id":16233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"237139:14:0","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":12529,"src":"237127:26:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$12503_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":16235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"237127:38:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$12503_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":16236,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"237166:5:0","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":12502,"src":"237127:44:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":16237,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16213,"src":"237174:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"237127:55:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16239,"nodeType":"ExpressionStatement","src":"237127:55:0"}]},"documentation":{"id":16211,"nodeType":"StructuredDocumentation","src":"236896:71:0","text":" @dev Stores a new address in the EIP1967 admin slot."},"id":16241,"implemented":true,"kind":"function","modifiers":[],"name":"_setAdmin","nameLocation":"236981:9:0","nodeType":"FunctionDefinition","parameters":{"id":16214,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16213,"mutability":"mutable","name":"newAdmin","nameLocation":"236999:8:0","nodeType":"VariableDeclaration","scope":16241,"src":"236991:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16212,"name":"address","nodeType":"ElementaryTypeName","src":"236991:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"236990:18:0"},"returnParameters":{"id":16215,"nodeType":"ParameterList","parameters":[],"src":"237017:0:0"},"scope":16374,"src":"236972:217:0","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":16257,"nodeType":"Block","src":"237357:85:0","statements":[{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":16248,"name":"getAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16210,"src":"237385:8:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":16249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"237385:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16250,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16244,"src":"237397:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":16247,"name":"AdminChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16092,"src":"237372:12:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":16251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"237372:34:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16252,"nodeType":"EmitStatement","src":"237367:39:0"},{"expression":{"arguments":[{"id":16254,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16244,"src":"237426:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16253,"name":"_setAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16241,"src":"237416:9:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":16255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"237416:19:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16256,"nodeType":"ExpressionStatement","src":"237416:19:0"}]},"documentation":{"id":16242,"nodeType":"StructuredDocumentation","src":"237195:109:0","text":" @dev Changes the admin of the proxy.\n Emits an {IERC1967-AdminChanged} event."},"id":16258,"implemented":true,"kind":"function","modifiers":[],"name":"changeAdmin","nameLocation":"237318:11:0","nodeType":"FunctionDefinition","parameters":{"id":16245,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16244,"mutability":"mutable","name":"newAdmin","nameLocation":"237338:8:0","nodeType":"VariableDeclaration","scope":16258,"src":"237330:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16243,"name":"address","nodeType":"ElementaryTypeName","src":"237330:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"237329:18:0"},"returnParameters":{"id":16246,"nodeType":"ParameterList","parameters":[],"src":"237357:0:0"},"scope":16374,"src":"237309:133:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"constant":true,"documentation":{"id":16259,"nodeType":"StructuredDocumentation","src":"237448:201:0","text":" @dev The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy.\n This is the keccak-256 hash of \"eip1967.proxy.beacon\" subtracted by 1."},"id":16262,"mutability":"constant","name":"BEACON_SLOT","nameLocation":"237745:11:0","nodeType":"VariableDeclaration","scope":16374,"src":"237719:106:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16260,"name":"bytes32","nodeType":"ElementaryTypeName","src":"237719:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307861336630616437346535343233616562666438306433656634333436353738333335613961373261656165653539666636636233353832623335313333643530","id":16261,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"237759:66:0","typeDescriptions":{"typeIdentifier":"t_rational_74152234768234802001998023604048924213078445070507226371336425913862612794704_by_1","typeString":"int_const 7415...(69 digits omitted)...4704"},"value":"0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50"},"visibility":"internal"},{"body":{"id":16274,"nodeType":"Block","src":"237941:69:0","statements":[{"expression":{"expression":{"arguments":[{"id":16270,"name":"BEACON_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16262,"src":"237985:11:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":16268,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12607,"src":"237958:11:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$12607_$","typeString":"type(library StorageSlot)"}},"id":16269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"237970:14:0","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":12529,"src":"237958:26:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$12503_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":16271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"237958:39:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$12503_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":16272,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"237998:5:0","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":12502,"src":"237958:45:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":16267,"id":16273,"nodeType":"Return","src":"237951:52:0"}]},"documentation":{"id":16263,"nodeType":"StructuredDocumentation","src":"237832:51:0","text":" @dev Returns the current beacon."},"id":16275,"implemented":true,"kind":"function","modifiers":[],"name":"getBeacon","nameLocation":"237897:9:0","nodeType":"FunctionDefinition","parameters":{"id":16264,"nodeType":"ParameterList","parameters":[],"src":"237906:2:0"},"returnParameters":{"id":16267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16266,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16275,"src":"237932:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16265,"name":"address","nodeType":"ElementaryTypeName","src":"237932:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"237931:9:0"},"scope":16374,"src":"237888:122:0","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":16320,"nodeType":"Block","src":"238139:390:0","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":16281,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16278,"src":"238153:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"238163:4:0","memberName":"code","nodeType":"MemberAccess","src":"238153:14:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":16283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"238168:6:0","memberName":"length","nodeType":"MemberAccess","src":"238153:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":16284,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"238178:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"238153:26:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16291,"nodeType":"IfStatement","src":"238149:95:0","trueBody":{"id":16290,"nodeType":"Block","src":"238181:63:0","statements":[{"errorCall":{"arguments":[{"id":16287,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16278,"src":"238223:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16286,"name":"ERC1967InvalidBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16116,"src":"238202:20:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":16288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"238202:31:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":16289,"nodeType":"RevertStatement","src":"238195:38:0"}]}},{"expression":{"id":16299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":16295,"name":"BEACON_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16262,"src":"238281:11:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":16292,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12607,"src":"238254:11:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$12607_$","typeString":"type(library StorageSlot)"}},"id":16294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"238266:14:0","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":12529,"src":"238254:26:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$12503_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":16296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"238254:39:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$12503_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":16297,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"238294:5:0","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":12502,"src":"238254:45:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":16298,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16278,"src":"238302:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"238254:57:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16300,"nodeType":"ExpressionStatement","src":"238254:57:0"},{"assignments":[16302],"declarations":[{"constant":false,"id":16302,"mutability":"mutable","name":"beaconImplementation","nameLocation":"238330:20:0","nodeType":"VariableDeclaration","scope":16320,"src":"238322:28:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16301,"name":"address","nodeType":"ElementaryTypeName","src":"238322:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":16308,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":16304,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16278,"src":"238361:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16303,"name":"IBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12220,"src":"238353:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBeacon_$12220_$","typeString":"type(contract IBeacon)"}},"id":16305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"238353:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBeacon_$12220","typeString":"contract IBeacon"}},"id":16306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"238372:14:0","memberName":"implementation","nodeType":"MemberAccess","referencedDeclaration":12219,"src":"238353:33:0","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":16307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"238353:35:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"238322:66:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":16309,"name":"beaconImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16302,"src":"238402:20:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"238423:4:0","memberName":"code","nodeType":"MemberAccess","src":"238402:25:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":16311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"238428:6:0","memberName":"length","nodeType":"MemberAccess","src":"238402:32:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":16312,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"238438:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"238402:37:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16319,"nodeType":"IfStatement","src":"238398:125:0","trueBody":{"id":16318,"nodeType":"Block","src":"238441:82:0","statements":[{"errorCall":{"arguments":[{"id":16315,"name":"beaconImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16302,"src":"238491:20:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16314,"name":"ERC1967InvalidImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16106,"src":"238462:28:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":16316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"238462:50:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":16317,"nodeType":"RevertStatement","src":"238455:57:0"}]}}]},"documentation":{"id":16276,"nodeType":"StructuredDocumentation","src":"238016:71:0","text":" @dev Stores a new beacon in the EIP1967 beacon slot."},"id":16321,"implemented":true,"kind":"function","modifiers":[],"name":"_setBeacon","nameLocation":"238101:10:0","nodeType":"FunctionDefinition","parameters":{"id":16279,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16278,"mutability":"mutable","name":"newBeacon","nameLocation":"238120:9:0","nodeType":"VariableDeclaration","scope":16321,"src":"238112:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16277,"name":"address","nodeType":"ElementaryTypeName","src":"238112:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"238111:19:0"},"returnParameters":{"id":16280,"nodeType":"ParameterList","parameters":[],"src":"238139:0:0"},"scope":16374,"src":"238092:437:0","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":16358,"nodeType":"Block","src":"239133:254:0","statements":[{"expression":{"arguments":[{"id":16330,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16324,"src":"239154:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16329,"name":"_setBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16321,"src":"239143:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":16331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"239143:21:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16332,"nodeType":"ExpressionStatement","src":"239143:21:0"},{"eventCall":{"arguments":[{"id":16334,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16324,"src":"239194:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16333,"name":"BeaconUpgraded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16097,"src":"239179:14:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":16335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"239179:25:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16336,"nodeType":"EmitStatement","src":"239174:30:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16337,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16326,"src":"239219:4:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":16338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"239224:6:0","memberName":"length","nodeType":"MemberAccess","src":"239219:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":16339,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"239233:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"239219:15:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":16356,"nodeType":"Block","src":"239338:43:0","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":16353,"name":"_checkNonPayable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16373,"src":"239352:16:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":16354,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"239352:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16355,"nodeType":"ExpressionStatement","src":"239352:18:0"}]},"id":16357,"nodeType":"IfStatement","src":"239215:166:0","trueBody":{"id":16352,"nodeType":"Block","src":"239236:96:0","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":16345,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16324,"src":"239287:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16344,"name":"IBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12220,"src":"239279:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBeacon_$12220_$","typeString":"type(contract IBeacon)"}},"id":16346,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"239279:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBeacon_$12220","typeString":"contract IBeacon"}},"id":16347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"239298:14:0","memberName":"implementation","nodeType":"MemberAccess","referencedDeclaration":12219,"src":"239279:33:0","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":16348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"239279:35:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16349,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16326,"src":"239316:4:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":16341,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12471,"src":"239250:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$12471_$","typeString":"type(library Address)"}},"id":16343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"239258:20:0","memberName":"functionDelegateCall","nodeType":"MemberAccess","referencedDeclaration":12390,"src":"239250:28:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory) returns (bytes memory)"}},"id":16350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"239250:71:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":16351,"nodeType":"ExpressionStatement","src":"239250:71:0"}]}}]},"documentation":{"id":16322,"nodeType":"StructuredDocumentation","src":"238535:514:0","text":" @dev Change the beacon and trigger a setup call if data is nonempty.\n This function is payable only if the setup call is performed, otherwise `msg.value` is rejected\n to avoid stuck value in the contract.\n Emits an {IERC1967-BeaconUpgraded} event.\n CAUTION: Invoking this function has no effect on an instance of {BeaconProxy} since v5, since\n it uses an immutable beacon without looking at the value of the ERC-1967 beacon slot for\n efficiency."},"id":16359,"implemented":true,"kind":"function","modifiers":[],"name":"upgradeBeaconToAndCall","nameLocation":"239063:22:0","nodeType":"FunctionDefinition","parameters":{"id":16327,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16324,"mutability":"mutable","name":"newBeacon","nameLocation":"239094:9:0","nodeType":"VariableDeclaration","scope":16359,"src":"239086:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16323,"name":"address","nodeType":"ElementaryTypeName","src":"239086:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16326,"mutability":"mutable","name":"data","nameLocation":"239118:4:0","nodeType":"VariableDeclaration","scope":16359,"src":"239105:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":16325,"name":"bytes","nodeType":"ElementaryTypeName","src":"239105:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"239085:38:0"},"returnParameters":{"id":16328,"nodeType":"ParameterList","parameters":[],"src":"239133:0:0"},"scope":16374,"src":"239054:333:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":16372,"nodeType":"Block","src":"239612:86:0","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16363,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"239626:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":16364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"239630:5:0","memberName":"value","nodeType":"MemberAccess","src":"239626:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":16365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"239638:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"239626:13:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16371,"nodeType":"IfStatement","src":"239622:70:0","trueBody":{"id":16370,"nodeType":"Block","src":"239641:51:0","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":16367,"name":"ERC1967NonPayable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16119,"src":"239662:17:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":16368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"239662:19:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":16369,"nodeType":"RevertStatement","src":"239655:26:0"}]}}]},"documentation":{"id":16360,"nodeType":"StructuredDocumentation","src":"239393:178:0","text":" @dev Reverts if `msg.value` is not zero. It can be used to avoid `msg.value` stuck in the contract\n if an upgrade doesn't perform an initialization call."},"id":16373,"implemented":true,"kind":"function","modifiers":[],"name":"_checkNonPayable","nameLocation":"239585:16:0","nodeType":"FunctionDefinition","parameters":{"id":16361,"nodeType":"ParameterList","parameters":[],"src":"239601:2:0"},"returnParameters":{"id":16362,"nodeType":"ParameterList","parameters":[],"src":"239612:0:0"},"scope":16374,"src":"239576:122:0","stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"scope":20815,"src":"233427:6273:0","usedErrors":[16106,16111,16116,16119],"usedEvents":[16085,16092,16097]},{"abstract":false,"baseContracts":[{"baseName":{"id":16376,"name":"IBeacon","nameLocations":["240254:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":12220,"src":"240254:7:0"},"id":16377,"nodeType":"InheritanceSpecifier","src":"240254:7:0"},{"baseName":{"id":16378,"name":"Ownable","nameLocations":["240263:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":14002,"src":"240263:7:0"},"id":16379,"nodeType":"InheritanceSpecifier","src":"240263:7:0"}],"canonicalName":"UpgradeableBeacon","contractDependencies":[],"contractKind":"contract","documentation":{"id":16375,"nodeType":"StructuredDocumentation","src":"239903:320:0","text":" @dev This contract is used in conjunction with one or more instances of {BeaconProxy} to determine their\n implementation contract, which is where they will delegate all function calls.\n An owner is able to change the implementation the beacon points to, thus upgrading the proxies that use this beacon."},"fullyImplemented":true,"id":16456,"linearizedBaseContracts":[16456,14002,12499,12220],"name":"UpgradeableBeacon","nameLocation":"240233:17:0","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":16381,"mutability":"mutable","name":"_implementation","nameLocation":"240293:15:0","nodeType":"VariableDeclaration","scope":16456,"src":"240277:31:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16380,"name":"address","nodeType":"ElementaryTypeName","src":"240277:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"documentation":{"id":16382,"nodeType":"StructuredDocumentation","src":"240315:70:0","text":" @dev The `implementation` of the beacon is invalid."},"errorSelector":"847ac564","id":16386,"name":"BeaconInvalidImplementation","nameLocation":"240396:27:0","nodeType":"ErrorDefinition","parameters":{"id":16385,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16384,"mutability":"mutable","name":"implementation","nameLocation":"240432:14:0","nodeType":"VariableDeclaration","scope":16386,"src":"240424:22:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16383,"name":"address","nodeType":"ElementaryTypeName","src":"240424:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"240423:24:0"},"src":"240390:58:0"},{"anonymous":false,"documentation":{"id":16387,"nodeType":"StructuredDocumentation","src":"240454:90:0","text":" @dev Emitted when the implementation returned by the beacon is changed."},"eventSelector":"bc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","id":16391,"name":"Upgraded","nameLocation":"240555:8:0","nodeType":"EventDefinition","parameters":{"id":16390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16389,"indexed":true,"mutability":"mutable","name":"implementation","nameLocation":"240580:14:0","nodeType":"VariableDeclaration","scope":16391,"src":"240564:30:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16388,"name":"address","nodeType":"ElementaryTypeName","src":"240564:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"240563:32:0"},"src":"240549:47:0"},{"body":{"id":16406,"nodeType":"Block","src":"240809:52:0","statements":[{"expression":{"arguments":[{"id":16403,"name":"implementation_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16394,"src":"240838:15:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16402,"name":"_setImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16455,"src":"240819:18:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":16404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"240819:35:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16405,"nodeType":"ExpressionStatement","src":"240819:35:0"}]},"documentation":{"id":16392,"nodeType":"StructuredDocumentation","src":"240602:121:0","text":" @dev Sets the address of the initial implementation, and the initial owner who can upgrade the beacon."},"id":16407,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":16399,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16396,"src":"240795:12:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":16400,"kind":"baseConstructorSpecifier","modifierName":{"id":16398,"name":"Ownable","nameLocations":["240787:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":14002,"src":"240787:7:0"},"nodeType":"ModifierInvocation","src":"240787:21:0"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":16397,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16394,"mutability":"mutable","name":"implementation_","nameLocation":"240748:15:0","nodeType":"VariableDeclaration","scope":16407,"src":"240740:23:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16393,"name":"address","nodeType":"ElementaryTypeName","src":"240740:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16396,"mutability":"mutable","name":"initialOwner","nameLocation":"240773:12:0","nodeType":"VariableDeclaration","scope":16407,"src":"240765:20:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16395,"name":"address","nodeType":"ElementaryTypeName","src":"240765:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"240739:47:0"},"returnParameters":{"id":16401,"nodeType":"ParameterList","parameters":[],"src":"240809:0:0"},"scope":16456,"src":"240728:133:0","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[12219],"body":{"id":16415,"nodeType":"Block","src":"241003:39:0","statements":[{"expression":{"id":16413,"name":"_implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16381,"src":"241020:15:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":16412,"id":16414,"nodeType":"Return","src":"241013:22:0"}]},"documentation":{"id":16408,"nodeType":"StructuredDocumentation","src":"240867:67:0","text":" @dev Returns the current implementation address."},"functionSelector":"5c60da1b","id":16416,"implemented":true,"kind":"function","modifiers":[],"name":"implementation","nameLocation":"240948:14:0","nodeType":"FunctionDefinition","parameters":{"id":16409,"nodeType":"ParameterList","parameters":[],"src":"240962:2:0"},"returnParameters":{"id":16412,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16411,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16416,"src":"240994:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16410,"name":"address","nodeType":"ElementaryTypeName","src":"240994:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"240993:9:0"},"scope":16456,"src":"240939:103:0","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":16428,"nodeType":"Block","src":"241372:54:0","statements":[{"expression":{"arguments":[{"id":16425,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16419,"src":"241401:17:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16424,"name":"_setImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16455,"src":"241382:18:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":16426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"241382:37:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16427,"nodeType":"ExpressionStatement","src":"241382:37:0"}]},"documentation":{"id":16417,"nodeType":"StructuredDocumentation","src":"241048:248:0","text":" @dev Upgrades the beacon to a new implementation.\n Emits an {Upgraded} event.\n Requirements:\n - msg.sender must be the owner of the contract.\n - `newImplementation` must be a contract."},"functionSelector":"3659cfe6","id":16429,"implemented":true,"kind":"function","modifiers":[{"id":16422,"kind":"modifierInvocation","modifierName":{"id":16421,"name":"onlyOwner","nameLocations":["241362:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":13913,"src":"241362:9:0"},"nodeType":"ModifierInvocation","src":"241362:9:0"}],"name":"upgradeTo","nameLocation":"241310:9:0","nodeType":"FunctionDefinition","parameters":{"id":16420,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16419,"mutability":"mutable","name":"newImplementation","nameLocation":"241328:17:0","nodeType":"VariableDeclaration","scope":16429,"src":"241320:25:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16418,"name":"address","nodeType":"ElementaryTypeName","src":"241320:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"241319:27:0"},"returnParameters":{"id":16423,"nodeType":"ParameterList","parameters":[],"src":"241372:0:0"},"scope":16456,"src":"241301:125:0","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":16454,"nodeType":"Block","src":"241664:221:0","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":16435,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16432,"src":"241678:17:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"241696:4:0","memberName":"code","nodeType":"MemberAccess","src":"241678:22:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":16437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"241701:6:0","memberName":"length","nodeType":"MemberAccess","src":"241678:29:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":16438,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"241711:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"241678:34:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16445,"nodeType":"IfStatement","src":"241674:118:0","trueBody":{"id":16444,"nodeType":"Block","src":"241714:78:0","statements":[{"errorCall":{"arguments":[{"id":16441,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16432,"src":"241763:17:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16440,"name":"BeaconInvalidImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16386,"src":"241735:27:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":16442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"241735:46:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":16443,"nodeType":"RevertStatement","src":"241728:53:0"}]}},{"expression":{"id":16448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16446,"name":"_implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16381,"src":"241801:15:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":16447,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16432,"src":"241819:17:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"241801:35:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16449,"nodeType":"ExpressionStatement","src":"241801:35:0"},{"eventCall":{"arguments":[{"id":16451,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16432,"src":"241860:17:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16450,"name":"Upgraded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16391,"src":"241851:8:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":16452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"241851:27:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16453,"nodeType":"EmitStatement","src":"241846:32:0"}]},"documentation":{"id":16430,"nodeType":"StructuredDocumentation","src":"241432:164:0","text":" @dev Sets the implementation contract address for this beacon\n Requirements:\n - `newImplementation` must be a contract."},"id":16455,"implemented":true,"kind":"function","modifiers":[],"name":"_setImplementation","nameLocation":"241610:18:0","nodeType":"FunctionDefinition","parameters":{"id":16433,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16432,"mutability":"mutable","name":"newImplementation","nameLocation":"241637:17:0","nodeType":"VariableDeclaration","scope":16455,"src":"241629:25:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16431,"name":"address","nodeType":"ElementaryTypeName","src":"241629:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"241628:27:0"},"returnParameters":{"id":16434,"nodeType":"ParameterList","parameters":[],"src":"241664:0:0"},"scope":16456,"src":"241601:284:0","stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"scope":20815,"src":"240224:1663:0","usedErrors":[13868,13873,16386],"usedEvents":[13879,16391]},{"canonicalName":"ContractInfo","id":16467,"members":[{"constant":false,"id":16458,"mutability":"mutable","name":"contractPath","nameLocation":"242046:12:0","nodeType":"VariableDeclaration","scope":16467,"src":"242039:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":16457,"name":"string","nodeType":"ElementaryTypeName","src":"242039:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16460,"mutability":"mutable","name":"shortName","nameLocation":"242132:9:0","nodeType":"VariableDeclaration","scope":16467,"src":"242125:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":16459,"name":"string","nodeType":"ElementaryTypeName","src":"242125:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16462,"mutability":"mutable","name":"license","nameLocation":"242243:7:0","nodeType":"VariableDeclaration","scope":16467,"src":"242236:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":16461,"name":"string","nodeType":"ElementaryTypeName","src":"242236:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16464,"mutability":"mutable","name":"sourceCodeHash","nameLocation":"242333:14:0","nodeType":"VariableDeclaration","scope":16467,"src":"242326:21:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":16463,"name":"string","nodeType":"ElementaryTypeName","src":"242326:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16466,"mutability":"mutable","name":"artifactPath","nameLocation":"242464:12:0","nodeType":"VariableDeclaration","scope":16467,"src":"242457:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":16465,"name":"string","nodeType":"ElementaryTypeName","src":"242457:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"name":"ContractInfo","nameLocation":"241957:12:0","nodeType":"StructDefinition","scope":20815,"src":"241950:529:0","visibility":"public"},{"abstract":false,"baseContracts":[],"canonicalName":"Utils","contractDependencies":[],"contractKind":"library","documentation":{"id":16468,"nodeType":"StructuredDocumentation","src":"242481:80:0","text":" @dev Internal helper methods used by Upgrades and Defender libraries."},"fullyImplemented":true,"id":17211,"linearizedBaseContracts":[17211],"name":"Utils","nameLocation":"242570:5:0","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":16471,"mutability":"constant","name":"CHEATCODE_ADDRESS","nameLocation":"242599:17:0","nodeType":"VariableDeclaration","scope":17211,"src":"242582:79:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16469,"name":"address","nodeType":"ElementaryTypeName","src":"242582:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307837313039373039454366613931613830363236664633393839443638663637463562314444313244","id":16470,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"242619:42:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x7109709ECfa91a80626fF3989D68f67F5b1DD12D"},"visibility":"internal"},{"body":{"id":16501,"nodeType":"Block","src":"243237:162:0","statements":[{"assignments":[16483],"declarations":[{"constant":false,"id":16483,"mutability":"mutable","name":"info","nameLocation":"243267:4:0","nodeType":"VariableDeclaration","scope":16501,"src":"243247:24:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ContractInfo_$16467_memory_ptr","typeString":"struct ContractInfo"},"typeName":{"id":16482,"nodeType":"UserDefinedTypeName","pathNode":{"id":16481,"name":"ContractInfo","nameLocations":["243247:12:0"],"nodeType":"IdentifierPath","referencedDeclaration":16467,"src":"243247:12:0"},"referencedDeclaration":16467,"src":"243247:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_ContractInfo_$16467_storage_ptr","typeString":"struct ContractInfo"}},"visibility":"internal"}],"id":16488,"initialValue":{"arguments":[{"id":16485,"name":"contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16474,"src":"243290:12:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16486,"name":"outDir","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16476,"src":"243304:6:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":16484,"name":"getContractInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16640,"src":"243274:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_struct$_ContractInfo_$16467_memory_ptr_$","typeString":"function (string memory,string memory) view returns (struct ContractInfo memory)"}},"id":16487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"243274:37:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ContractInfo_$16467_memory_ptr","typeString":"struct ContractInfo memory"}},"nodeType":"VariableDeclarationStatement","src":"243247:64:0"},{"expression":{"arguments":[{"arguments":[{"expression":{"id":16493,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16483,"src":"243352:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_ContractInfo_$16467_memory_ptr","typeString":"struct ContractInfo memory"}},"id":16494,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"243357:12:0","memberName":"contractPath","nodeType":"MemberAccess","referencedDeclaration":16458,"src":"243352:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"3a","id":16495,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"243371:3:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_96d280011b274d9410ea6c6fc28e2bb076b01d2fac329c49c4b29a719ec4650c","typeString":"literal_string \":\""},"value":":"},{"expression":{"id":16496,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16483,"src":"243376:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_ContractInfo_$16467_memory_ptr","typeString":"struct ContractInfo memory"}},"id":16497,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"243381:9:0","memberName":"shortName","nodeType":"MemberAccess","referencedDeclaration":16460,"src":"243376:14:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_96d280011b274d9410ea6c6fc28e2bb076b01d2fac329c49c4b29a719ec4650c","typeString":"literal_string \":\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":16491,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"243335:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16492,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"243339:12:0","memberName":"encodePacked","nodeType":"MemberAccess","src":"243335:16:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":16498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"243335:56:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16490,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"243328:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":16489,"name":"string","nodeType":"ElementaryTypeName","src":"243328:6:0","typeDescriptions":{}}},"id":16499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"243328:64:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":16480,"id":16500,"nodeType":"Return","src":"243321:71:0"}]},"documentation":{"id":16472,"nodeType":"StructuredDocumentation","src":"242668:423:0","text":" @dev Gets the fully qualified name of a contract.\n @param contractName Contract name in the format \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n @param outDir Foundry output directory to search in if contractName is not an artifact path\n @return Fully qualified name of the contract, e.g. \"src/MyContract.sol:MyContract\""},"id":16502,"implemented":true,"kind":"function","modifiers":[],"name":"getFullyQualifiedName","nameLocation":"243105:21:0","nodeType":"FunctionDefinition","parameters":{"id":16477,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16474,"mutability":"mutable","name":"contractName","nameLocation":"243150:12:0","nodeType":"VariableDeclaration","scope":16502,"src":"243136:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16473,"name":"string","nodeType":"ElementaryTypeName","src":"243136:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16476,"mutability":"mutable","name":"outDir","nameLocation":"243186:6:0","nodeType":"VariableDeclaration","scope":16502,"src":"243172:20:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16475,"name":"string","nodeType":"ElementaryTypeName","src":"243172:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"243126:72:0"},"returnParameters":{"id":16480,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16479,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16502,"src":"243222:13:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16478,"name":"string","nodeType":"ElementaryTypeName","src":"243222:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"243221:15:0"},"scope":17211,"src":"243096:303:0","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":16639,"nodeType":"Block","src":"243977:1262:0","statements":[{"assignments":[16515],"declarations":[{"constant":false,"id":16515,"mutability":"mutable","name":"vm","nameLocation":"243990:2:0","nodeType":"VariableDeclaration","scope":16639,"src":"243987:5:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$4037","typeString":"contract Vm"},"typeName":{"id":16514,"nodeType":"UserDefinedTypeName","pathNode":{"id":16513,"name":"Vm","nameLocations":["243987:2:0"],"nodeType":"IdentifierPath","referencedDeclaration":4037,"src":"243987:2:0"},"referencedDeclaration":4037,"src":"243987:2:0","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$4037","typeString":"contract Vm"}},"visibility":"internal"}],"id":16519,"initialValue":{"arguments":[{"id":16517,"name":"CHEATCODE_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16471,"src":"243998:17:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16516,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4037,"src":"243995:2:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Vm_$4037_$","typeString":"type(contract Vm)"}},"id":16518,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"243995:21:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$4037","typeString":"contract Vm"}},"nodeType":"VariableDeclarationStatement","src":"243987:29:0"},{"assignments":[16522],"declarations":[{"constant":false,"id":16522,"mutability":"mutable","name":"info","nameLocation":"244047:4:0","nodeType":"VariableDeclaration","scope":16639,"src":"244027:24:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ContractInfo_$16467_memory_ptr","typeString":"struct ContractInfo"},"typeName":{"id":16521,"nodeType":"UserDefinedTypeName","pathNode":{"id":16520,"name":"ContractInfo","nameLocations":["244027:12:0"],"nodeType":"IdentifierPath","referencedDeclaration":16467,"src":"244027:12:0"},"referencedDeclaration":16467,"src":"244027:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_ContractInfo_$16467_storage_ptr","typeString":"struct ContractInfo"}},"visibility":"internal"}],"id":16523,"nodeType":"VariableDeclarationStatement","src":"244027:24:0"},{"expression":{"id":16530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":16524,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16522,"src":"244062:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_ContractInfo_$16467_memory_ptr","typeString":"struct ContractInfo memory"}},"id":16526,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"244067:9:0","memberName":"shortName","nodeType":"MemberAccess","referencedDeclaration":16460,"src":"244062:14:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":16528,"name":"contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16505,"src":"244092:12:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":16527,"name":"_toShortName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17033,"src":"244079:12:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":16529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"244079:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"244062:43:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":16531,"nodeType":"ExpressionStatement","src":"244062:43:0"},{"assignments":[16533],"declarations":[{"constant":false,"id":16533,"mutability":"mutable","name":"fileName","nameLocation":"244130:8:0","nodeType":"VariableDeclaration","scope":16639,"src":"244116:22:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16532,"name":"string","nodeType":"ElementaryTypeName","src":"244116:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":16537,"initialValue":{"arguments":[{"id":16535,"name":"contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16505,"src":"244153:12:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":16534,"name":"_toFileName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16919,"src":"244141:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":16536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"244141:25:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"244116:50:0"},{"assignments":[16539],"declarations":[{"constant":false,"id":16539,"mutability":"mutable","name":"artifactPath","nameLocation":"244191:12:0","nodeType":"VariableDeclaration","scope":16639,"src":"244177:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16538,"name":"string","nodeType":"ElementaryTypeName","src":"244177:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":16557,"initialValue":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":16544,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16515,"src":"244243:2:0","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$4037","typeString":"contract Vm"}},"id":16545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"244246:11:0","memberName":"projectRoot","nodeType":"MemberAccess","referencedDeclaration":1002,"src":"244243:14:0","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view external returns (string memory)"}},"id":16546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"244243:16:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"2f","id":16547,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"244261:3:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527","typeString":"literal_string \"/\""},"value":"/"},{"id":16548,"name":"outDir","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16507,"src":"244266:6:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"2f","id":16549,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"244274:3:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527","typeString":"literal_string \"/\""},"value":"/"},{"id":16550,"name":"fileName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16533,"src":"244279:8:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"2f","id":16551,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"244289:3:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527","typeString":"literal_string \"/\""},"value":"/"},{"expression":{"id":16552,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16522,"src":"244294:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_ContractInfo_$16467_memory_ptr","typeString":"struct ContractInfo memory"}},"id":16553,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"244299:9:0","memberName":"shortName","nodeType":"MemberAccess","referencedDeclaration":16460,"src":"244294:14:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"2e6a736f6e","id":16554,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"244310:7:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972","typeString":"literal_string \".json\""},"value":".json"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527","typeString":"literal_string \"/\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527","typeString":"literal_string \"/\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527","typeString":"literal_string \"/\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972","typeString":"literal_string \".json\""}],"expression":{"id":16542,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"244226:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16543,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"244230:12:0","memberName":"encodePacked","nodeType":"MemberAccess","src":"244226:16:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":16555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"244226:92:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16541,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"244206:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":16540,"name":"string","nodeType":"ElementaryTypeName","src":"244206:6:0","typeDescriptions":{}}},"id":16556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"244206:122:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"244177:151:0"},{"assignments":[16559],"declarations":[{"constant":false,"id":16559,"mutability":"mutable","name":"artifactJson","nameLocation":"244352:12:0","nodeType":"VariableDeclaration","scope":16639,"src":"244338:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16558,"name":"string","nodeType":"ElementaryTypeName","src":"244338:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":16564,"initialValue":{"arguments":[{"id":16562,"name":"artifactPath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16539,"src":"244379:12:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":16560,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16515,"src":"244367:2:0","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$4037","typeString":"contract Vm"}},"id":16561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"244370:8:0","memberName":"readFile","nodeType":"MemberAccess","referencedDeclaration":1086,"src":"244367:11:0","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) view external returns (string memory)"}},"id":16563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"244367:25:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"244338:54:0"},{"condition":{"id":16570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"244407:39:0","subExpression":{"arguments":[{"id":16567,"name":"artifactJson","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16559,"src":"244425:12:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"2e617374","id":16568,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"244439:6:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_94ac7d5548e308c1d3c62d3cec2f12ac4e8340c7ba9c9bd462561ccfdd974d98","typeString":"literal_string \".ast\""},"value":".ast"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_94ac7d5548e308c1d3c62d3cec2f12ac4e8340c7ba9c9bd462561ccfdd974d98","typeString":"literal_string \".ast\""}],"expression":{"id":16565,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16515,"src":"244408:2:0","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$4037","typeString":"contract Vm"}},"id":16566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"244411:13:0","memberName":"keyExistsJson","nodeType":"MemberAccess","referencedDeclaration":1184,"src":"244408:16:0","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_bool_$","typeString":"function (string memory,string memory) view external returns (bool)"}},"id":16569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"244408:38:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16584,"nodeType":"IfStatement","src":"244403:351:0","trueBody":{"id":16583,"nodeType":"Block","src":"244448:306:0","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"436f756c64206e6f742066696e642041535420696e20617274696661637420","id":16576,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"244556:33:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_3b0c29718fa0ccfd3c548e0fdf398a1d76969c362a61df53627e5e4f64fab1e8","typeString":"literal_string \"Could not find AST in artifact \""},"value":"Could not find AST in artifact "},{"id":16577,"name":"artifactPath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16539,"src":"244615:12:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"2e205365742060617374203d20747275656020696e20666f756e6472792e746f6d6c","id":16578,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"244653:36:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_dd0e6e5fb2dfed5daf937831e40458612ea423d5675571cc5b1b64fd260d1245","typeString":"literal_string \". Set `ast = true` in foundry.toml\""},"value":". Set `ast = true` in foundry.toml"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3b0c29718fa0ccfd3c548e0fdf398a1d76969c362a61df53627e5e4f64fab1e8","typeString":"literal_string \"Could not find AST in artifact \""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_dd0e6e5fb2dfed5daf937831e40458612ea423d5675571cc5b1b64fd260d1245","typeString":"literal_string \". Set `ast = true` in foundry.toml\""}],"expression":{"id":16574,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"244514:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16575,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"244518:12:0","memberName":"encodePacked","nodeType":"MemberAccess","src":"244514:16:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":16579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"244514:197:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16573,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"244486:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":16572,"name":"string","nodeType":"ElementaryTypeName","src":"244486:6:0","typeDescriptions":{}}},"id":16580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"244486:243:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":16571,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"244462:6:0","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":16581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"244462:281:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16582,"nodeType":"ExpressionStatement","src":"244462:281:0"}]}},{"expression":{"id":16593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":16585,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16522,"src":"244763:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_ContractInfo_$16467_memory_ptr","typeString":"struct ContractInfo memory"}},"id":16587,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"244768:12:0","memberName":"contractPath","nodeType":"MemberAccess","referencedDeclaration":16458,"src":"244763:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":16590,"name":"artifactJson","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16559,"src":"244802:12:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"2e6173742e6162736f6c75746550617468","id":16591,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"244816:19:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_0f3ac612dde053e2dba53344fdd4fdfcedab8a75b1f141a9e2889b50a75851e1","typeString":"literal_string \".ast.absolutePath\""},"value":".ast.absolutePath"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_0f3ac612dde053e2dba53344fdd4fdfcedab8a75b1f141a9e2889b50a75851e1","typeString":"literal_string \".ast.absolutePath\""}],"expression":{"id":16588,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16515,"src":"244783:2:0","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$4037","typeString":"contract Vm"}},"id":16589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"244786:15:0","memberName":"parseJsonString","nodeType":"MemberAccess","referencedDeclaration":1310,"src":"244783:18:0","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory) pure external returns (string memory)"}},"id":16592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"244783:53:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"244763:73:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":16594,"nodeType":"ExpressionStatement","src":"244763:73:0"},{"condition":{"arguments":[{"id":16597,"name":"artifactJson","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16559,"src":"244867:12:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"2e6173742e6c6963656e7365","id":16598,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"244881:14:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_0ec1952d7acb1df54d89163ca83f1d7b360061eb9c0c5c501b4eac52c5c807e4","typeString":"literal_string \".ast.license\""},"value":".ast.license"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_0ec1952d7acb1df54d89163ca83f1d7b360061eb9c0c5c501b4eac52c5c807e4","typeString":"literal_string \".ast.license\""}],"expression":{"id":16595,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16515,"src":"244850:2:0","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$4037","typeString":"contract Vm"}},"id":16596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"244853:13:0","memberName":"keyExistsJson","nodeType":"MemberAccess","referencedDeclaration":1184,"src":"244850:16:0","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_bool_$","typeString":"function (string memory,string memory) view external returns (bool)"}},"id":16599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"244850:46:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16611,"nodeType":"IfStatement","src":"244846:140:0","trueBody":{"id":16610,"nodeType":"Block","src":"244898:88:0","statements":[{"expression":{"id":16608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":16600,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16522,"src":"244912:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_ContractInfo_$16467_memory_ptr","typeString":"struct ContractInfo memory"}},"id":16602,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"244917:7:0","memberName":"license","nodeType":"MemberAccess","referencedDeclaration":16462,"src":"244912:12:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":16605,"name":"artifactJson","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16559,"src":"244946:12:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"2e6173742e6c6963656e7365","id":16606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"244960:14:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_0ec1952d7acb1df54d89163ca83f1d7b360061eb9c0c5c501b4eac52c5c807e4","typeString":"literal_string \".ast.license\""},"value":".ast.license"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_0ec1952d7acb1df54d89163ca83f1d7b360061eb9c0c5c501b4eac52c5c807e4","typeString":"literal_string \".ast.license\""}],"expression":{"id":16603,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16515,"src":"244927:2:0","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$4037","typeString":"contract Vm"}},"id":16604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"244930:15:0","memberName":"parseJsonString","nodeType":"MemberAccess","referencedDeclaration":1310,"src":"244927:18:0","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory) pure external returns (string memory)"}},"id":16607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"244927:48:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"244912:63:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":16609,"nodeType":"ExpressionStatement","src":"244912:63:0"}]}},{"expression":{"id":16629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":16612,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16522,"src":"244995:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_ContractInfo_$16467_memory_ptr","typeString":"struct ContractInfo memory"}},"id":16614,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"245000:14:0","memberName":"sourceCodeHash","nodeType":"MemberAccess","referencedDeclaration":16464,"src":"244995:19:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":16617,"name":"artifactJson","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16559,"src":"245049:12:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"arguments":[{"hexValue":"2e6d657461646174612e736f75726365732e5b27","id":16622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"245099:22:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_9acc65371218b2be388de4c512999c5773d7c7e8cfe55ef8b9c7f869e0e7945b","typeString":"literal_string \".metadata.sources.['\""},"value":".metadata.sources.['"},{"expression":{"id":16623,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16522,"src":"245123:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_ContractInfo_$16467_memory_ptr","typeString":"struct ContractInfo memory"}},"id":16624,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"245128:12:0","memberName":"contractPath","nodeType":"MemberAccess","referencedDeclaration":16458,"src":"245123:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"275d2e6b656363616b323536","id":16625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"245142:14:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_aad8893e597421c55956295138eb041c0150d1e2975daa37e4c3a126e8685848","typeString":"literal_string \"'].keccak256\""},"value":"'].keccak256"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9acc65371218b2be388de4c512999c5773d7c7e8cfe55ef8b9c7f869e0e7945b","typeString":"literal_string \".metadata.sources.['\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_aad8893e597421c55956295138eb041c0150d1e2975daa37e4c3a126e8685848","typeString":"literal_string \"'].keccak256\""}],"expression":{"id":16620,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"245082:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16621,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"245086:12:0","memberName":"encodePacked","nodeType":"MemberAccess","src":"245082:16:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":16626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"245082:75:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16619,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"245075:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":16618,"name":"string","nodeType":"ElementaryTypeName","src":"245075:6:0","typeDescriptions":{}}},"id":16627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"245075:83:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":16615,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16515,"src":"245017:2:0","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$4037","typeString":"contract Vm"}},"id":16616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"245020:15:0","memberName":"parseJsonString","nodeType":"MemberAccess","referencedDeclaration":1310,"src":"245017:18:0","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory) pure external returns (string memory)"}},"id":16628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"245017:151:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"244995:173:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":16630,"nodeType":"ExpressionStatement","src":"244995:173:0"},{"expression":{"id":16635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":16631,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16522,"src":"245178:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_ContractInfo_$16467_memory_ptr","typeString":"struct ContractInfo memory"}},"id":16633,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"245183:12:0","memberName":"artifactPath","nodeType":"MemberAccess","referencedDeclaration":16466,"src":"245178:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":16634,"name":"artifactPath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16539,"src":"245198:12:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"245178:32:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":16636,"nodeType":"ExpressionStatement","src":"245178:32:0"},{"expression":{"id":16637,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16522,"src":"245228:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_ContractInfo_$16467_memory_ptr","typeString":"struct ContractInfo memory"}},"functionReturnParameters":16512,"id":16638,"nodeType":"Return","src":"245221:11:0"}]},"documentation":{"id":16503,"nodeType":"StructuredDocumentation","src":"243405:426:0","text":" @dev Gets information about a contract from its Foundry artifact.\n @param contractName Contract name in the format \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n @param outDir Foundry output directory to search in if contractName is not an artifact path\n @return ContractInfo struct containing information about the contract"},"id":16640,"implemented":true,"kind":"function","modifiers":[],"name":"getContractInfo","nameLocation":"243845:15:0","nodeType":"FunctionDefinition","parameters":{"id":16508,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16505,"mutability":"mutable","name":"contractName","nameLocation":"243884:12:0","nodeType":"VariableDeclaration","scope":16640,"src":"243870:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16504,"name":"string","nodeType":"ElementaryTypeName","src":"243870:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16507,"mutability":"mutable","name":"outDir","nameLocation":"243920:6:0","nodeType":"VariableDeclaration","scope":16640,"src":"243906:20:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16506,"name":"string","nodeType":"ElementaryTypeName","src":"243906:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"243860:72:0"},"returnParameters":{"id":16512,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16511,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16640,"src":"243956:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ContractInfo_$16467_memory_ptr","typeString":"struct ContractInfo"},"typeName":{"id":16510,"nodeType":"UserDefinedTypeName","pathNode":{"id":16509,"name":"ContractInfo","nameLocations":["243956:12:0"],"nodeType":"IdentifierPath","referencedDeclaration":16467,"src":"243956:12:0"},"referencedDeclaration":16467,"src":"243956:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_ContractInfo_$16467_storage_ptr","typeString":"struct ContractInfo"}},"visibility":"internal"}],"src":"243955:21:0"},"scope":17211,"src":"243836:1403:0","stateMutability":"view","virtual":false,"visibility":"internal"},{"global":false,"id":16642,"libraryName":{"id":16641,"name":"Strings","nameLocations":["245251:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":16079,"src":"245251:7:0"},"nodeType":"UsingForDirective","src":"245245:20:0"},{"body":{"id":16745,"nodeType":"Block","src":"245882:748:0","statements":[{"assignments":[16658],"declarations":[{"constant":false,"id":16658,"mutability":"mutable","name":"inputs","nameLocation":"245908:6:0","nodeType":"VariableDeclaration","scope":16745,"src":"245892:22:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":16656,"name":"string","nodeType":"ElementaryTypeName","src":"245892:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":16657,"nodeType":"ArrayTypeName","src":"245892:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"id":16664,"initialValue":{"arguments":[{"hexValue":"34","id":16662,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"245930:1:0","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":16661,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"245917:12:0","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (string memory[] memory)"},"typeName":{"baseType":{"id":16659,"name":"string","nodeType":"ElementaryTypeName","src":"245921:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":16660,"nodeType":"ArrayTypeName","src":"245921:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}}},"id":16663,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"245917:15:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"245892:40:0"},{"expression":{"id":16669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":16665,"name":"inputs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16658,"src":"245942:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":16667,"indexExpression":{"hexValue":"30","id":16666,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"245949:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"245942:9:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"67726570","id":16668,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"245954:6:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_64bce29512c306ac8682eb21106d0dbd9641ff15774fe96f196b2b668a09ba06","typeString":"literal_string \"grep\""},"value":"grep"},"src":"245942:18:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":16670,"nodeType":"ExpressionStatement","src":"245942:18:0"},{"expression":{"id":16675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":16671,"name":"inputs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16658,"src":"245970:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":16673,"indexExpression":{"hexValue":"31","id":16672,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"245977:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"245970:9:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"2d726c","id":16674,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"245982:5:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_fcf11f608ae86ae45bf4e2070750240363d1558f31a18572ed8bf4121243e6f5","typeString":"literal_string \"-rl\""},"value":"-rl"},"src":"245970:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":16676,"nodeType":"ExpressionStatement","src":"245970:17:0"},{"expression":{"id":16689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":16677,"name":"inputs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16658,"src":"245997:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":16679,"indexExpression":{"hexValue":"32","id":16678,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"246004:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"245997:9:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"22","id":16684,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"246033:3:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_6e9f33448a4153023cdaf3eb759f1afdc24aba433a3e18b683f8c04a6eaa69f0","typeString":"literal_string \"\"\""},"value":"\""},{"id":16685,"name":"sourceCodeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16645,"src":"246038:14:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"22","id":16686,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"246054:3:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_6e9f33448a4153023cdaf3eb759f1afdc24aba433a3e18b683f8c04a6eaa69f0","typeString":"literal_string \"\"\""},"value":"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6e9f33448a4153023cdaf3eb759f1afdc24aba433a3e18b683f8c04a6eaa69f0","typeString":"literal_string \"\"\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_6e9f33448a4153023cdaf3eb759f1afdc24aba433a3e18b683f8c04a6eaa69f0","typeString":"literal_string \"\"\""}],"expression":{"id":16682,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"246016:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16683,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"246020:12:0","memberName":"encodePacked","nodeType":"MemberAccess","src":"246016:16:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":16687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"246016:42:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16681,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"246009:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":16680,"name":"string","nodeType":"ElementaryTypeName","src":"246009:6:0","typeDescriptions":{}}},"id":16688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"246009:50:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"245997:62:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":16690,"nodeType":"ExpressionStatement","src":"245997:62:0"},{"expression":{"id":16702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":16691,"name":"inputs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16658,"src":"246069:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":16693,"indexExpression":{"hexValue":"33","id":16692,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"246076:1:0","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"246069:9:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":16698,"name":"outDir","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16649,"src":"246105:6:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"2f6275696c642d696e666f","id":16699,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"246113:13:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_69ae65ff9142d8f87b3884b153358f78dcd4f6339bb046b9a6d16c966fa813af","typeString":"literal_string \"/build-info\""},"value":"/build-info"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_69ae65ff9142d8f87b3884b153358f78dcd4f6339bb046b9a6d16c966fa813af","typeString":"literal_string \"/build-info\""}],"expression":{"id":16696,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"246088:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16697,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"246092:12:0","memberName":"encodePacked","nodeType":"MemberAccess","src":"246088:16:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":16700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"246088:39:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16695,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"246081:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":16694,"name":"string","nodeType":"ElementaryTypeName","src":"246081:6:0","typeDescriptions":{}}},"id":16701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"246081:47:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"246069:59:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":16703,"nodeType":"ExpressionStatement","src":"246069:59:0"},{"assignments":[16708],"declarations":[{"constant":false,"id":16708,"mutability":"mutable","name":"result","nameLocation":"246163:6:0","nodeType":"VariableDeclaration","scope":16745,"src":"246139:30:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FfiResult_$116_memory_ptr","typeString":"struct VmSafe.FfiResult"},"typeName":{"id":16707,"nodeType":"UserDefinedTypeName","pathNode":{"id":16706,"name":"VmSafe.FfiResult","nameLocations":["246139:6:0","246146:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":116,"src":"246139:16:0"},"referencedDeclaration":116,"src":"246139:16:0","typeDescriptions":{"typeIdentifier":"t_struct$_FfiResult_$116_storage_ptr","typeString":"struct VmSafe.FfiResult"}},"visibility":"internal"}],"id":16712,"initialValue":{"arguments":[{"id":16710,"name":"inputs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16658,"src":"246189:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}],"id":16709,"name":"runAsBashCommand","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17210,"src":"246172:16:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$returns$_t_struct$_FfiResult_$116_memory_ptr_$","typeString":"function (string memory[] memory) returns (struct VmSafe.FfiResult memory)"}},"id":16711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"246172:24:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FfiResult_$116_memory_ptr","typeString":"struct VmSafe.FfiResult memory"}},"nodeType":"VariableDeclarationStatement","src":"246139:57:0"},{"assignments":[16714],"declarations":[{"constant":false,"id":16714,"mutability":"mutable","name":"stdout","nameLocation":"246220:6:0","nodeType":"VariableDeclaration","scope":16745,"src":"246206:20:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16713,"name":"string","nodeType":"ElementaryTypeName","src":"246206:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":16720,"initialValue":{"arguments":[{"expression":{"id":16717,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16708,"src":"246236:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_FfiResult_$116_memory_ptr","typeString":"struct VmSafe.FfiResult memory"}},"id":16718,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"246243:6:0","memberName":"stdout","nodeType":"MemberAccess","referencedDeclaration":113,"src":"246236:13:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16716,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"246229:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":16715,"name":"string","nodeType":"ElementaryTypeName","src":"246229:6:0","typeDescriptions":{}}},"id":16719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"246229:21:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"246206:44:0"},{"condition":{"id":16729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"246265:45:0","subExpression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"hexValue":"2e6a736f6e","id":16725,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"246292:7:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972","typeString":"literal_string \".json\""},"value":".json"},"id":16726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"246300:7:0","memberName":"toSlice","nodeType":"MemberAccess","referencedDeclaration":14089,"src":"246292:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (struct Strings.slice memory)"}},"id":16727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"246292:17:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":16721,"name":"stdout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16714,"src":"246266:6:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":16722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"246273:7:0","memberName":"toSlice","nodeType":"MemberAccess","referencedDeclaration":14089,"src":"246266:14:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (struct Strings.slice memory)"}},"id":16723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"246266:16:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":16724,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"246283:8:0","memberName":"endsWith","nodeType":"MemberAccess","referencedDeclaration":15001,"src":"246266:25:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$14014_memory_ptr_$_t_struct$_slice_$14014_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_slice_$14014_memory_ptr_$","typeString":"function (struct Strings.slice memory,struct Strings.slice memory) pure returns (bool)"}},"id":16728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"246266:44:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16742,"nodeType":"IfStatement","src":"246261:339:0","trueBody":{"id":16741,"nodeType":"Block","src":"246312:288:0","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"436f756c64206e6f742066696e64206275696c642d696e666f2066696c652077697468206d61746368696e6720736f7572636520636f6465206861736820666f7220636f6e747261637420","id":16735,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"246420:77:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_97996f6d547fd3154e3c44156fcd12ba2952d6646db5187f6bd117ff435085a8","typeString":"literal_string \"Could not find build-info file with matching source code hash for contract \""},"value":"Could not find build-info file with matching source code hash for contract "},{"id":16736,"name":"contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16647,"src":"246523:12:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_97996f6d547fd3154e3c44156fcd12ba2952d6646db5187f6bd117ff435085a8","typeString":"literal_string \"Could not find build-info file with matching source code hash for contract \""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":16733,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"246378:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16734,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"246382:12:0","memberName":"encodePacked","nodeType":"MemberAccess","src":"246378:16:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":16737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"246378:179:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16732,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"246350:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":16731,"name":"string","nodeType":"ElementaryTypeName","src":"246350:6:0","typeDescriptions":{}}},"id":16738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"246350:225:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":16730,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"246326:6:0","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":16739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"246326:263:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16740,"nodeType":"ExpressionStatement","src":"246326:263:0"}]}},{"expression":{"id":16743,"name":"stdout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16714,"src":"246617:6:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":16653,"id":16744,"nodeType":"Return","src":"246610:13:0"}]},"documentation":{"id":16643,"nodeType":"StructuredDocumentation","src":"245271:437:0","text":" Gets the path to the build-info file that contains the given bytecode.\n @param sourceCodeHash keccak256 hash of the source code from metadata\n @param contractName Contract name to display in error message if build-info file is not found\n @param outDir Foundry output directory that contains a build-info directory\n @return The path to the build-info file that contains the given bytecode"},"id":16746,"implemented":true,"kind":"function","modifiers":[],"name":"getBuildInfoFile","nameLocation":"245722:16:0","nodeType":"FunctionDefinition","parameters":{"id":16650,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16645,"mutability":"mutable","name":"sourceCodeHash","nameLocation":"245762:14:0","nodeType":"VariableDeclaration","scope":16746,"src":"245748:28:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16644,"name":"string","nodeType":"ElementaryTypeName","src":"245748:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16647,"mutability":"mutable","name":"contractName","nameLocation":"245800:12:0","nodeType":"VariableDeclaration","scope":16746,"src":"245786:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16646,"name":"string","nodeType":"ElementaryTypeName","src":"245786:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16649,"mutability":"mutable","name":"outDir","nameLocation":"245836:6:0","nodeType":"VariableDeclaration","scope":16746,"src":"245822:20:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16648,"name":"string","nodeType":"ElementaryTypeName","src":"245822:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"245738:110:0"},"returnParameters":{"id":16653,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16652,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16746,"src":"245867:13:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16651,"name":"string","nodeType":"ElementaryTypeName","src":"245867:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"245866:15:0"},"scope":17211,"src":"245713:917:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":16769,"nodeType":"Block","src":"246825:147:0","statements":[{"assignments":[16754],"declarations":[{"constant":false,"id":16754,"mutability":"mutable","name":"vm","nameLocation":"246838:2:0","nodeType":"VariableDeclaration","scope":16769,"src":"246835:5:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$4037","typeString":"contract Vm"},"typeName":{"id":16753,"nodeType":"UserDefinedTypeName","pathNode":{"id":16752,"name":"Vm","nameLocations":["246835:2:0"],"nodeType":"IdentifierPath","referencedDeclaration":4037,"src":"246835:2:0"},"referencedDeclaration":4037,"src":"246835:2:0","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$4037","typeString":"contract Vm"}},"visibility":"internal"}],"id":16758,"initialValue":{"arguments":[{"id":16756,"name":"CHEATCODE_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16471,"src":"246846:17:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16755,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4037,"src":"246843:2:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Vm_$4037_$","typeString":"type(contract Vm)"}},"id":16757,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"246843:21:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$4037","typeString":"contract Vm"}},"nodeType":"VariableDeclarationStatement","src":"246835:29:0"},{"assignments":[16760],"declarations":[{"constant":false,"id":16760,"mutability":"mutable","name":"defaultOutDir","nameLocation":"246889:13:0","nodeType":"VariableDeclaration","scope":16769,"src":"246875:27:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16759,"name":"string","nodeType":"ElementaryTypeName","src":"246875:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":16762,"initialValue":{"hexValue":"6f7574","id":16761,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"246905:5:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e9d65c25f1d91a301b8ddcc6ecd2c5b5ec81c53a5ff0aa50299b1b97c1649c9d","typeString":"literal_string \"out\""},"value":"out"},"nodeType":"VariableDeclarationStatement","src":"246875:35:0"},{"expression":{"arguments":[{"hexValue":"464f554e4452595f4f5554","id":16765,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"246936:13:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_ae11223e55da1785bb01a018df547ee9df83f6bfc03bcf9ee05fa29541f23f06","typeString":"literal_string \"FOUNDRY_OUT\""},"value":"FOUNDRY_OUT"},{"id":16766,"name":"defaultOutDir","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16760,"src":"246951:13:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ae11223e55da1785bb01a018df547ee9df83f6bfc03bcf9ee05fa29541f23f06","typeString":"literal_string \"FOUNDRY_OUT\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":16763,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16754,"src":"246927:2:0","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$4037","typeString":"contract Vm"}},"id":16764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"246930:5:0","memberName":"envOr","nodeType":"MemberAccess","referencedDeclaration":598,"src":"246927:8:0","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory) view external returns (string memory)"}},"id":16767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"246927:38:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":16751,"id":16768,"nodeType":"Return","src":"246920:45:0"}]},"documentation":{"id":16747,"nodeType":"StructuredDocumentation","src":"246636:125:0","text":" @dev Gets the output directory from the FOUNDRY_OUT environment variable, or defaults to \"out\" if not set."},"id":16770,"implemented":true,"kind":"function","modifiers":[],"name":"getOutDir","nameLocation":"246775:9:0","nodeType":"FunctionDefinition","parameters":{"id":16748,"nodeType":"ParameterList","parameters":[],"src":"246784:2:0"},"returnParameters":{"id":16751,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16750,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16770,"src":"246810:13:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16749,"name":"string","nodeType":"ElementaryTypeName","src":"246810:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"246809:15:0"},"scope":17211,"src":"246766:206:0","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":16824,"nodeType":"Block","src":"247121:233:0","statements":[{"assignments":[16786],"declarations":[{"constant":false,"id":16786,"mutability":"mutable","name":"parts","nameLocation":"247147:5:0","nodeType":"VariableDeclaration","scope":16824,"src":"247131:21:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":16784,"name":"string","nodeType":"ElementaryTypeName","src":"247131:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":16785,"nodeType":"ArrayTypeName","src":"247131:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"id":16797,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":16792,"name":"delimSlice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16776,"src":"247185:10:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}],"expression":{"id":16790,"name":"inputSlice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16773,"src":"247168:10:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":16791,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"247179:5:0","memberName":"count","nodeType":"MemberAccess","referencedDeclaration":15647,"src":"247168:16:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$14014_memory_ptr_$_t_struct$_slice_$14014_memory_ptr_$returns$_t_uint256_$attached_to$_t_struct$_slice_$14014_memory_ptr_$","typeString":"function (struct Strings.slice memory,struct Strings.slice memory) pure returns (uint256)"}},"id":16793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"247168:28:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":16794,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"247199:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"247168:32:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16789,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"247155:12:0","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (string memory[] memory)"},"typeName":{"baseType":{"id":16787,"name":"string","nodeType":"ElementaryTypeName","src":"247159:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":16788,"nodeType":"ArrayTypeName","src":"247159:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}}},"id":16796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"247155:46:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"247131:70:0"},{"body":{"id":16820,"nodeType":"Block","src":"247251:75:0","statements":[{"expression":{"id":16818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":16809,"name":"parts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16786,"src":"247265:5:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":16811,"indexExpression":{"id":16810,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16799,"src":"247271:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"247265:8:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":16814,"name":"delimSlice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16776,"src":"247293:10:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}],"expression":{"id":16812,"name":"inputSlice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16773,"src":"247276:10:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":16813,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"247287:5:0","memberName":"split","nodeType":"MemberAccess","referencedDeclaration":15494,"src":"247276:16:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$14014_memory_ptr_$_t_struct$_slice_$14014_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_struct$_slice_$14014_memory_ptr_$","typeString":"function (struct Strings.slice memory,struct Strings.slice memory) pure returns (struct Strings.slice memory)"}},"id":16815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"247276:28:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":16816,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"247305:8:0","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":14314,"src":"247276:37:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$14014_memory_ptr_$returns$_t_string_memory_ptr_$attached_to$_t_struct$_slice_$14014_memory_ptr_$","typeString":"function (struct Strings.slice memory) pure returns (string memory)"}},"id":16817,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"247276:39:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"247265:50:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":16819,"nodeType":"ExpressionStatement","src":"247265:50:0"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16802,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16799,"src":"247228:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":16803,"name":"parts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16786,"src":"247232:5:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":16804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"247238:6:0","memberName":"length","nodeType":"MemberAccess","src":"247232:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"247228:16:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16821,"initializationExpression":{"assignments":[16799],"declarations":[{"constant":false,"id":16799,"mutability":"mutable","name":"i","nameLocation":"247221:1:0","nodeType":"VariableDeclaration","scope":16821,"src":"247216:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16798,"name":"uint","nodeType":"ElementaryTypeName","src":"247216:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16801,"initialValue":{"hexValue":"30","id":16800,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"247225:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"247216:10:0"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":16807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"247246:3:0","subExpression":{"id":16806,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16799,"src":"247246:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16808,"nodeType":"ExpressionStatement","src":"247246:3:0"},"nodeType":"ForStatement","src":"247211:115:0"},{"expression":{"id":16822,"name":"parts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16786,"src":"247342:5:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"functionReturnParameters":16781,"id":16823,"nodeType":"Return","src":"247335:12:0"}]},"id":16825,"implemented":true,"kind":"function","modifiers":[],"name":"_split","nameLocation":"246987:6:0","nodeType":"FunctionDefinition","parameters":{"id":16777,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16773,"mutability":"mutable","name":"inputSlice","nameLocation":"247024:10:0","nodeType":"VariableDeclaration","scope":16825,"src":"247003:31:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice"},"typeName":{"id":16772,"nodeType":"UserDefinedTypeName","pathNode":{"id":16771,"name":"Strings.slice","nameLocations":["247003:7:0","247011:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"247003:13:0"},"referencedDeclaration":14014,"src":"247003:13:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"visibility":"internal"},{"constant":false,"id":16776,"mutability":"mutable","name":"delimSlice","nameLocation":"247065:10:0","nodeType":"VariableDeclaration","scope":16825,"src":"247044:31:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice"},"typeName":{"id":16775,"nodeType":"UserDefinedTypeName","pathNode":{"id":16774,"name":"Strings.slice","nameLocations":["247044:7:0","247052:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"247044:13:0"},"referencedDeclaration":14014,"src":"247044:13:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"visibility":"internal"}],"src":"246993:88:0"},"returnParameters":{"id":16781,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16780,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16825,"src":"247104:15:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":16778,"name":"string","nodeType":"ElementaryTypeName","src":"247104:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":16779,"nodeType":"ArrayTypeName","src":"247104:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"247103:17:0"},"scope":17211,"src":"246978:376:0","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":16918,"nodeType":"Block","src":"247446:881:0","statements":[{"assignments":[16836],"declarations":[{"constant":false,"id":16836,"mutability":"mutable","name":"name","nameLocation":"247477:4:0","nodeType":"VariableDeclaration","scope":16918,"src":"247456:25:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice"},"typeName":{"id":16835,"nodeType":"UserDefinedTypeName","pathNode":{"id":16834,"name":"Strings.slice","nameLocations":["247456:7:0","247464:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"247456:13:0"},"referencedDeclaration":14014,"src":"247456:13:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"visibility":"internal"}],"id":16840,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":16837,"name":"contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16827,"src":"247484:12:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":16838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"247497:7:0","memberName":"toSlice","nodeType":"MemberAccess","referencedDeclaration":14089,"src":"247484:20:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (struct Strings.slice memory)"}},"id":16839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"247484:22:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"nodeType":"VariableDeclarationStatement","src":"247456:50:0"},{"condition":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"hexValue":"2e736f6c","id":16843,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"247534:6:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e4899d98551d0eedd3839d89cdef847f3de976f02aecec9c64bb534483e2fdc1","typeString":"literal_string \".sol\""},"value":".sol"},"id":16844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"247541:7:0","memberName":"toSlice","nodeType":"MemberAccess","referencedDeclaration":14089,"src":"247534:14:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (struct Strings.slice memory)"}},"id":16845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"247534:16:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}],"expression":{"id":16841,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16836,"src":"247520:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":16842,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"247525:8:0","memberName":"endsWith","nodeType":"MemberAccess","referencedDeclaration":15001,"src":"247520:13:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$14014_memory_ptr_$_t_struct$_slice_$14014_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_slice_$14014_memory_ptr_$","typeString":"function (struct Strings.slice memory,struct Strings.slice memory) pure returns (bool)"}},"id":16846,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"247520:31:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"hexValue":"3a","id":16854,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"247621:3:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_96d280011b274d9410ea6c6fc28e2bb076b01d2fac329c49c4b29a719ec4650c","typeString":"literal_string \":\""},"value":":"},"id":16855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"247625:7:0","memberName":"toSlice","nodeType":"MemberAccess","referencedDeclaration":14089,"src":"247621:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (struct Strings.slice memory)"}},"id":16856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"247621:13:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}],"expression":{"id":16852,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16836,"src":"247610:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":16853,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"247615:5:0","memberName":"count","nodeType":"MemberAccess","referencedDeclaration":15647,"src":"247610:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$14014_memory_ptr_$_t_struct$_slice_$14014_memory_ptr_$returns$_t_uint256_$attached_to$_t_struct$_slice_$14014_memory_ptr_$","typeString":"function (struct Strings.slice memory,struct Strings.slice memory) pure returns (uint256)"}},"id":16857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"247610:25:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":16858,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"247639:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"247610:30:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":16915,"nodeType":"Block","src":"247716:605:0","statements":[{"condition":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"hexValue":"2e6a736f6e","id":16872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"247748:7:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972","typeString":"literal_string \".json\""},"value":".json"},"id":16873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"247756:7:0","memberName":"toSlice","nodeType":"MemberAccess","referencedDeclaration":14089,"src":"247748:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (struct Strings.slice memory)"}},"id":16874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"247748:17:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}],"expression":{"id":16870,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16836,"src":"247734:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":16871,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"247739:8:0","memberName":"endsWith","nodeType":"MemberAccess","referencedDeclaration":15001,"src":"247734:13:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$14014_memory_ptr_$_t_struct$_slice_$14014_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_slice_$14014_memory_ptr_$","typeString":"function (struct Strings.slice memory,struct Strings.slice memory) pure returns (bool)"}},"id":16875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"247734:32:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16902,"nodeType":"IfStatement","src":"247730:232:0","trueBody":{"id":16901,"nodeType":"Block","src":"247768:194:0","statements":[{"assignments":[16880],"declarations":[{"constant":false,"id":16880,"mutability":"mutable","name":"parts","nameLocation":"247802:5:0","nodeType":"VariableDeclaration","scope":16901,"src":"247786:21:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":16878,"name":"string","nodeType":"ElementaryTypeName","src":"247786:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":16879,"nodeType":"ArrayTypeName","src":"247786:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"id":16887,"initialValue":{"arguments":[{"id":16882,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16836,"src":"247817:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"hexValue":"2f","id":16883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"247823:3:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527","typeString":"literal_string \"/\""},"value":"/"},"id":16884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"247827:7:0","memberName":"toSlice","nodeType":"MemberAccess","referencedDeclaration":14089,"src":"247823:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (struct Strings.slice memory)"}},"id":16885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"247823:13:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"},{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}],"id":16881,"name":"_split","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16825,"src":"247810:6:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$14014_memory_ptr_$_t_struct$_slice_$14014_memory_ptr_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$","typeString":"function (struct Strings.slice memory,struct Strings.slice memory) pure returns (string memory[] memory)"}},"id":16886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"247810:27:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"247786:51:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16888,"name":"parts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16880,"src":"247859:5:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":16889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"247865:6:0","memberName":"length","nodeType":"MemberAccess","src":"247859:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":16890,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"247874:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"247859:16:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16900,"nodeType":"IfStatement","src":"247855:93:0","trueBody":{"id":16899,"nodeType":"Block","src":"247877:71:0","statements":[{"expression":{"baseExpression":{"id":16892,"name":"parts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16880,"src":"247906:5:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":16897,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16893,"name":"parts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16880,"src":"247912:5:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":16894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"247918:6:0","memberName":"length","nodeType":"MemberAccess","src":"247912:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"32","id":16895,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"247927:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"247912:16:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"247906:23:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":16831,"id":16898,"nodeType":"Return","src":"247899:30:0"}]}}]}},{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"436f6e7472616374206e616d6520","id":16908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"248070:16:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_3f120aa75756516f8ad13d558a5b9e5a44bb19eefe0388ce8c7f36f6df8edea5","typeString":"literal_string \"Contract name \""},"value":"Contract name "},{"id":16909,"name":"contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16827,"src":"248112:12:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"206d75737420626520696e2074686520666f726d6174204d79436f6e74726163742e736f6c3a4d79436f6e7472616374206f72204d79436f6e74726163742e736f6c206f72206f75742f4d79436f6e74726163742e736f6c2f4d79436f6e74726163742e6a736f6e","id":16910,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"248150:106:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_9a274a4ef728d0f993bc2f4dc24a093c4d7da9d1cb0dff5da2bf5cfca4271809","typeString":"literal_string \" must be in the format MyContract.sol:MyContract or MyContract.sol or out/MyContract.sol/MyContract.json\""},"value":" must be in the format MyContract.sol:MyContract or MyContract.sol or out/MyContract.sol/MyContract.json"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3f120aa75756516f8ad13d558a5b9e5a44bb19eefe0388ce8c7f36f6df8edea5","typeString":"literal_string \"Contract name \""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_9a274a4ef728d0f993bc2f4dc24a093c4d7da9d1cb0dff5da2bf5cfca4271809","typeString":"literal_string \" must be in the format MyContract.sol:MyContract or MyContract.sol or out/MyContract.sol/MyContract.json\""}],"expression":{"id":16906,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"248028:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16907,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"248032:12:0","memberName":"encodePacked","nodeType":"MemberAccess","src":"248028:16:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":16911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"248028:250:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16905,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"248000:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":16904,"name":"string","nodeType":"ElementaryTypeName","src":"248000:6:0","typeDescriptions":{}}},"id":16912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"248000:296:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":16903,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"247976:6:0","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":16913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"247976:334:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16914,"nodeType":"ExpressionStatement","src":"247976:334:0"}]},"id":16916,"nodeType":"IfStatement","src":"247606:715:0","trueBody":{"id":16869,"nodeType":"Block","src":"247642:68:0","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"hexValue":"3a","id":16862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"247674:3:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_96d280011b274d9410ea6c6fc28e2bb076b01d2fac329c49c4b29a719ec4650c","typeString":"literal_string \":\""},"value":":"},"id":16863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"247678:7:0","memberName":"toSlice","nodeType":"MemberAccess","referencedDeclaration":14089,"src":"247674:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (struct Strings.slice memory)"}},"id":16864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"247674:13:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}],"expression":{"id":16860,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16836,"src":"247663:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":16861,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"247668:5:0","memberName":"split","nodeType":"MemberAccess","referencedDeclaration":15494,"src":"247663:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$14014_memory_ptr_$_t_struct$_slice_$14014_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_struct$_slice_$14014_memory_ptr_$","typeString":"function (struct Strings.slice memory,struct Strings.slice memory) pure returns (struct Strings.slice memory)"}},"id":16865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"247663:25:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":16866,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"247689:8:0","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":14314,"src":"247663:34:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$14014_memory_ptr_$returns$_t_string_memory_ptr_$attached_to$_t_struct$_slice_$14014_memory_ptr_$","typeString":"function (struct Strings.slice memory) pure returns (string memory)"}},"id":16867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"247663:36:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":16831,"id":16868,"nodeType":"Return","src":"247656:43:0"}]}},"id":16917,"nodeType":"IfStatement","src":"247516:805:0","trueBody":{"id":16851,"nodeType":"Block","src":"247553:47:0","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":16847,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16836,"src":"247574:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":16848,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"247579:8:0","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":14314,"src":"247574:13:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$14014_memory_ptr_$returns$_t_string_memory_ptr_$attached_to$_t_struct$_slice_$14014_memory_ptr_$","typeString":"function (struct Strings.slice memory) pure returns (string memory)"}},"id":16849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"247574:15:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":16831,"id":16850,"nodeType":"Return","src":"247567:22:0"}]}}]},"id":16919,"implemented":true,"kind":"function","modifiers":[],"name":"_toFileName","nameLocation":"247369:11:0","nodeType":"FunctionDefinition","parameters":{"id":16828,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16827,"mutability":"mutable","name":"contractName","nameLocation":"247395:12:0","nodeType":"VariableDeclaration","scope":16919,"src":"247381:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16826,"name":"string","nodeType":"ElementaryTypeName","src":"247381:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"247380:28:0"},"returnParameters":{"id":16831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16830,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16919,"src":"247431:13:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16829,"name":"string","nodeType":"ElementaryTypeName","src":"247431:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"247430:15:0"},"scope":17211,"src":"247360:967:0","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":17032,"nodeType":"Block","src":"248420:955:0","statements":[{"assignments":[16930],"declarations":[{"constant":false,"id":16930,"mutability":"mutable","name":"name","nameLocation":"248451:4:0","nodeType":"VariableDeclaration","scope":17032,"src":"248430:25:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice"},"typeName":{"id":16929,"nodeType":"UserDefinedTypeName","pathNode":{"id":16928,"name":"Strings.slice","nameLocations":["248430:7:0","248438:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"248430:13:0"},"referencedDeclaration":14014,"src":"248430:13:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"visibility":"internal"}],"id":16934,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":16931,"name":"contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16921,"src":"248458:12:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":16932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"248471:7:0","memberName":"toSlice","nodeType":"MemberAccess","referencedDeclaration":14089,"src":"248458:20:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (struct Strings.slice memory)"}},"id":16933,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"248458:22:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"nodeType":"VariableDeclarationStatement","src":"248430:50:0"},{"condition":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"hexValue":"2e736f6c","id":16937,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"248508:6:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e4899d98551d0eedd3839d89cdef847f3de976f02aecec9c64bb534483e2fdc1","typeString":"literal_string \".sol\""},"value":".sol"},"id":16938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"248515:7:0","memberName":"toSlice","nodeType":"MemberAccess","referencedDeclaration":14089,"src":"248508:14:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (struct Strings.slice memory)"}},"id":16939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"248508:16:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}],"expression":{"id":16935,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16930,"src":"248494:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":16936,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"248499:8:0","memberName":"endsWith","nodeType":"MemberAccess","referencedDeclaration":15001,"src":"248494:13:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$14014_memory_ptr_$_t_struct$_slice_$14014_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_slice_$14014_memory_ptr_$","typeString":"function (struct Strings.slice memory,struct Strings.slice memory) pure returns (bool)"}},"id":16940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"248494:31:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"hexValue":"3a","id":16953,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"248619:3:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_96d280011b274d9410ea6c6fc28e2bb076b01d2fac329c49c4b29a719ec4650c","typeString":"literal_string \":\""},"value":":"},"id":16954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"248623:7:0","memberName":"toSlice","nodeType":"MemberAccess","referencedDeclaration":14089,"src":"248619:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (struct Strings.slice memory)"}},"id":16955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"248619:13:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}],"expression":{"id":16951,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16930,"src":"248608:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":16952,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"248613:5:0","memberName":"count","nodeType":"MemberAccess","referencedDeclaration":15647,"src":"248608:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$14014_memory_ptr_$_t_struct$_slice_$14014_memory_ptr_$returns$_t_uint256_$attached_to$_t_struct$_slice_$14014_memory_ptr_$","typeString":"function (struct Strings.slice memory,struct Strings.slice memory) pure returns (uint256)"}},"id":16956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"248608:25:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":16957,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"248637:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"248608:30:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"hexValue":"2e6a736f6e","id":16979,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"248771:7:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972","typeString":"literal_string \".json\""},"value":".json"},"id":16980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"248779:7:0","memberName":"toSlice","nodeType":"MemberAccess","referencedDeclaration":14089,"src":"248771:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (struct Strings.slice memory)"}},"id":16981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"248771:17:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}],"expression":{"id":16977,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16930,"src":"248757:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":16978,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"248762:8:0","memberName":"endsWith","nodeType":"MemberAccess","referencedDeclaration":15001,"src":"248757:13:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$14014_memory_ptr_$_t_struct$_slice_$14014_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_slice_$14014_memory_ptr_$","typeString":"function (struct Strings.slice memory,struct Strings.slice memory) pure returns (bool)"}},"id":16982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"248757:32:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":17028,"nodeType":"Block","src":"249010:359:0","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"436f6e7472616374206e616d6520","id":17021,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"249118:16:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_3f120aa75756516f8ad13d558a5b9e5a44bb19eefe0388ce8c7f36f6df8edea5","typeString":"literal_string \"Contract name \""},"value":"Contract name "},{"id":17022,"name":"contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16921,"src":"249160:12:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"206d75737420626520696e2074686520666f726d6174204d79436f6e74726163742e736f6c3a4d79436f6e7472616374206f72204d79436f6e74726163742e736f6c206f72206f75742f4d79436f6e74726163742e736f6c2f4d79436f6e74726163742e6a736f6e","id":17023,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"249198:106:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_9a274a4ef728d0f993bc2f4dc24a093c4d7da9d1cb0dff5da2bf5cfca4271809","typeString":"literal_string \" must be in the format MyContract.sol:MyContract or MyContract.sol or out/MyContract.sol/MyContract.json\""},"value":" must be in the format MyContract.sol:MyContract or MyContract.sol or out/MyContract.sol/MyContract.json"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3f120aa75756516f8ad13d558a5b9e5a44bb19eefe0388ce8c7f36f6df8edea5","typeString":"literal_string \"Contract name \""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_9a274a4ef728d0f993bc2f4dc24a093c4d7da9d1cb0dff5da2bf5cfca4271809","typeString":"literal_string \" must be in the format MyContract.sol:MyContract or MyContract.sol or out/MyContract.sol/MyContract.json\""}],"expression":{"id":17019,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"249076:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17020,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"249080:12:0","memberName":"encodePacked","nodeType":"MemberAccess","src":"249076:16:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":17024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"249076:250:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17018,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"249048:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":17017,"name":"string","nodeType":"ElementaryTypeName","src":"249048:6:0","typeDescriptions":{}}},"id":17025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"249048:296:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":17016,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"249024:6:0","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":17026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"249024:334:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17027,"nodeType":"ExpressionStatement","src":"249024:334:0"}]},"id":17029,"nodeType":"IfStatement","src":"248753:616:0","trueBody":{"id":17015,"nodeType":"Block","src":"248791:213:0","statements":[{"assignments":[16987],"declarations":[{"constant":false,"id":16987,"mutability":"mutable","name":"parts","nameLocation":"248821:5:0","nodeType":"VariableDeclaration","scope":17015,"src":"248805:21:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":16985,"name":"string","nodeType":"ElementaryTypeName","src":"248805:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":16986,"nodeType":"ArrayTypeName","src":"248805:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"id":16994,"initialValue":{"arguments":[{"id":16989,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16930,"src":"248836:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"hexValue":"2f","id":16990,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"248842:3:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527","typeString":"literal_string \"/\""},"value":"/"},"id":16991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"248846:7:0","memberName":"toSlice","nodeType":"MemberAccess","referencedDeclaration":14089,"src":"248842:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (struct Strings.slice memory)"}},"id":16992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"248842:13:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"},{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}],"id":16988,"name":"_split","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16825,"src":"248829:6:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$14014_memory_ptr_$_t_struct$_slice_$14014_memory_ptr_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$","typeString":"function (struct Strings.slice memory,struct Strings.slice memory) pure returns (string memory[] memory)"}},"id":16993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"248829:27:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"248805:51:0"},{"assignments":[16996],"declarations":[{"constant":false,"id":16996,"mutability":"mutable","name":"jsonName","nameLocation":"248884:8:0","nodeType":"VariableDeclaration","scope":17015,"src":"248870:22:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16995,"name":"string","nodeType":"ElementaryTypeName","src":"248870:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":17003,"initialValue":{"baseExpression":{"id":16997,"name":"parts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16987,"src":"248895:5:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":17002,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16998,"name":"parts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16987,"src":"248901:5:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":16999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"248907:6:0","memberName":"length","nodeType":"MemberAccess","src":"248901:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":17000,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"248916:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"248901:16:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"248895:23:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"248870:48:0"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"hexValue":"2e6a736f6e","id":17008,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"248964:7:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972","typeString":"literal_string \".json\""},"value":".json"},"id":17009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"248972:7:0","memberName":"toSlice","nodeType":"MemberAccess","referencedDeclaration":14089,"src":"248964:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (struct Strings.slice memory)"}},"id":17010,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"248964:17:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17004,"name":"jsonName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16996,"src":"248939:8:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":17005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"248948:7:0","memberName":"toSlice","nodeType":"MemberAccess","referencedDeclaration":14089,"src":"248939:16:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (struct Strings.slice memory)"}},"id":17006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"248939:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":17007,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"248958:5:0","memberName":"until","nodeType":"MemberAccess","referencedDeclaration":15057,"src":"248939:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$14014_memory_ptr_$_t_struct$_slice_$14014_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_struct$_slice_$14014_memory_ptr_$","typeString":"function (struct Strings.slice memory,struct Strings.slice memory) pure returns (struct Strings.slice memory)"}},"id":17011,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"248939:43:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":17012,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"248983:8:0","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":14314,"src":"248939:52:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$14014_memory_ptr_$returns$_t_string_memory_ptr_$attached_to$_t_struct$_slice_$14014_memory_ptr_$","typeString":"function (struct Strings.slice memory) pure returns (string memory)"}},"id":17013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"248939:54:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":16925,"id":17014,"nodeType":"Return","src":"248932:61:0"}]}},"id":17030,"nodeType":"IfStatement","src":"248604:765:0","trueBody":{"id":16976,"nodeType":"Block","src":"248640:107:0","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"hexValue":"3a","id":16962,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"248665:3:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_96d280011b274d9410ea6c6fc28e2bb076b01d2fac329c49c4b29a719ec4650c","typeString":"literal_string \":\""},"value":":"},"id":16963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"248669:7:0","memberName":"toSlice","nodeType":"MemberAccess","referencedDeclaration":14089,"src":"248665:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (struct Strings.slice memory)"}},"id":16964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"248665:13:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}],"expression":{"id":16959,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16930,"src":"248654:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":16961,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"248659:5:0","memberName":"split","nodeType":"MemberAccess","referencedDeclaration":15494,"src":"248654:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$14014_memory_ptr_$_t_struct$_slice_$14014_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_struct$_slice_$14014_memory_ptr_$","typeString":"function (struct Strings.slice memory,struct Strings.slice memory) pure returns (struct Strings.slice memory)"}},"id":16965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"248654:25:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":16966,"nodeType":"ExpressionStatement","src":"248654:25:0"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"hexValue":"3a","id":16969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"248711:3:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_96d280011b274d9410ea6c6fc28e2bb076b01d2fac329c49c4b29a719ec4650c","typeString":"literal_string \":\""},"value":":"},"id":16970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"248715:7:0","memberName":"toSlice","nodeType":"MemberAccess","referencedDeclaration":14089,"src":"248711:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (struct Strings.slice memory)"}},"id":16971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"248711:13:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}],"expression":{"id":16967,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16930,"src":"248700:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":16968,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"248705:5:0","memberName":"split","nodeType":"MemberAccess","referencedDeclaration":15494,"src":"248700:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$14014_memory_ptr_$_t_struct$_slice_$14014_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_struct$_slice_$14014_memory_ptr_$","typeString":"function (struct Strings.slice memory,struct Strings.slice memory) pure returns (struct Strings.slice memory)"}},"id":16972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"248700:25:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":16973,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"248726:8:0","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":14314,"src":"248700:34:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$14014_memory_ptr_$returns$_t_string_memory_ptr_$attached_to$_t_struct$_slice_$14014_memory_ptr_$","typeString":"function (struct Strings.slice memory) pure returns (string memory)"}},"id":16974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"248700:36:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":16925,"id":16975,"nodeType":"Return","src":"248693:43:0"}]}},"id":17031,"nodeType":"IfStatement","src":"248490:879:0","trueBody":{"id":16950,"nodeType":"Block","src":"248527:71:0","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"hexValue":"2e736f6c","id":16943,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"248559:6:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e4899d98551d0eedd3839d89cdef847f3de976f02aecec9c64bb534483e2fdc1","typeString":"literal_string \".sol\""},"value":".sol"},"id":16944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"248566:7:0","memberName":"toSlice","nodeType":"MemberAccess","referencedDeclaration":14089,"src":"248559:14:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (struct Strings.slice memory)"}},"id":16945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"248559:16:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}],"expression":{"id":16941,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16930,"src":"248548:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":16942,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"248553:5:0","memberName":"until","nodeType":"MemberAccess","referencedDeclaration":15057,"src":"248548:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$14014_memory_ptr_$_t_struct$_slice_$14014_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_struct$_slice_$14014_memory_ptr_$","typeString":"function (struct Strings.slice memory,struct Strings.slice memory) pure returns (struct Strings.slice memory)"}},"id":16946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"248548:28:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":16947,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"248577:8:0","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":14314,"src":"248548:37:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$14014_memory_ptr_$returns$_t_string_memory_ptr_$attached_to$_t_struct$_slice_$14014_memory_ptr_$","typeString":"function (struct Strings.slice memory) pure returns (string memory)"}},"id":16948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"248548:39:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":16925,"id":16949,"nodeType":"Return","src":"248541:46:0"}]}}]},"id":17033,"implemented":true,"kind":"function","modifiers":[],"name":"_toShortName","nameLocation":"248342:12:0","nodeType":"FunctionDefinition","parameters":{"id":16922,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16921,"mutability":"mutable","name":"contractName","nameLocation":"248369:12:0","nodeType":"VariableDeclaration","scope":17033,"src":"248355:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16920,"name":"string","nodeType":"ElementaryTypeName","src":"248355:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"248354:28:0"},"returnParameters":{"id":16925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16924,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17033,"src":"248405:13:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16923,"name":"string","nodeType":"ElementaryTypeName","src":"248405:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"248404:15:0"},"scope":17211,"src":"248333:1042:0","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":17124,"nodeType":"Block","src":"249858:484:0","statements":[{"assignments":[17046],"declarations":[{"constant":false,"id":17046,"mutability":"mutable","name":"commandString","nameLocation":"249882:13:0","nodeType":"VariableDeclaration","scope":17124,"src":"249868:27:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17045,"name":"string","nodeType":"ElementaryTypeName","src":"249868:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":17047,"nodeType":"VariableDeclarationStatement","src":"249868:27:0"},{"body":{"id":17091,"nodeType":"Block","src":"249946:225:0","statements":[{"expression":{"id":17070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17059,"name":"commandString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17046,"src":"249960:13:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":17064,"name":"commandString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17046,"src":"250000:13:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"baseExpression":{"id":17065,"name":"inputs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17037,"src":"250015:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":17067,"indexExpression":{"id":17066,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17049,"src":"250022:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"250015:9:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":17062,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"249983:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17063,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"249987:12:0","memberName":"encodePacked","nodeType":"MemberAccess","src":"249983:16:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":17068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"249983:42:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17061,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"249976:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":17060,"name":"string","nodeType":"ElementaryTypeName","src":"249976:6:0","typeDescriptions":{}}},"id":17069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"249976:50:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"249960:66:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":17071,"nodeType":"ExpressionStatement","src":"249960:66:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17072,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17049,"src":"250044:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17073,"name":"inputs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17037,"src":"250049:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":17074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"250056:6:0","memberName":"length","nodeType":"MemberAccess","src":"250049:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":17075,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"250065:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"250049:17:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"250044:22:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17090,"nodeType":"IfStatement","src":"250040:121:0","trueBody":{"id":17089,"nodeType":"Block","src":"250068:93:0","statements":[{"expression":{"id":17087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17078,"name":"commandString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17046,"src":"250086:13:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":17083,"name":"commandString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17046,"src":"250126:13:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"20","id":17084,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"250141:3:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_681afa780d17da29203322b473d3f210a7d621259a4e6ce9e403f5a266ff719a","typeString":"literal_string \" \""},"value":" "}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_681afa780d17da29203322b473d3f210a7d621259a4e6ce9e403f5a266ff719a","typeString":"literal_string \" \""}],"expression":{"id":17081,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"250109:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17082,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"250113:12:0","memberName":"encodePacked","nodeType":"MemberAccess","src":"250109:16:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":17085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"250109:36:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17080,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"250102:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":17079,"name":"string","nodeType":"ElementaryTypeName","src":"250102:6:0","typeDescriptions":{}}},"id":17086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"250102:44:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"250086:60:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":17088,"nodeType":"ExpressionStatement","src":"250086:60:0"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17052,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17049,"src":"249922:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":17053,"name":"inputs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17037,"src":"249926:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":17054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"249933:6:0","memberName":"length","nodeType":"MemberAccess","src":"249926:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"249922:17:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17092,"initializationExpression":{"assignments":[17049],"declarations":[{"constant":false,"id":17049,"mutability":"mutable","name":"i","nameLocation":"249915:1:0","nodeType":"VariableDeclaration","scope":17092,"src":"249910:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17048,"name":"uint","nodeType":"ElementaryTypeName","src":"249910:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":17051,"initialValue":{"hexValue":"30","id":17050,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"249919:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"249910:10:0"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":17057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"249941:3:0","subExpression":{"id":17056,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17049,"src":"249941:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17058,"nodeType":"ExpressionStatement","src":"249941:3:0"},"nodeType":"ForStatement","src":"249905:266:0"},{"assignments":[17097],"declarations":[{"constant":false,"id":17097,"mutability":"mutable","name":"result","nameLocation":"250197:6:0","nodeType":"VariableDeclaration","scope":17124,"src":"250181:22:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":17095,"name":"string","nodeType":"ElementaryTypeName","src":"250181:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":17096,"nodeType":"ArrayTypeName","src":"250181:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"id":17103,"initialValue":{"arguments":[{"hexValue":"33","id":17101,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"250219:1:0","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":17100,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"250206:12:0","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (string memory[] memory)"},"typeName":{"baseType":{"id":17098,"name":"string","nodeType":"ElementaryTypeName","src":"250210:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":17099,"nodeType":"ArrayTypeName","src":"250210:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}}},"id":17102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"250206:15:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"250181:40:0"},{"expression":{"id":17108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":17104,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17097,"src":"250231:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":17106,"indexExpression":{"hexValue":"30","id":17105,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"250238:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"250231:9:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17107,"name":"bashPath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17039,"src":"250243:8:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"250231:20:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":17109,"nodeType":"ExpressionStatement","src":"250231:20:0"},{"expression":{"id":17114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":17110,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17097,"src":"250261:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":17112,"indexExpression":{"hexValue":"31","id":17111,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"250268:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"250261:9:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"2d63","id":17113,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"250273:4:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_db7d58baf49317c91030cfef6ad60af45b39dbc6be58ff6e95c9a0a3f4fce22c","typeString":"literal_string \"-c\""},"value":"-c"},"src":"250261:16:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":17115,"nodeType":"ExpressionStatement","src":"250261:16:0"},{"expression":{"id":17120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":17116,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17097,"src":"250287:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":17118,"indexExpression":{"hexValue":"32","id":17117,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"250294:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"250287:9:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17119,"name":"commandString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17046,"src":"250299:13:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"250287:25:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":17121,"nodeType":"ExpressionStatement","src":"250287:25:0"},{"expression":{"id":17122,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17097,"src":"250329:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"functionReturnParameters":17044,"id":17123,"nodeType":"Return","src":"250322:13:0"}]},"documentation":{"id":17034,"nodeType":"StructuredDocumentation","src":"249381:361:0","text":" @dev Converts an array of inputs to a bash command.\n @param inputs Inputs for a command, e.g. [\"grep\", \"-rl\", \"0x1234\", \"out/build-info\"]\n @param bashPath Path to the bash executable or just \"bash\" if it is in the PATH\n @return A bash command that runs the given inputs, e.g. [\"bash\", \"-c\", \"grep -rl 0x1234 out/build-info\"]"},"id":17125,"implemented":true,"kind":"function","modifiers":[],"name":"toBashCommand","nameLocation":"249756:13:0","nodeType":"FunctionDefinition","parameters":{"id":17040,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17037,"mutability":"mutable","name":"inputs","nameLocation":"249786:6:0","nodeType":"VariableDeclaration","scope":17125,"src":"249770:22:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":17035,"name":"string","nodeType":"ElementaryTypeName","src":"249770:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":17036,"nodeType":"ArrayTypeName","src":"249770:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":17039,"mutability":"mutable","name":"bashPath","nameLocation":"249808:8:0","nodeType":"VariableDeclaration","scope":17125,"src":"249794:22:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17038,"name":"string","nodeType":"ElementaryTypeName","src":"249794:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"249769:48:0"},"returnParameters":{"id":17044,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17043,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17125,"src":"249841:15:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":17041,"name":"string","nodeType":"ElementaryTypeName","src":"249841:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":17042,"nodeType":"ArrayTypeName","src":"249841:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"249840:17:0"},"scope":17211,"src":"249747:595:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17209,"nodeType":"Block","src":"250684:1152:0","statements":[{"assignments":[17137],"declarations":[{"constant":false,"id":17137,"mutability":"mutable","name":"vm","nameLocation":"250697:2:0","nodeType":"VariableDeclaration","scope":17209,"src":"250694:5:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$4037","typeString":"contract Vm"},"typeName":{"id":17136,"nodeType":"UserDefinedTypeName","pathNode":{"id":17135,"name":"Vm","nameLocations":["250694:2:0"],"nodeType":"IdentifierPath","referencedDeclaration":4037,"src":"250694:2:0"},"referencedDeclaration":4037,"src":"250694:2:0","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$4037","typeString":"contract Vm"}},"visibility":"internal"}],"id":17141,"initialValue":{"arguments":[{"id":17139,"name":"CHEATCODE_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16471,"src":"250705:17:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17138,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4037,"src":"250702:2:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Vm_$4037_$","typeString":"type(contract Vm)"}},"id":17140,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"250702:21:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$4037","typeString":"contract Vm"}},"nodeType":"VariableDeclarationStatement","src":"250694:29:0"},{"assignments":[17143],"declarations":[{"constant":false,"id":17143,"mutability":"mutable","name":"defaultBashPath","nameLocation":"250747:15:0","nodeType":"VariableDeclaration","scope":17209,"src":"250733:29:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17142,"name":"string","nodeType":"ElementaryTypeName","src":"250733:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":17145,"initialValue":{"hexValue":"62617368","id":17144,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"250765:6:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_3a20a0a136f9116b8130e31d0d8f14d3b1802506e7c4b809f577c201eb7bf34c","typeString":"literal_string \"bash\""},"value":"bash"},"nodeType":"VariableDeclarationStatement","src":"250733:38:0"},{"assignments":[17147],"declarations":[{"constant":false,"id":17147,"mutability":"mutable","name":"bashPath","nameLocation":"250795:8:0","nodeType":"VariableDeclaration","scope":17209,"src":"250781:22:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17146,"name":"string","nodeType":"ElementaryTypeName","src":"250781:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":17153,"initialValue":{"arguments":[{"hexValue":"4f50454e5a455050454c494e5f424153485f50415448","id":17150,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"250815:24:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_524873d67beb7637903c52887510c8a7ea71785147c24441a8c36e6df12a4c44","typeString":"literal_string \"OPENZEPPELIN_BASH_PATH\""},"value":"OPENZEPPELIN_BASH_PATH"},{"id":17151,"name":"defaultBashPath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17143,"src":"250841:15:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_524873d67beb7637903c52887510c8a7ea71785147c24441a8c36e6df12a4c44","typeString":"literal_string \"OPENZEPPELIN_BASH_PATH\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":17148,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17137,"src":"250806:2:0","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$4037","typeString":"contract Vm"}},"id":17149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"250809:5:0","memberName":"envOr","nodeType":"MemberAccess","referencedDeclaration":598,"src":"250806:8:0","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory) view external returns (string memory)"}},"id":17152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"250806:51:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"250781:76:0"},{"assignments":[17158],"declarations":[{"constant":false,"id":17158,"mutability":"mutable","name":"bashCommand","nameLocation":"250884:11:0","nodeType":"VariableDeclaration","scope":17209,"src":"250868:27:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":17156,"name":"string","nodeType":"ElementaryTypeName","src":"250868:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":17157,"nodeType":"ArrayTypeName","src":"250868:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"id":17163,"initialValue":{"arguments":[{"id":17160,"name":"inputs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17129,"src":"250912:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},{"id":17161,"name":"bashPath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"250920:8:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":17159,"name":"toBashCommand","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17125,"src":"250898:13:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_string_memory_ptr_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$","typeString":"function (string memory[] memory,string memory) pure returns (string memory[] memory)"}},"id":17162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"250898:31:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"250868:61:0"},{"assignments":[17168],"declarations":[{"constant":false,"id":17168,"mutability":"mutable","name":"result","nameLocation":"250963:6:0","nodeType":"VariableDeclaration","scope":17209,"src":"250939:30:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FfiResult_$116_memory_ptr","typeString":"struct VmSafe.FfiResult"},"typeName":{"id":17167,"nodeType":"UserDefinedTypeName","pathNode":{"id":17166,"name":"VmSafe.FfiResult","nameLocations":["250939:6:0","250946:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":116,"src":"250939:16:0"},"referencedDeclaration":116,"src":"250939:16:0","typeDescriptions":{"typeIdentifier":"t_struct$_FfiResult_$116_storage_ptr","typeString":"struct VmSafe.FfiResult"}},"visibility":"internal"}],"id":17173,"initialValue":{"arguments":[{"id":17171,"name":"bashCommand","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17158,"src":"250982:11:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}],"expression":{"id":17169,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17137,"src":"250972:2:0","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$4037","typeString":"contract Vm"}},"id":17170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"250975:6:0","memberName":"tryFfi","nodeType":"MemberAccess","referencedDeclaration":1134,"src":"250972:9:0","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$returns$_t_struct$_FfiResult_$116_memory_ptr_$","typeString":"function (string memory[] memory) external returns (struct VmSafe.FfiResult memory)"}},"id":17172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"250972:22:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FfiResult_$116_memory_ptr","typeString":"struct VmSafe.FfiResult memory"}},"nodeType":"VariableDeclarationStatement","src":"250939:55:0"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int32","typeString":"int32"},"id":17177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17174,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17168,"src":"251008:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_FfiResult_$116_memory_ptr","typeString":"struct VmSafe.FfiResult memory"}},"id":17175,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"251015:8:0","memberName":"exitCode","nodeType":"MemberAccess","referencedDeclaration":111,"src":"251008:15:0","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":17176,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"251027:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"251008:20:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":17178,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17168,"src":"251032:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_FfiResult_$116_memory_ptr","typeString":"struct VmSafe.FfiResult memory"}},"id":17179,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"251039:6:0","memberName":"stdout","nodeType":"MemberAccess","referencedDeclaration":113,"src":"251032:13:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":17180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"251046:6:0","memberName":"length","nodeType":"MemberAccess","src":"251032:20:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":17181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"251056:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"251032:25:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"251008:49:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":17184,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17168,"src":"251061:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_FfiResult_$116_memory_ptr","typeString":"struct VmSafe.FfiResult memory"}},"id":17185,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"251068:6:0","memberName":"stderr","nodeType":"MemberAccess","referencedDeclaration":115,"src":"251061:13:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":17186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"251075:6:0","memberName":"length","nodeType":"MemberAccess","src":"251061:20:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":17187,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"251085:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"251061:25:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"251008:78:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":17207,"nodeType":"Block","src":"251792:38:0","statements":[{"expression":{"id":17205,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17168,"src":"251813:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_FfiResult_$116_memory_ptr","typeString":"struct VmSafe.FfiResult memory"}},"functionReturnParameters":17134,"id":17206,"nodeType":"Return","src":"251806:13:0"}]},"id":17208,"nodeType":"IfStatement","src":"251004:826:0","trueBody":{"id":17204,"nodeType":"Block","src":"251088:698:0","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"4661696c656420746f2072756e206261736820636f6d6d616e6420776974682022","id":17195,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"251302:35:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_9645b1309bf78e4558cd11f0c8b7c479bbb946c623d04c306a8843ee1cc47506","typeString":"literal_string \"Failed to run bash command with \"\""},"value":"Failed to run bash command with \""},{"baseExpression":{"id":17196,"name":"bashCommand","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17158,"src":"251363:11:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":17198,"indexExpression":{"hexValue":"30","id":17197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"251375:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"251363:14:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"222e20496620796f7520617265207573696e672057696e646f77732c2073657420746865204f50454e5a455050454c494e5f424153485f5041544820656e7669726f6e6d656e74207661726961626c6520746f207468652066756c6c79207175616c69666965642070617468206f662074686520626173682065786563757461626c652e20466f72206578616d706c652c20696620796f7520617265207573696e672047697420666f722057696e646f77732c206164642074686520666f6c6c6f77696e67206c696e6520696e20746865202e656e762066696c65206f6620796f75722070726f6a65637420287573696e6720666f727761726420736c6173686573293a0a4f50454e5a455050454c494e5f424153485f504154483d22433a2f50726f6772616d2046696c65732f4769742f62696e2f6261736822","id":17199,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"251403:318:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_3b53890135633717feb8747563f231c42249fa1cfe7d1f04d5790e40902f3b91","typeString":"literal_string hex\"222e20496620796f7520617265207573696e672057696e646f77732c2073657420746865204f50454e5a455050454c494e5f424153485f5041544820656e7669726f6e6d656e74207661726961626c6520746f207468652066756c6c79207175616c69666965642070617468206f662074686520626173682065786563757461626c652e20466f72206578616d706c652c20696620796f7520617265207573696e672047697420666f722057696e646f77732c206164642074686520666f6c6c6f77696e67206c696e6520696e20746865202e656e762066696c65206f6620796f75722070726f6a65637420287573696e6720666f727761726420736c6173686573293a0a4f50454e5a455050454c494e5f424153485f504154483d22433a2f50726f6772616d2046696c65732f4769742f62696e2f6261736822\""},"value":"\". If you are using Windows, set the OPENZEPPELIN_BASH_PATH environment variable to the fully qualified path of the bash executable. For example, if you are using Git for Windows, add the following line in the .env file of your project (using forward slashes):\nOPENZEPPELIN_BASH_PATH=\"C:/Program Files/Git/bin/bash\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9645b1309bf78e4558cd11f0c8b7c479bbb946c623d04c306a8843ee1cc47506","typeString":"literal_string \"Failed to run bash command with \"\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_3b53890135633717feb8747563f231c42249fa1cfe7d1f04d5790e40902f3b91","typeString":"literal_string hex\"222e20496620796f7520617265207573696e672057696e646f77732c2073657420746865204f50454e5a455050454c494e5f424153485f5041544820656e7669726f6e6d656e74207661726961626c6520746f207468652066756c6c79207175616c69666965642070617468206f662074686520626173682065786563757461626c652e20466f72206578616d706c652c20696620796f7520617265207573696e672047697420666f722057696e646f77732c206164642074686520666f6c6c6f77696e67206c696e6520696e20746865202e656e762066696c65206f6620796f75722070726f6a65637420287573696e6720666f727761726420736c6173686573293a0a4f50454e5a455050454c494e5f424153485f504154483d22433a2f50726f6772616d2046696c65732f4769742f62696e2f6261736822\""}],"expression":{"id":17193,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"251260:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17194,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"251264:12:0","memberName":"encodePacked","nodeType":"MemberAccess","src":"251260:16:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":17200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"251260:483:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17192,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"251232:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":17191,"name":"string","nodeType":"ElementaryTypeName","src":"251232:6:0","typeDescriptions":{}}},"id":17201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"251232:529:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":17190,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"251208:6:0","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":17202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"251208:567:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17203,"nodeType":"ExpressionStatement","src":"251208:567:0"}]}}]},"documentation":{"id":17126,"nodeType":"StructuredDocumentation","src":"250348:238:0","text":" @dev Runs an arbitrary command using bash.\n @param inputs Inputs for a command, e.g. [\"grep\", \"-rl\", \"0x1234\", \"out/build-info\"]\n @return The result of the corresponding bash command as a Vm.FfiResult struct"},"id":17210,"implemented":true,"kind":"function","modifiers":[],"name":"runAsBashCommand","nameLocation":"250600:16:0","nodeType":"FunctionDefinition","parameters":{"id":17130,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17129,"mutability":"mutable","name":"inputs","nameLocation":"250633:6:0","nodeType":"VariableDeclaration","scope":17210,"src":"250617:22:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":17127,"name":"string","nodeType":"ElementaryTypeName","src":"250617:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":17128,"nodeType":"ArrayTypeName","src":"250617:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"250616:24:0"},"returnParameters":{"id":17134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17133,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17210,"src":"250659:23:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FfiResult_$116_memory_ptr","typeString":"struct VmSafe.FfiResult"},"typeName":{"id":17132,"nodeType":"UserDefinedTypeName","pathNode":{"id":17131,"name":"VmSafe.FfiResult","nameLocations":["250659:6:0","250666:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":116,"src":"250659:16:0"},"referencedDeclaration":116,"src":"250659:16:0","typeDescriptions":{"typeIdentifier":"t_struct$_FfiResult_$116_storage_ptr","typeString":"struct VmSafe.FfiResult"}},"visibility":"internal"}],"src":"250658:25:0"},"scope":17211,"src":"250591:1245:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":20815,"src":"242562:9276:0","usedErrors":[],"usedEvents":[]},{"abstract":false,"baseContracts":[{"baseName":{"id":17213,"name":"Proxy","nameLocations":["252431:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":12212,"src":"252431:5:0"},"id":17214,"nodeType":"InheritanceSpecifier","src":"252431:5:0"}],"canonicalName":"ERC1967Proxy","contractDependencies":[],"contractKind":"contract","documentation":{"id":17212,"nodeType":"StructuredDocumentation","src":"252033:372:0","text":" @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an\n implementation address that can be changed. This address is stored in storage in the location specified by\n https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the\n implementation behind the proxy."},"fullyImplemented":true,"id":17243,"linearizedBaseContracts":[17243,12212],"name":"ERC1967Proxy","nameLocation":"252415:12:0","nodeType":"ContractDefinition","nodes":[{"body":{"id":17229,"nodeType":"Block","src":"252951:69:0","statements":[{"expression":{"arguments":[{"id":17225,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17217,"src":"252991:14:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17226,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17219,"src":"253007:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":17222,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16374,"src":"252961:12:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1967Utils_$16374_$","typeString":"type(library ERC1967Utils)"}},"id":17224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"252974:16:0","memberName":"upgradeToAndCall","nodeType":"MemberAccess","referencedDeclaration":16193,"src":"252961:29:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory)"}},"id":17227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"252961:52:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17228,"nodeType":"ExpressionStatement","src":"252961:52:0"}]},"documentation":{"id":17215,"nodeType":"StructuredDocumentation","src":"252443:439:0","text":" @dev Initializes the upgradeable proxy with an initial implementation specified by `implementation`.\n If `_data` is nonempty, it's used as data in a delegate call to `implementation`. This will typically be an\n encoded function call, and allows initializing the storage of the proxy like a Solidity constructor.\n Requirements:\n - If `data` is empty, `msg.value` must be zero."},"id":17230,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":17220,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17217,"mutability":"mutable","name":"implementation","nameLocation":"252907:14:0","nodeType":"VariableDeclaration","scope":17230,"src":"252899:22:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17216,"name":"address","nodeType":"ElementaryTypeName","src":"252899:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17219,"mutability":"mutable","name":"_data","nameLocation":"252936:5:0","nodeType":"VariableDeclaration","scope":17230,"src":"252923:18:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":17218,"name":"bytes","nodeType":"ElementaryTypeName","src":"252923:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"252898:44:0"},"returnParameters":{"id":17221,"nodeType":"ParameterList","parameters":[],"src":"252951:0:0"},"scope":17243,"src":"252887:133:0","stateMutability":"payable","virtual":false,"visibility":"public"},{"baseFunctions":[12193],"body":{"id":17241,"nodeType":"Block","src":"253464:56:0","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17237,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16374,"src":"253481:12:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1967Utils_$16374_$","typeString":"type(library ERC1967Utils)"}},"id":17238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"253494:17:0","memberName":"getImplementation","nodeType":"MemberAccess","referencedDeclaration":16132,"src":"253481:30:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":17239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"253481:32:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":17236,"id":17240,"nodeType":"Return","src":"253474:39:0"}]},"documentation":{"id":17231,"nodeType":"StructuredDocumentation","src":"253026:357:0","text":" @dev Returns the current implementation address.\n TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using\n the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`"},"id":17242,"implemented":true,"kind":"function","modifiers":[],"name":"_implementation","nameLocation":"253397:15:0","nodeType":"FunctionDefinition","overrides":{"id":17233,"nodeType":"OverrideSpecifier","overrides":[],"src":"253437:8:0"},"parameters":{"id":17232,"nodeType":"ParameterList","parameters":[],"src":"253412:2:0"},"returnParameters":{"id":17236,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17235,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17242,"src":"253455:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17234,"name":"address","nodeType":"ElementaryTypeName","src":"253455:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"253454:9:0"},"scope":17243,"src":"253388:132:0","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":20815,"src":"252406:1116:0","usedErrors":[12231,12234,16106,16119],"usedEvents":[16085]},{"abstract":false,"baseContracts":[{"baseName":{"id":17245,"name":"Proxy","nameLocations":["254580:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":12212,"src":"254580:5:0"},"id":17246,"nodeType":"InheritanceSpecifier","src":"254580:5:0"}],"canonicalName":"BeaconProxy","contractDependencies":[],"contractKind":"contract","documentation":{"id":17244,"nodeType":"StructuredDocumentation","src":"253713:842:0","text":" @dev This contract implements a proxy that gets the implementation address for each call from an {UpgradeableBeacon}.\n The beacon address can only be set once during construction, and cannot be changed afterwards. It is stored in an\n immutable variable to avoid unnecessary storage reads, and also in the beacon storage slot specified by\n https://eips.ethereum.org/EIPS/eip-1967[EIP1967] so that it can be accessed externally.\n CAUTION: Since the beacon address can never be changed, you must ensure that you either control the beacon, or trust\n the beacon to not upgrade the implementation maliciously.\n IMPORTANT: Do not use the implementation logic to modify the beacon storage slot. Doing so would leave the proxy in\n an inconsistent state where the beacon storage slot does not match the beacon address."},"fullyImplemented":true,"id":17293,"linearizedBaseContracts":[17293,12212],"name":"BeaconProxy","nameLocation":"254565:11:0","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":17248,"mutability":"immutable","name":"_beacon","nameLocation":"254716:7:0","nodeType":"VariableDeclaration","scope":17293,"src":"254690:33:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17247,"name":"address","nodeType":"ElementaryTypeName","src":"254690:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"body":{"id":17267,"nodeType":"Block","src":"255268:92:0","statements":[{"expression":{"arguments":[{"id":17259,"name":"beacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17251,"src":"255314:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17260,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17253,"src":"255322:4:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":17256,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16374,"src":"255278:12:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1967Utils_$16374_$","typeString":"type(library ERC1967Utils)"}},"id":17258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"255291:22:0","memberName":"upgradeBeaconToAndCall","nodeType":"MemberAccess","referencedDeclaration":16359,"src":"255278:35:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory)"}},"id":17261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"255278:49:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17262,"nodeType":"ExpressionStatement","src":"255278:49:0"},{"expression":{"id":17265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17263,"name":"_beacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17248,"src":"255337:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17264,"name":"beacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17251,"src":"255347:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"255337:16:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":17266,"nodeType":"ExpressionStatement","src":"255337:16:0"}]},"documentation":{"id":17249,"nodeType":"StructuredDocumentation","src":"254730:478:0","text":" @dev Initializes the proxy with `beacon`.\n If `data` is nonempty, it's used as data in a delegate call to the implementation returned by the beacon. This\n will typically be an encoded function call, and allows initializing the storage of the proxy like a Solidity\n constructor.\n Requirements:\n - `beacon` must be a contract with the interface {IBeacon}.\n - If `data` is empty, `msg.value` must be zero."},"id":17268,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":17254,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17251,"mutability":"mutable","name":"beacon","nameLocation":"255233:6:0","nodeType":"VariableDeclaration","scope":17268,"src":"255225:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17250,"name":"address","nodeType":"ElementaryTypeName","src":"255225:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17253,"mutability":"mutable","name":"data","nameLocation":"255254:4:0","nodeType":"VariableDeclaration","scope":17268,"src":"255241:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":17252,"name":"bytes","nodeType":"ElementaryTypeName","src":"255241:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"255224:35:0"},"returnParameters":{"id":17255,"nodeType":"ParameterList","parameters":[],"src":"255268:0:0"},"scope":17293,"src":"255213:147:0","stateMutability":"payable","virtual":false,"visibility":"public"},{"baseFunctions":[12193],"body":{"id":17282,"nodeType":"Block","src":"255539:62:0","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":17276,"name":"_getBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17292,"src":"255564:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":17277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"255564:12:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17275,"name":"IBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12220,"src":"255556:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBeacon_$12220_$","typeString":"type(contract IBeacon)"}},"id":17278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"255556:21:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBeacon_$12220","typeString":"contract IBeacon"}},"id":17279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"255578:14:0","memberName":"implementation","nodeType":"MemberAccess","referencedDeclaration":12219,"src":"255556:36:0","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":17280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"255556:38:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":17274,"id":17281,"nodeType":"Return","src":"255549:45:0"}]},"documentation":{"id":17269,"nodeType":"StructuredDocumentation","src":"255366:92:0","text":" @dev Returns the current implementation address of the associated beacon."},"id":17283,"implemented":true,"kind":"function","modifiers":[],"name":"_implementation","nameLocation":"255472:15:0","nodeType":"FunctionDefinition","overrides":{"id":17271,"nodeType":"OverrideSpecifier","overrides":[],"src":"255512:8:0"},"parameters":{"id":17270,"nodeType":"ParameterList","parameters":[],"src":"255487:2:0"},"returnParameters":{"id":17274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17273,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17283,"src":"255530:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17272,"name":"address","nodeType":"ElementaryTypeName","src":"255530:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"255529:9:0"},"scope":17293,"src":"255463:138:0","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":17291,"nodeType":"Block","src":"255717:31:0","statements":[{"expression":{"id":17289,"name":"_beacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17248,"src":"255734:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":17288,"id":17290,"nodeType":"Return","src":"255727:14:0"}]},"documentation":{"id":17284,"nodeType":"StructuredDocumentation","src":"255607:43:0","text":" @dev Returns the beacon."},"id":17292,"implemented":true,"kind":"function","modifiers":[],"name":"_getBeacon","nameLocation":"255664:10:0","nodeType":"FunctionDefinition","parameters":{"id":17285,"nodeType":"ParameterList","parameters":[],"src":"255674:2:0"},"returnParameters":{"id":17288,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17287,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17292,"src":"255708:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17286,"name":"address","nodeType":"ElementaryTypeName","src":"255708:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"255707:9:0"},"scope":17293,"src":"255655:93:0","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":20815,"src":"254556:1194:0","usedErrors":[12231,12234,16106,16116,16119],"usedEvents":[16097]},{"abstract":false,"baseContracts":[{"baseName":{"id":17295,"name":"Ownable","nameLocations":["256201:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":14002,"src":"256201:7:0"},"id":17296,"nodeType":"InheritanceSpecifier","src":"256201:7:0"}],"canonicalName":"ProxyAdmin","contractDependencies":[],"contractKind":"contract","documentation":{"id":17294,"nodeType":"StructuredDocumentation","src":"255949:228:0","text":" @dev This is an auxiliary contract meant to be assigned as the admin of a {TransparentUpgradeableProxy}. For an\n explanation of why you would want to use this see the documentation for {TransparentUpgradeableProxy}."},"fullyImplemented":true,"id":17335,"linearizedBaseContracts":[17335,14002,12499],"name":"ProxyAdmin","nameLocation":"256187:10:0","nodeType":"ContractDefinition","nodes":[{"constant":true,"documentation":{"id":17297,"nodeType":"StructuredDocumentation","src":"256215:623:0","text":" @dev The version of the upgrade interface of the contract. If this getter is missing, both `upgrade(address)`\n and `upgradeAndCall(address,bytes)` are present, and `upgradeTo` must be used if no function should be called,\n while `upgradeAndCall` will invoke the `receive` function if the second argument is the empty byte string.\n If the getter returns `\"5.0.0\"`, only `upgradeAndCall(address,bytes)` is present, and the second argument must\n be the empty byte string if no function should be called, making it impossible to invoke the `receive` function\n during an upgrade."},"functionSelector":"ad3cb1cc","id":17300,"mutability":"constant","name":"UPGRADE_INTERFACE_VERSION","nameLocation":"256866:25:0","nodeType":"VariableDeclaration","scope":17335,"src":"256843:58:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17298,"name":"string","nodeType":"ElementaryTypeName","src":"256843:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"352e302e30","id":17299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"256894:7:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_2ade050ecfcf8ae20ae1d10a23573f9d7e0bad85e74a2cf8338a65401e64558c","typeString":"literal_string \"5.0.0\""},"value":"5.0.0"},"visibility":"public"},{"body":{"id":17309,"nodeType":"Block","src":"257041:2:0","statements":[]},"documentation":{"id":17301,"nodeType":"StructuredDocumentation","src":"256908:72:0","text":" @dev Sets the initial owner who can perform upgrades."},"id":17310,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":17306,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17303,"src":"257027:12:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":17307,"kind":"baseConstructorSpecifier","modifierName":{"id":17305,"name":"Ownable","nameLocations":["257019:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":14002,"src":"257019:7:0"},"nodeType":"ModifierInvocation","src":"257019:21:0"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":17304,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17303,"mutability":"mutable","name":"initialOwner","nameLocation":"257005:12:0","nodeType":"VariableDeclaration","scope":17310,"src":"256997:20:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17302,"name":"address","nodeType":"ElementaryTypeName","src":"256997:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"256996:22:0"},"returnParameters":{"id":17308,"nodeType":"ParameterList","parameters":[],"src":"257041:0:0"},"scope":17335,"src":"256985:58:0","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":17333,"nodeType":"Block","src":"257539:79:0","statements":[{"expression":{"arguments":[{"id":17329,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17316,"src":"257590:14:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17330,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17318,"src":"257606:4:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":17323,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17314,"src":"257549:5:0","typeDescriptions":{"typeIdentifier":"t_contract$_ITransparentUpgradeableProxy_$17346","typeString":"contract ITransparentUpgradeableProxy"}},"id":17325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"257555:16:0","memberName":"upgradeToAndCall","nodeType":"MemberAccess","referencedDeclaration":17345,"src":"257549:22:0","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory) payable external"}},"id":17328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":17326,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"257579:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"257583:5:0","memberName":"value","nodeType":"MemberAccess","src":"257579:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"257549:40:0","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$_t_bytes_memory_ptr_$returns$__$value","typeString":"function (address,bytes memory) payable external"}},"id":17331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"257549:62:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17332,"nodeType":"ExpressionStatement","src":"257549:62:0"}]},"documentation":{"id":17311,"nodeType":"StructuredDocumentation","src":"257049:319:0","text":" @dev Upgrades `proxy` to `implementation` and calls a function on the new implementation.\n See {TransparentUpgradeableProxy-_dispatchUpgradeToAndCall}.\n Requirements:\n - This contract must be the admin of `proxy`.\n - If `data` is empty, `msg.value` must be zero."},"functionSelector":"9623609d","id":17334,"implemented":true,"kind":"function","modifiers":[{"id":17321,"kind":"modifierInvocation","modifierName":{"id":17320,"name":"onlyOwner","nameLocations":["257529:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":13913,"src":"257529:9:0"},"nodeType":"ModifierInvocation","src":"257529:9:0"}],"name":"upgradeAndCall","nameLocation":"257382:14:0","nodeType":"FunctionDefinition","parameters":{"id":17319,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17314,"mutability":"mutable","name":"proxy","nameLocation":"257435:5:0","nodeType":"VariableDeclaration","scope":17334,"src":"257406:34:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ITransparentUpgradeableProxy_$17346","typeString":"contract ITransparentUpgradeableProxy"},"typeName":{"id":17313,"nodeType":"UserDefinedTypeName","pathNode":{"id":17312,"name":"ITransparentUpgradeableProxy","nameLocations":["257406:28:0"],"nodeType":"IdentifierPath","referencedDeclaration":17346,"src":"257406:28:0"},"referencedDeclaration":17346,"src":"257406:28:0","typeDescriptions":{"typeIdentifier":"t_contract$_ITransparentUpgradeableProxy_$17346","typeString":"contract ITransparentUpgradeableProxy"}},"visibility":"internal"},{"constant":false,"id":17316,"mutability":"mutable","name":"implementation","nameLocation":"257458:14:0","nodeType":"VariableDeclaration","scope":17334,"src":"257450:22:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17315,"name":"address","nodeType":"ElementaryTypeName","src":"257450:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17318,"mutability":"mutable","name":"data","nameLocation":"257495:4:0","nodeType":"VariableDeclaration","scope":17334,"src":"257482:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":17317,"name":"bytes","nodeType":"ElementaryTypeName","src":"257482:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"257396:109:0"},"returnParameters":{"id":17322,"nodeType":"ParameterList","parameters":[],"src":"257539:0:0"},"scope":17335,"src":"257373:245:0","stateMutability":"payable","virtual":true,"visibility":"public"}],"scope":20815,"src":"256178:1442:0","usedErrors":[13868,13873],"usedEvents":[13879]},{"abstract":false,"baseContracts":[{"baseName":{"id":17337,"name":"IERC1967","nameLocations":["258341:8:0"],"nodeType":"IdentifierPath","referencedDeclaration":12178,"src":"258341:8:0"},"id":17338,"nodeType":"InheritanceSpecifier","src":"258341:8:0"}],"canonicalName":"ITransparentUpgradeableProxy","contractDependencies":[],"contractKind":"interface","documentation":{"id":17336,"nodeType":"StructuredDocumentation","src":"257853:445:0","text":" @dev Interface for {TransparentUpgradeableProxy}. In order to implement transparency, {TransparentUpgradeableProxy}\n does not implement this interface directly, and its upgradeability mechanism is implemented by an internal dispatch\n mechanism. The compiler is unaware that these functions are implemented by {TransparentUpgradeableProxy} and will not\n include them in the ABI so this interface must be used to interact with it."},"fullyImplemented":false,"id":17346,"linearizedBaseContracts":[17346,12178],"name":"ITransparentUpgradeableProxy","nameLocation":"258309:28:0","nodeType":"ContractDefinition","nodes":[{"functionSelector":"4f1ef286","id":17345,"implemented":false,"kind":"function","modifiers":[],"name":"upgradeToAndCall","nameLocation":"258365:16:0","nodeType":"FunctionDefinition","parameters":{"id":17343,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17340,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17345,"src":"258382:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17339,"name":"address","nodeType":"ElementaryTypeName","src":"258382:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17342,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17345,"src":"258391:14:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":17341,"name":"bytes","nodeType":"ElementaryTypeName","src":"258391:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"258381:25:0"},"returnParameters":{"id":17344,"nodeType":"ParameterList","parameters":[],"src":"258423:0:0"},"scope":17346,"src":"258356:68:0","stateMutability":"payable","virtual":false,"visibility":"external"}],"scope":20815,"src":"258299:127:0","usedErrors":[],"usedEvents":[12165,12172,12177]},{"abstract":false,"baseContracts":[{"baseName":{"id":17348,"name":"ERC1967Proxy","nameLocations":["261661:12:0"],"nodeType":"IdentifierPath","referencedDeclaration":17243,"src":"261661:12:0"},"id":17349,"nodeType":"InheritanceSpecifier","src":"261661:12:0"}],"canonicalName":"TransparentUpgradeableProxy","contractDependencies":[17335],"contractKind":"contract","documentation":{"id":17347,"nodeType":"StructuredDocumentation","src":"258428:3192:0","text":" @dev This contract implements a proxy that is upgradeable through an associated {ProxyAdmin} instance.\n To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector\n clashing], which can potentially be used in an attack, this contract uses the\n https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two\n things that go hand in hand:\n 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if\n that call matches the {ITransparentUpgradeableProxy-upgradeToAndCall} function exposed by the proxy itself.\n 2. If the admin calls the proxy, it can call the `upgradeToAndCall` function but any other call won't be forwarded to\n the implementation. If the admin tries to call a function on the implementation it will fail with an error indicating\n the proxy admin cannot fallback to the target implementation.\n These properties mean that the admin account can only be used for upgrading the proxy, so it's best if it's a\n dedicated account that is not used for anything else. This will avoid headaches due to sudden errors when trying to\n call a function from the proxy implementation. For this reason, the proxy deploys an instance of {ProxyAdmin} and\n allows upgrades only if they come through it. You should think of the `ProxyAdmin` instance as the administrative\n interface of the proxy, including the ability to change who can trigger upgrades by transferring ownership.\n NOTE: The real interface of this proxy is that defined in `ITransparentUpgradeableProxy`. This contract does not\n inherit from that interface, and instead `upgradeToAndCall` is implicitly implemented using a custom dispatch\n mechanism in `_fallback`. Consequently, the compiler will not produce an ABI for this contract. This is necessary to\n fully implement transparency without decoding reverts caused by selector clashes between the proxy and the\n implementation.\n NOTE: This proxy does not inherit from {Context} deliberately. The {ProxyAdmin} of this contract won't send a\n meta-transaction in any way, and any other meta-transaction setup should be made in the implementation contract.\n IMPORTANT: This contract avoids unnecessary storage reads by setting the admin only during construction as an\n immutable variable, preventing any changes thereafter. However, the admin slot defined in ERC-1967 can still be\n overwritten by the implementation logic pointed to by this proxy. In such cases, the contract may end up in an\n undesirable state where the admin slot is different from the actual admin.\n WARNING: It is not recommended to extend this contract to add additional external functions. If you do so, the\n compiler will not check that there are no selector conflicts, due to the note above. A selector clash between any new\n function and the functions declared in {ITransparentUpgradeableProxy} will be resolved in favor of the new one. This\n could render the `upgradeToAndCall` function inaccessible, preventing upgradeability and compromising transparency."},"fullyImplemented":true,"id":17460,"linearizedBaseContracts":[17460,17243,12212],"name":"TransparentUpgradeableProxy","nameLocation":"261630:27:0","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":17351,"mutability":"immutable","name":"_admin","nameLocation":"262041:6:0","nodeType":"VariableDeclaration","scope":17460,"src":"262015:32:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17350,"name":"address","nodeType":"ElementaryTypeName","src":"262015:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"documentation":{"id":17352,"nodeType":"StructuredDocumentation","src":"262054:102:0","text":" @dev The proxy caller is the current admin, and can't fallback to the proxy target."},"errorSelector":"d2b576ec","id":17354,"name":"ProxyDeniedAdminAccess","nameLocation":"262167:22:0","nodeType":"ErrorDefinition","parameters":{"id":17353,"nodeType":"ParameterList","parameters":[],"src":"262189:2:0"},"src":"262161:31:0"},{"body":{"id":17386,"nodeType":"Block","src":"262570:190:0","statements":[{"expression":{"id":17377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17368,"name":"_admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17351,"src":"262580:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":17374,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17359,"src":"262612:12:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"262597:14:0","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$returns$_t_contract$_ProxyAdmin_$17335_$","typeString":"function (address) returns (contract ProxyAdmin)"},"typeName":{"id":17372,"nodeType":"UserDefinedTypeName","pathNode":{"id":17371,"name":"ProxyAdmin","nameLocations":["262601:10:0"],"nodeType":"IdentifierPath","referencedDeclaration":17335,"src":"262601:10:0"},"referencedDeclaration":17335,"src":"262601:10:0","typeDescriptions":{"typeIdentifier":"t_contract$_ProxyAdmin_$17335","typeString":"contract ProxyAdmin"}}},"id":17375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"262597:28:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ProxyAdmin_$17335","typeString":"contract ProxyAdmin"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ProxyAdmin_$17335","typeString":"contract ProxyAdmin"}],"id":17370,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"262589:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":17369,"name":"address","nodeType":"ElementaryTypeName","src":"262589:7:0","typeDescriptions":{}}},"id":17376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"262589:37:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"262580:46:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":17378,"nodeType":"ExpressionStatement","src":"262580:46:0"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":17382,"name":"_proxyAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17396,"src":"262739:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_address_$","typeString":"function () returns (address)"}},"id":17383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"262739:13:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":17379,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16374,"src":"262714:12:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1967Utils_$16374_$","typeString":"type(library ERC1967Utils)"}},"id":17381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"262727:11:0","memberName":"changeAdmin","nodeType":"MemberAccess","referencedDeclaration":16258,"src":"262714:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":17384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"262714:39:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17385,"nodeType":"ExpressionStatement","src":"262714:39:0"}]},"documentation":{"id":17355,"nodeType":"StructuredDocumentation","src":"262198:261:0","text":" @dev Initializes an upgradeable proxy managed by an instance of a {ProxyAdmin} with an `initialOwner`,\n backed by the implementation at `_logic`, and optionally initialized with `_data` as explained in\n {ERC1967Proxy-constructor}."},"id":17387,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":17364,"name":"_logic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17357,"src":"262555:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17365,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17361,"src":"262563:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":17366,"kind":"baseConstructorSpecifier","modifierName":{"id":17363,"name":"ERC1967Proxy","nameLocations":["262542:12:0"],"nodeType":"IdentifierPath","referencedDeclaration":17243,"src":"262542:12:0"},"nodeType":"ModifierInvocation","src":"262542:27:0"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":17362,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17357,"mutability":"mutable","name":"_logic","nameLocation":"262484:6:0","nodeType":"VariableDeclaration","scope":17387,"src":"262476:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17356,"name":"address","nodeType":"ElementaryTypeName","src":"262476:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17359,"mutability":"mutable","name":"initialOwner","nameLocation":"262500:12:0","nodeType":"VariableDeclaration","scope":17387,"src":"262492:20:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17358,"name":"address","nodeType":"ElementaryTypeName","src":"262492:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17361,"mutability":"mutable","name":"_data","nameLocation":"262527:5:0","nodeType":"VariableDeclaration","scope":17387,"src":"262514:18:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":17360,"name":"bytes","nodeType":"ElementaryTypeName","src":"262514:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"262475:58:0"},"returnParameters":{"id":17367,"nodeType":"ParameterList","parameters":[],"src":"262570:0:0"},"scope":17460,"src":"262464:296:0","stateMutability":"payable","virtual":false,"visibility":"public"},{"body":{"id":17395,"nodeType":"Block","src":"262885:30:0","statements":[{"expression":{"id":17393,"name":"_admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17351,"src":"262902:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":17392,"id":17394,"nodeType":"Return","src":"262895:13:0"}]},"documentation":{"id":17388,"nodeType":"StructuredDocumentation","src":"262766:56:0","text":" @dev Returns the admin of this proxy."},"id":17396,"implemented":true,"kind":"function","modifiers":[],"name":"_proxyAdmin","nameLocation":"262836:11:0","nodeType":"FunctionDefinition","parameters":{"id":17389,"nodeType":"ParameterList","parameters":[],"src":"262847:2:0"},"returnParameters":{"id":17392,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17391,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17396,"src":"262876:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17390,"name":"address","nodeType":"ElementaryTypeName","src":"262876:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"262875:9:0"},"scope":17460,"src":"262827:88:0","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"baseFunctions":[12203],"body":{"id":17429,"nodeType":"Block","src":"263104:322:0","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":17405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17401,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"263118:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"263122:6:0","memberName":"sender","nodeType":"MemberAccess","src":"263118:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":17403,"name":"_proxyAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17396,"src":"263132:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_address_$","typeString":"function () returns (address)"}},"id":17404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"263132:13:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"263118:27:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":17427,"nodeType":"Block","src":"263378:42:0","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17422,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"263392:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_TransparentUpgradeableProxy_$17460_$","typeString":"type(contract super TransparentUpgradeableProxy)"}},"id":17424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"263398:9:0","memberName":"_fallback","nodeType":"MemberAccess","referencedDeclaration":12203,"src":"263392:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":17425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"263392:17:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17426,"nodeType":"ExpressionStatement","src":"263392:17:0"}]},"id":17428,"nodeType":"IfStatement","src":"263114:306:0","trueBody":{"id":17421,"nodeType":"Block","src":"263147:225:0","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":17411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17406,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"263165:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"263169:3:0","memberName":"sig","nodeType":"MemberAccess","src":"263165:7:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":17408,"name":"ITransparentUpgradeableProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17346,"src":"263176:28:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ITransparentUpgradeableProxy_$17346_$","typeString":"type(contract ITransparentUpgradeableProxy)"}},"id":17409,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"263205:16:0","memberName":"upgradeToAndCall","nodeType":"MemberAccess","referencedDeclaration":17345,"src":"263176:45:0","typeDescriptions":{"typeIdentifier":"t_function_declaration_payable$_t_address_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function ITransparentUpgradeableProxy.upgradeToAndCall(address,bytes calldata) payable"}},"id":17410,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"263222:8:0","memberName":"selector","nodeType":"MemberAccess","src":"263176:54:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"263165:65:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":17419,"nodeType":"Block","src":"263302:60:0","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":17416,"name":"_dispatchUpgradeToAndCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17459,"src":"263320:25:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":17417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"263320:27:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17418,"nodeType":"ExpressionStatement","src":"263320:27:0"}]},"id":17420,"nodeType":"IfStatement","src":"263161:201:0","trueBody":{"id":17415,"nodeType":"Block","src":"263232:64:0","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":17412,"name":"ProxyDeniedAdminAccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17354,"src":"263257:22:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":17413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"263257:24:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":17414,"nodeType":"RevertStatement","src":"263250:31:0"}]}}]}}]},"documentation":{"id":17397,"nodeType":"StructuredDocumentation","src":"262921:131:0","text":" @dev If caller is the admin process the call internally, otherwise transparently fallback to the proxy behavior."},"id":17430,"implemented":true,"kind":"function","modifiers":[],"name":"_fallback","nameLocation":"263066:9:0","nodeType":"FunctionDefinition","overrides":{"id":17399,"nodeType":"OverrideSpecifier","overrides":[],"src":"263095:8:0"},"parameters":{"id":17398,"nodeType":"ParameterList","parameters":[],"src":"263075:2:0"},"returnParameters":{"id":17400,"nodeType":"ParameterList","parameters":[],"src":"263104:0:0"},"scope":17460,"src":"263057:369:0","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":17458,"nodeType":"Block","src":"263673:172:0","statements":[{"assignments":[17435,17437],"declarations":[{"constant":false,"id":17435,"mutability":"mutable","name":"newImplementation","nameLocation":"263692:17:0","nodeType":"VariableDeclaration","scope":17458,"src":"263684:25:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17434,"name":"address","nodeType":"ElementaryTypeName","src":"263684:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17437,"mutability":"mutable","name":"data","nameLocation":"263724:4:0","nodeType":"VariableDeclaration","scope":17458,"src":"263711:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":17436,"name":"bytes","nodeType":"ElementaryTypeName","src":"263711:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":17450,"initialValue":{"arguments":[{"baseExpression":{"expression":{"id":17440,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"263743:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"263747:4:0","memberName":"data","nodeType":"MemberAccess","src":"263743:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":17443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"263743:12:0","startExpression":{"hexValue":"34","id":17442,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"263752:1:0","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}},{"components":[{"id":17445,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"263758:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":17444,"name":"address","nodeType":"ElementaryTypeName","src":"263758:7:0","typeDescriptions":{}}},{"id":17447,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"263767:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":17446,"name":"bytes","nodeType":"ElementaryTypeName","src":"263767:5:0","typeDescriptions":{}}}],"id":17448,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"263757:16:0","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_address_$_$_t_type$_t_bytes_storage_ptr_$_$","typeString":"tuple(type(address),type(bytes storage pointer))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"},{"typeIdentifier":"t_tuple$_t_type$_t_address_$_$_t_type$_t_bytes_storage_ptr_$_$","typeString":"tuple(type(address),type(bytes storage pointer))"}],"expression":{"id":17438,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"263732:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17439,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"263736:6:0","memberName":"decode","nodeType":"MemberAccess","src":"263732:10:0","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":17449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"263732:42:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_payable_$_t_bytes_memory_ptr_$","typeString":"tuple(address payable,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"263683:91:0"},{"expression":{"arguments":[{"id":17454,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17435,"src":"263814:17:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17455,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17437,"src":"263833:4:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":17451,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16374,"src":"263784:12:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1967Utils_$16374_$","typeString":"type(library ERC1967Utils)"}},"id":17453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"263797:16:0","memberName":"upgradeToAndCall","nodeType":"MemberAccess","referencedDeclaration":16193,"src":"263784:29:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory)"}},"id":17456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"263784:54:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17457,"nodeType":"ExpressionStatement","src":"263784:54:0"}]},"documentation":{"id":17431,"nodeType":"StructuredDocumentation","src":"263432:191:0","text":" @dev Upgrade the implementation of the proxy. See {ERC1967Utils-upgradeToAndCall}.\n Requirements:\n - If `data` is empty, `msg.value` must be zero."},"id":17459,"implemented":true,"kind":"function","modifiers":[],"name":"_dispatchUpgradeToAndCall","nameLocation":"263637:25:0","nodeType":"FunctionDefinition","parameters":{"id":17432,"nodeType":"ParameterList","parameters":[],"src":"263662:2:0"},"returnParameters":{"id":17433,"nodeType":"ParameterList","parameters":[],"src":"263673:0:0"},"scope":17460,"src":"263628:217:0","stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"scope":20815,"src":"261621:2226:0","usedErrors":[12231,12234,16106,16111,16119,17354],"usedEvents":[16085,16092]},{"abstract":false,"baseContracts":[],"canonicalName":"Defender","contractDependencies":[],"contractKind":"library","documentation":{"id":17461,"nodeType":"StructuredDocumentation","src":"263904:95:0","text":" @dev Library for interacting with OpenZeppelin Defender from Forge scripts or tests."},"fullyImplemented":true,"id":17609,"linearizedBaseContracts":[17609],"name":"Defender","nameLocation":"264008:8:0","nodeType":"ContractDefinition","nodes":[{"body":{"id":17474,"nodeType":"Block","src":"264859:56:0","statements":[{"expression":{"arguments":[{"id":17470,"name":"contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17464,"src":"264891:12:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"","id":17471,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"264905:2:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":17469,"name":"deployContract","nodeType":"Identifier","overloadedDeclarations":[17475,17493,17514,17535],"referencedDeclaration":17514,"src":"264876:14:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_address_$","typeString":"function (string memory,bytes memory) returns (address)"}},"id":17472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"264876:32:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":17468,"id":17473,"nodeType":"Return","src":"264869:39:0"}]},"documentation":{"id":17462,"nodeType":"StructuredDocumentation","src":"264023:752:0","text":" @dev Deploys a contract to the current network using OpenZeppelin Defender.\n WARNING: Do not use this function directly if you are deploying an upgradeable contract. This function does not validate whether the contract is upgrade safe.\n NOTE: If using an EOA or Safe to deploy, go to https://defender.openzeppelin.com/v2/#/deploy[Defender deploy] to submit the pending deployment while the script is running.\n The script waits for the deployment to complete before it continues.\n @param contractName Name of the contract to deploy, e.g. \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n @return Address of the deployed contract"},"id":17475,"implemented":true,"kind":"function","modifiers":[],"name":"deployContract","nameLocation":"264789:14:0","nodeType":"FunctionDefinition","parameters":{"id":17465,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17464,"mutability":"mutable","name":"contractName","nameLocation":"264818:12:0","nodeType":"VariableDeclaration","scope":17475,"src":"264804:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17463,"name":"string","nodeType":"ElementaryTypeName","src":"264804:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"264803:28:0"},"returnParameters":{"id":17468,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17467,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17475,"src":"264850:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17466,"name":"address","nodeType":"ElementaryTypeName","src":"264850:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"264849:9:0"},"scope":17609,"src":"264780:135:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":17492,"nodeType":"Block","src":"265973:70:0","statements":[{"expression":{"arguments":[{"id":17487,"name":"contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17478,"src":"266005:12:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"","id":17488,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"266019:2:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},{"id":17489,"name":"defenderOpts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17481,"src":"266023:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_DefenderOptions_$13800_memory_ptr","typeString":"struct DefenderOptions memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},{"typeIdentifier":"t_struct$_DefenderOptions_$13800_memory_ptr","typeString":"struct DefenderOptions memory"}],"id":17486,"name":"deployContract","nodeType":"Identifier","overloadedDeclarations":[17475,17493,17514,17535],"referencedDeclaration":17535,"src":"265990:14:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_struct$_DefenderOptions_$13800_memory_ptr_$returns$_t_address_$","typeString":"function (string memory,bytes memory,struct DefenderOptions memory) returns (address)"}},"id":17490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"265990:46:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":17485,"id":17491,"nodeType":"Return","src":"265983:53:0"}]},"documentation":{"id":17476,"nodeType":"StructuredDocumentation","src":"264921:909:0","text":" @dev Deploys a contract to the current network using OpenZeppelin Defender.\n WARNING: Do not use this function directly if you are deploying an upgradeable contract. This function does not validate whether the contract is upgrade safe.\n NOTE: If using an EOA or Safe to deploy, go to https://defender.openzeppelin.com/v2/#/deploy[Defender deploy] to submit the pending deployment while the script is running.\n The script waits for the deployment to complete before it continues.\n @param contractName Name of the contract to deploy, e.g. \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n @param defenderOpts Defender deployment options. Note that the `useDefenderDeploy` option is always treated as `true` when called from this function.\n @return Address of the deployed contract"},"id":17493,"implemented":true,"kind":"function","modifiers":[],"name":"deployContract","nameLocation":"265844:14:0","nodeType":"FunctionDefinition","parameters":{"id":17482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17478,"mutability":"mutable","name":"contractName","nameLocation":"265882:12:0","nodeType":"VariableDeclaration","scope":17493,"src":"265868:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17477,"name":"string","nodeType":"ElementaryTypeName","src":"265868:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17481,"mutability":"mutable","name":"defenderOpts","nameLocation":"265927:12:0","nodeType":"VariableDeclaration","scope":17493,"src":"265904:35:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_DefenderOptions_$13800_memory_ptr","typeString":"struct DefenderOptions"},"typeName":{"id":17480,"nodeType":"UserDefinedTypeName","pathNode":{"id":17479,"name":"DefenderOptions","nameLocations":["265904:15:0"],"nodeType":"IdentifierPath","referencedDeclaration":13800,"src":"265904:15:0"},"referencedDeclaration":13800,"src":"265904:15:0","typeDescriptions":{"typeIdentifier":"t_struct$_DefenderOptions_$13800_storage_ptr","typeString":"struct DefenderOptions"}},"visibility":"internal"}],"src":"265858:87:0"},"returnParameters":{"id":17485,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17484,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17493,"src":"265964:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17483,"name":"address","nodeType":"ElementaryTypeName","src":"265964:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"265963:9:0"},"scope":17609,"src":"265835:208:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":17513,"nodeType":"Block","src":"267002:128:0","statements":[{"assignments":[17505],"declarations":[{"constant":false,"id":17505,"mutability":"mutable","name":"defenderOpts","nameLocation":"267035:12:0","nodeType":"VariableDeclaration","scope":17513,"src":"267012:35:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_DefenderOptions_$13800_memory_ptr","typeString":"struct DefenderOptions"},"typeName":{"id":17504,"nodeType":"UserDefinedTypeName","pathNode":{"id":17503,"name":"DefenderOptions","nameLocations":["267012:15:0"],"nodeType":"IdentifierPath","referencedDeclaration":13800,"src":"267012:15:0"},"referencedDeclaration":13800,"src":"267012:15:0","typeDescriptions":{"typeIdentifier":"t_struct$_DefenderOptions_$13800_storage_ptr","typeString":"struct DefenderOptions"}},"visibility":"internal"}],"id":17506,"nodeType":"VariableDeclarationStatement","src":"267012:35:0"},{"expression":{"arguments":[{"id":17508,"name":"contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17496,"src":"267079:12:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17509,"name":"constructorData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17498,"src":"267093:15:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":17510,"name":"defenderOpts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17505,"src":"267110:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_DefenderOptions_$13800_memory_ptr","typeString":"struct DefenderOptions memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_struct$_DefenderOptions_$13800_memory_ptr","typeString":"struct DefenderOptions memory"}],"id":17507,"name":"deployContract","nodeType":"Identifier","overloadedDeclarations":[17475,17493,17514,17535],"referencedDeclaration":17535,"src":"267064:14:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_struct$_DefenderOptions_$13800_memory_ptr_$returns$_t_address_$","typeString":"function (string memory,bytes memory,struct DefenderOptions memory) returns (address)"}},"id":17511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"267064:59:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":17502,"id":17512,"nodeType":"Return","src":"267057:66:0"}]},"documentation":{"id":17494,"nodeType":"StructuredDocumentation","src":"266049:839:0","text":" @dev Deploys a contract with constructor arguments to the current network using OpenZeppelin Defender.\n WARNING: Do not use this function directly if you are deploying an upgradeable contract. This function does not validate whether the contract is upgrade safe.\n NOTE: If using an EOA or Safe to deploy, go to https://defender.openzeppelin.com/v2/#/deploy[Defender deploy] to submit the pending deployment while the script is running.\n The script waits for the deployment to complete before it continues.\n @param contractName Name of the contract to deploy, e.g. \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n @param constructorData Encoded constructor arguments\n @return Address of the deployed contract"},"id":17514,"implemented":true,"kind":"function","modifiers":[],"name":"deployContract","nameLocation":"266902:14:0","nodeType":"FunctionDefinition","parameters":{"id":17499,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17496,"mutability":"mutable","name":"contractName","nameLocation":"266931:12:0","nodeType":"VariableDeclaration","scope":17514,"src":"266917:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17495,"name":"string","nodeType":"ElementaryTypeName","src":"266917:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17498,"mutability":"mutable","name":"constructorData","nameLocation":"266958:15:0","nodeType":"VariableDeclaration","scope":17514,"src":"266945:28:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":17497,"name":"bytes","nodeType":"ElementaryTypeName","src":"266945:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"266916:58:0"},"returnParameters":{"id":17502,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17501,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17514,"src":"266993:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17500,"name":"address","nodeType":"ElementaryTypeName","src":"266993:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"266992:9:0"},"scope":17609,"src":"266893:237:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":17534,"nodeType":"Block","src":"268313:90:0","statements":[{"expression":{"arguments":[{"id":17529,"name":"contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17517,"src":"268352:12:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17530,"name":"constructorData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17519,"src":"268366:15:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":17531,"name":"defenderOpts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17522,"src":"268383:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_DefenderOptions_$13800_memory_ptr","typeString":"struct DefenderOptions memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_struct$_DefenderOptions_$13800_memory_ptr","typeString":"struct DefenderOptions memory"}],"expression":{"id":17527,"name":"DefenderDeploy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20094,"src":"268330:14:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DefenderDeploy_$20094_$","typeString":"type(library DefenderDeploy)"}},"id":17528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"268345:6:0","memberName":"deploy","nodeType":"MemberAccess","referencedDeclaration":18701,"src":"268330:21:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_struct$_DefenderOptions_$13800_memory_ptr_$returns$_t_address_$","typeString":"function (string memory,bytes memory,struct DefenderOptions memory) returns (address)"}},"id":17532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"268330:66:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":17526,"id":17533,"nodeType":"Return","src":"268323:73:0"}]},"documentation":{"id":17515,"nodeType":"StructuredDocumentation","src":"267136:996:0","text":" @dev Deploys a contract with constructor arguments to the current network using OpenZeppelin Defender.\n WARNING: Do not use this function directly if you are deploying an upgradeable contract. This function does not validate whether the contract is upgrade safe.\n NOTE: If using an EOA or Safe to deploy, go to https://defender.openzeppelin.com/v2/#/deploy[Defender deploy] to submit the pending deployment while the script is running.\n The script waits for the deployment to complete before it continues.\n @param contractName Name of the contract to deploy, e.g. \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n @param constructorData Encoded constructor arguments\n @param defenderOpts Defender deployment options. Note that the `useDefenderDeploy` option is always treated as `true` when called from this function.\n @return Address of the deployed contract"},"id":17535,"implemented":true,"kind":"function","modifiers":[],"name":"deployContract","nameLocation":"268146:14:0","nodeType":"FunctionDefinition","parameters":{"id":17523,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17517,"mutability":"mutable","name":"contractName","nameLocation":"268184:12:0","nodeType":"VariableDeclaration","scope":17535,"src":"268170:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17516,"name":"string","nodeType":"ElementaryTypeName","src":"268170:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17519,"mutability":"mutable","name":"constructorData","nameLocation":"268219:15:0","nodeType":"VariableDeclaration","scope":17535,"src":"268206:28:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":17518,"name":"bytes","nodeType":"ElementaryTypeName","src":"268206:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":17522,"mutability":"mutable","name":"defenderOpts","nameLocation":"268267:12:0","nodeType":"VariableDeclaration","scope":17535,"src":"268244:35:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_DefenderOptions_$13800_memory_ptr","typeString":"struct DefenderOptions"},"typeName":{"id":17521,"nodeType":"UserDefinedTypeName","pathNode":{"id":17520,"name":"DefenderOptions","nameLocations":["268244:15:0"],"nodeType":"IdentifierPath","referencedDeclaration":13800,"src":"268244:15:0"},"referencedDeclaration":13800,"src":"268244:15:0","typeDescriptions":{"typeIdentifier":"t_struct$_DefenderOptions_$13800_storage_ptr","typeString":"struct DefenderOptions"}},"visibility":"internal"}],"src":"268160:125:0"},"returnParameters":{"id":17526,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17525,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17535,"src":"268304:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17524,"name":"address","nodeType":"ElementaryTypeName","src":"268304:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"268303:9:0"},"scope":17609,"src":"268137:266:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":17581,"nodeType":"Block","src":"270410:476:0","statements":[{"expression":{"id":17555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":17549,"name":"opts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17543,"src":"270420:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}},"id":17552,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"270425:8:0","memberName":"defender","nodeType":"MemberAccess","referencedDeclaration":13778,"src":"270420:13:0","typeDescriptions":{"typeIdentifier":"t_struct$_DefenderOptions_$13800_memory_ptr","typeString":"struct DefenderOptions memory"}},"id":17553,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"270434:17:0","memberName":"useDefenderDeploy","nodeType":"MemberAccess","referencedDeclaration":13782,"src":"270420:31:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":17554,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"270454:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"270420:38:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17556,"nodeType":"ExpressionStatement","src":"270420:38:0"},{"assignments":[17558],"declarations":[{"constant":false,"id":17558,"mutability":"mutable","name":"proxyAdminAddress","nameLocation":"270476:17:0","nodeType":"VariableDeclaration","scope":17581,"src":"270468:25:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17557,"name":"address","nodeType":"ElementaryTypeName","src":"270468:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":17563,"initialValue":{"arguments":[{"id":17561,"name":"proxyAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17538,"src":"270517:12:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":17559,"name":"Core","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18590,"src":"270496:4:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Core_$18590_$","typeString":"type(library Core)"}},"id":17560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"270501:15:0","memberName":"getAdminAddress","nodeType":"MemberAccess","referencedDeclaration":18020,"src":"270496:20:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":17562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"270496:34:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"270468:62:0"},{"assignments":[17565],"declarations":[{"constant":false,"id":17565,"mutability":"mutable","name":"newImplementationAddress","nameLocation":"270548:24:0","nodeType":"VariableDeclaration","scope":17581,"src":"270540:32:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17564,"name":"address","nodeType":"ElementaryTypeName","src":"270540:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":17571,"initialValue":{"arguments":[{"id":17568,"name":"newImplementationContractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17540,"src":"270595:29:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17569,"name":"opts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17543,"src":"270626:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}],"expression":{"id":17566,"name":"Core","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18590,"src":"270575:4:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Core_$18590_$","typeString":"type(library Core)"}},"id":17567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"270580:14:0","memberName":"prepareUpgrade","nodeType":"MemberAccess","referencedDeclaration":17984,"src":"270575:19:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_Options_$13779_memory_ptr_$returns$_t_address_$","typeString":"function (string memory,struct Options memory) returns (address)"}},"id":17570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"270575:56:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"270540:91:0"},{"expression":{"arguments":[{"id":17574,"name":"proxyAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17538,"src":"270707:12:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17575,"name":"proxyAdminAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17558,"src":"270737:17:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17576,"name":"newImplementationAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17565,"src":"270772:24:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17577,"name":"newImplementationContractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17540,"src":"270814:29:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17578,"name":"opts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17543,"src":"270861:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}],"expression":{"id":17572,"name":"DefenderDeploy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20094,"src":"270660:14:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DefenderDeploy_$20094_$","typeString":"type(library DefenderDeploy)"}},"id":17573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"270675:14:0","memberName":"proposeUpgrade","nodeType":"MemberAccess","referencedDeclaration":19507,"src":"270660:29:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_string_memory_ptr_$_t_struct$_Options_$13779_memory_ptr_$returns$_t_struct$_ProposeUpgradeResponse_$17614_memory_ptr_$","typeString":"function (address,address,address,string memory,struct Options memory) returns (struct ProposeUpgradeResponse memory)"}},"id":17579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"270660:219:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ProposeUpgradeResponse_$17614_memory_ptr","typeString":"struct ProposeUpgradeResponse memory"}},"functionReturnParameters":17548,"id":17580,"nodeType":"Return","src":"270641:238:0"}]},"documentation":{"id":17536,"nodeType":"StructuredDocumentation","src":"268409:1805:0","text":" @dev Proposes an upgrade to an upgradeable proxy using OpenZeppelin Defender.\n This function validates a new implementation contract in comparison with a reference contract, deploys the new implementation contract using Defender,\n and proposes an upgrade to the new implementation contract using an upgrade approval process on Defender.\n Supported for UUPS or Transparent proxies. Not currently supported for beacon proxies or beacons.\n For beacons, use `Upgrades.prepareUpgrade` along with a transaction proposal on Defender to upgrade the beacon to the deployed implementation.\n Requires that either the `referenceContract` option is set, or the contract has a `@custom:oz-upgrades-from ` annotation.\n WARNING: Ensure that the reference contract is the same as the current implementation contract that the proxy is pointing to.\n This function does not validate that the reference contract is the current implementation.\n NOTE: If using an EOA or Safe to deploy, go to https://defender.openzeppelin.com/v2/#/deploy[Defender deploy] to submit the pending deployment of the new implementation contract while the script is running.\n The script waits for the deployment to complete before it continues.\n @param proxyAddress The proxy address\n @param newImplementationContractName Name of the new implementation contract to upgrade to, e.g. \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n @param opts Common options. Note that the `defender.useDefenderDeploy` option is always treated as `true` when called from this function.\n @return Struct containing the proposal ID and URL for the upgrade proposal"},"id":17582,"implemented":true,"kind":"function","modifiers":[],"name":"proposeUpgrade","nameLocation":"270228:14:0","nodeType":"FunctionDefinition","parameters":{"id":17544,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17538,"mutability":"mutable","name":"proxyAddress","nameLocation":"270260:12:0","nodeType":"VariableDeclaration","scope":17582,"src":"270252:20:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17537,"name":"address","nodeType":"ElementaryTypeName","src":"270252:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17540,"mutability":"mutable","name":"newImplementationContractName","nameLocation":"270296:29:0","nodeType":"VariableDeclaration","scope":17582,"src":"270282:43:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17539,"name":"string","nodeType":"ElementaryTypeName","src":"270282:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17543,"mutability":"mutable","name":"opts","nameLocation":"270350:4:0","nodeType":"VariableDeclaration","scope":17582,"src":"270335:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options"},"typeName":{"id":17542,"nodeType":"UserDefinedTypeName","pathNode":{"id":17541,"name":"Options","nameLocations":["270335:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":13779,"src":"270335:7:0"},"referencedDeclaration":13779,"src":"270335:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_storage_ptr","typeString":"struct Options"}},"visibility":"internal"}],"src":"270242:118:0"},"returnParameters":{"id":17548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17547,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17582,"src":"270379:29:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ProposeUpgradeResponse_$17614_memory_ptr","typeString":"struct ProposeUpgradeResponse"},"typeName":{"id":17546,"nodeType":"UserDefinedTypeName","pathNode":{"id":17545,"name":"ProposeUpgradeResponse","nameLocations":["270379:22:0"],"nodeType":"IdentifierPath","referencedDeclaration":17614,"src":"270379:22:0"},"referencedDeclaration":17614,"src":"270379:22:0","typeDescriptions":{"typeIdentifier":"t_struct$_ProposeUpgradeResponse_$17614_storage_ptr","typeString":"struct ProposeUpgradeResponse"}},"visibility":"internal"}],"src":"270378:31:0"},"scope":17609,"src":"270219:667:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":17594,"nodeType":"Block","src":"271269:85:0","statements":[{"expression":{"arguments":[{"hexValue":"6765744465706c6f79417070726f76616c50726f63657373","id":17591,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"271320:26:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_91822dcfbccd70857ea12c11e81f053ad02f3260a0e761f9bc86f992a041634f","typeString":"literal_string \"getDeployApprovalProcess\""},"value":"getDeployApprovalProcess"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_91822dcfbccd70857ea12c11e81f053ad02f3260a0e761f9bc86f992a041634f","typeString":"literal_string \"getDeployApprovalProcess\""}],"expression":{"id":17589,"name":"DefenderDeploy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20094,"src":"271286:14:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DefenderDeploy_$20094_$","typeString":"type(library DefenderDeploy)"}},"id":17590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"271301:18:0","memberName":"getApprovalProcess","nodeType":"MemberAccess","referencedDeclaration":19920,"src":"271286:33:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_struct$_ApprovalProcessResponse_$17621_memory_ptr_$","typeString":"function (string memory) returns (struct ApprovalProcessResponse memory)"}},"id":17592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"271286:61:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ApprovalProcessResponse_$17621_memory_ptr","typeString":"struct ApprovalProcessResponse memory"}},"functionReturnParameters":17588,"id":17593,"nodeType":"Return","src":"271279:68:0"}]},"documentation":{"id":17583,"nodeType":"StructuredDocumentation","src":"270892:286:0","text":" @dev Gets the default deploy approval process configured for your deployment environment on OpenZeppelin Defender.\n @return Struct with the default deploy approval process ID and the associated address, such as a Relayer, EOA, or multisig wallet address."},"id":17595,"implemented":true,"kind":"function","modifiers":[],"name":"getDeployApprovalProcess","nameLocation":"271192:24:0","nodeType":"FunctionDefinition","parameters":{"id":17584,"nodeType":"ParameterList","parameters":[],"src":"271216:2:0"},"returnParameters":{"id":17588,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17587,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17595,"src":"271237:30:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ApprovalProcessResponse_$17621_memory_ptr","typeString":"struct ApprovalProcessResponse"},"typeName":{"id":17586,"nodeType":"UserDefinedTypeName","pathNode":{"id":17585,"name":"ApprovalProcessResponse","nameLocations":["271237:23:0"],"nodeType":"IdentifierPath","referencedDeclaration":17621,"src":"271237:23:0"},"referencedDeclaration":17621,"src":"271237:23:0","typeDescriptions":{"typeIdentifier":"t_struct$_ApprovalProcessResponse_$17621_storage_ptr","typeString":"struct ApprovalProcessResponse"}},"visibility":"internal"}],"src":"271236:32:0"},"scope":17609,"src":"271183:171:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":17607,"nodeType":"Block","src":"271887:86:0","statements":[{"expression":{"arguments":[{"hexValue":"67657455706772616465417070726f76616c50726f63657373","id":17604,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"271938:27:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_a06dd4918a5b2473fd3aaf97341ad849da5bb038c60b7582eb371267a2265635","typeString":"literal_string \"getUpgradeApprovalProcess\""},"value":"getUpgradeApprovalProcess"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a06dd4918a5b2473fd3aaf97341ad849da5bb038c60b7582eb371267a2265635","typeString":"literal_string \"getUpgradeApprovalProcess\""}],"expression":{"id":17602,"name":"DefenderDeploy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20094,"src":"271904:14:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DefenderDeploy_$20094_$","typeString":"type(library DefenderDeploy)"}},"id":17603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"271919:18:0","memberName":"getApprovalProcess","nodeType":"MemberAccess","referencedDeclaration":19920,"src":"271904:33:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_struct$_ApprovalProcessResponse_$17621_memory_ptr_$","typeString":"function (string memory) returns (struct ApprovalProcessResponse memory)"}},"id":17605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"271904:62:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ApprovalProcessResponse_$17621_memory_ptr","typeString":"struct ApprovalProcessResponse memory"}},"functionReturnParameters":17601,"id":17606,"nodeType":"Return","src":"271897:69:0"}]},"documentation":{"id":17596,"nodeType":"StructuredDocumentation","src":"271360:435:0","text":" @dev Gets the default upgrade approval process configured for your deployment environment on OpenZeppelin Defender.\n For example, this is useful for determining the default multisig wallet that you can use in your scripts to assign as the owner of your proxy.\n @return Struct with the default upgrade approval process ID and the associated address, such as a multisig or governor contract address."},"id":17608,"implemented":true,"kind":"function","modifiers":[],"name":"getUpgradeApprovalProcess","nameLocation":"271809:25:0","nodeType":"FunctionDefinition","parameters":{"id":17597,"nodeType":"ParameterList","parameters":[],"src":"271834:2:0"},"returnParameters":{"id":17601,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17600,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17608,"src":"271855:30:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ApprovalProcessResponse_$17621_memory_ptr","typeString":"struct ApprovalProcessResponse"},"typeName":{"id":17599,"nodeType":"UserDefinedTypeName","pathNode":{"id":17598,"name":"ApprovalProcessResponse","nameLocations":["271855:23:0"],"nodeType":"IdentifierPath","referencedDeclaration":17621,"src":"271855:23:0"},"referencedDeclaration":17621,"src":"271855:23:0","typeDescriptions":{"typeIdentifier":"t_struct$_ApprovalProcessResponse_$17621_storage_ptr","typeString":"struct ApprovalProcessResponse"}},"visibility":"internal"}],"src":"271854:32:0"},"scope":17609,"src":"271800:173:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":20815,"src":"264000:7975:0","usedErrors":[],"usedEvents":[]},{"canonicalName":"ProposeUpgradeResponse","id":17614,"members":[{"constant":false,"id":17611,"mutability":"mutable","name":"proposalId","nameLocation":"272020:10:0","nodeType":"VariableDeclaration","scope":17614,"src":"272013:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":17610,"name":"string","nodeType":"ElementaryTypeName","src":"272013:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17613,"mutability":"mutable","name":"url","nameLocation":"272043:3:0","nodeType":"VariableDeclaration","scope":17614,"src":"272036:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":17612,"name":"string","nodeType":"ElementaryTypeName","src":"272036:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"name":"ProposeUpgradeResponse","nameLocation":"271984:22:0","nodeType":"StructDefinition","scope":20815,"src":"271977:72:0","visibility":"public"},{"canonicalName":"ApprovalProcessResponse","id":17621,"members":[{"constant":false,"id":17616,"mutability":"mutable","name":"approvalProcessId","nameLocation":"272095:17:0","nodeType":"VariableDeclaration","scope":17621,"src":"272088:24:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":17615,"name":"string","nodeType":"ElementaryTypeName","src":"272088:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17618,"mutability":"mutable","name":"via","nameLocation":"272126:3:0","nodeType":"VariableDeclaration","scope":17621,"src":"272118:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17617,"name":"address","nodeType":"ElementaryTypeName","src":"272118:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17620,"mutability":"mutable","name":"viaType","nameLocation":"272142:7:0","nodeType":"VariableDeclaration","scope":17621,"src":"272135:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":17619,"name":"string","nodeType":"ElementaryTypeName","src":"272135:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"name":"ApprovalProcessResponse","nameLocation":"272058:23:0","nodeType":"StructDefinition","scope":20815,"src":"272051:101:0","visibility":"public"},{"abstract":false,"baseContracts":[],"canonicalName":"Core","contractDependencies":[],"contractKind":"library","documentation":{"id":17622,"nodeType":"StructuredDocumentation","src":"272214:194:0","text":" @dev Internal helper methods to validate/deploy implementations and perform upgrades.\n WARNING: DO NOT USE DIRECTLY. Use Upgrades.sol, LegacyUpgrades.sol or Defender.sol instead."},"fullyImplemented":true,"id":18590,"linearizedBaseContracts":[18590],"name":"Core","nameLocation":"272417:4:0","nodeType":"ContractDefinition","nodes":[{"body":{"id":17648,"nodeType":"Block","src":"273279:115:0","statements":[{"assignments":[17636],"declarations":[{"constant":false,"id":17636,"mutability":"mutable","name":"newImpl","nameLocation":"273297:7:0","nodeType":"VariableDeclaration","scope":17648,"src":"273289:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17635,"name":"address","nodeType":"ElementaryTypeName","src":"273289:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":17641,"initialValue":{"arguments":[{"id":17638,"name":"contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17627,"src":"273322:12:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17639,"name":"opts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17632,"src":"273336:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}],"id":17637,"name":"prepareUpgrade","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17984,"src":"273307:14:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_Options_$13779_memory_ptr_$returns$_t_address_$","typeString":"function (string memory,struct Options memory) returns (address)"}},"id":17640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"273307:34:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"273289:52:0"},{"expression":{"arguments":[{"id":17643,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17625,"src":"273366:5:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17644,"name":"newImpl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17636,"src":"273373:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17645,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17629,"src":"273382:4:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17642,"name":"upgradeProxyTo","nodeType":"Identifier","overloadedDeclarations":[17800,17822],"referencedDeclaration":17800,"src":"273351:14:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,bytes memory)"}},"id":17646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"273351:36:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17647,"nodeType":"ExpressionStatement","src":"273351:36:0"}]},"documentation":{"id":17623,"nodeType":"StructuredDocumentation","src":"272428:732:0","text":" @dev Upgrades a proxy to a new implementation contract. Only supported for UUPS or transparent proxies.\n Requires that either the `referenceContract` option is set, or the new implementation contract has a `@custom:oz-upgrades-from ` annotation.\n @param proxy Address of the proxy to upgrade\n @param contractName Name of the new implementation contract to upgrade to, e.g. \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n @param data Encoded call data of an arbitrary function to call during the upgrade process, or empty if no function needs to be called during the upgrade\n @param opts Common options"},"id":17649,"implemented":true,"kind":"function","modifiers":[],"name":"upgradeProxy","nameLocation":"273174:12:0","nodeType":"FunctionDefinition","parameters":{"id":17633,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17625,"mutability":"mutable","name":"proxy","nameLocation":"273195:5:0","nodeType":"VariableDeclaration","scope":17649,"src":"273187:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17624,"name":"address","nodeType":"ElementaryTypeName","src":"273187:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17627,"mutability":"mutable","name":"contractName","nameLocation":"273216:12:0","nodeType":"VariableDeclaration","scope":17649,"src":"273202:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17626,"name":"string","nodeType":"ElementaryTypeName","src":"273202:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17629,"mutability":"mutable","name":"data","nameLocation":"273243:4:0","nodeType":"VariableDeclaration","scope":17649,"src":"273230:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":17628,"name":"bytes","nodeType":"ElementaryTypeName","src":"273230:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":17632,"mutability":"mutable","name":"opts","nameLocation":"273264:4:0","nodeType":"VariableDeclaration","scope":17649,"src":"273249:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options"},"typeName":{"id":17631,"nodeType":"UserDefinedTypeName","pathNode":{"id":17630,"name":"Options","nameLocations":["273249:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":13779,"src":"273249:7:0"},"referencedDeclaration":13779,"src":"273249:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_storage_ptr","typeString":"struct Options"}},"visibility":"internal"}],"src":"273186:83:0"},"returnParameters":{"id":17634,"nodeType":"ParameterList","parameters":[],"src":"273279:0:0"},"scope":18590,"src":"273165:229:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":17674,"nodeType":"Block","src":"274820:62:0","statements":[{"expression":{"arguments":[{"id":17668,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17652,"src":"274843:5:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17669,"name":"contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17654,"src":"274850:12:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17670,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17656,"src":"274864:4:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":17671,"name":"opts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17659,"src":"274870:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}],"id":17667,"name":"upgradeProxy","nodeType":"Identifier","overloadedDeclarations":[17649,17675],"referencedDeclaration":17649,"src":"274830:12:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_struct$_Options_$13779_memory_ptr_$returns$__$","typeString":"function (address,string memory,bytes memory,struct Options memory)"}},"id":17672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"274830:45:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17673,"nodeType":"ExpressionStatement","src":"274830:45:0"}]},"documentation":{"id":17650,"nodeType":"StructuredDocumentation","src":"273400:1216:0","text":" @notice For tests only. If broadcasting in scripts, use the `--sender
` option with `forge script` instead.\n @dev Upgrades a proxy to a new implementation contract. Only supported for UUPS or transparent proxies.\n Requires that either the `referenceContract` option is set, or the new implementation contract has a `@custom:oz-upgrades-from ` annotation.\n This function provides an additional `tryCaller` parameter to test an upgrade using a specific caller address.\n Use this if you encounter `OwnableUnauthorizedAccount` errors in your tests.\n @param proxy Address of the proxy to upgrade\n @param contractName Name of the new implementation contract to upgrade to, e.g. \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n @param data Encoded call data of an arbitrary function to call during the upgrade process, or empty if no function needs to be called during the upgrade\n @param opts Common options\n @param tryCaller Address to use as the caller of the upgrade function. This should be the address that owns the proxy or its ProxyAdmin."},"id":17675,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":17664,"name":"tryCaller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17661,"src":"274809:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":17665,"kind":"modifierInvocation","modifierName":{"id":17663,"name":"tryPrank","nameLocations":["274800:8:0"],"nodeType":"IdentifierPath","referencedDeclaration":18122,"src":"274800:8:0"},"nodeType":"ModifierInvocation","src":"274800:19:0"}],"name":"upgradeProxy","nameLocation":"274630:12:0","nodeType":"FunctionDefinition","parameters":{"id":17662,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17652,"mutability":"mutable","name":"proxy","nameLocation":"274660:5:0","nodeType":"VariableDeclaration","scope":17675,"src":"274652:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17651,"name":"address","nodeType":"ElementaryTypeName","src":"274652:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17654,"mutability":"mutable","name":"contractName","nameLocation":"274689:12:0","nodeType":"VariableDeclaration","scope":17675,"src":"274675:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17653,"name":"string","nodeType":"ElementaryTypeName","src":"274675:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17656,"mutability":"mutable","name":"data","nameLocation":"274724:4:0","nodeType":"VariableDeclaration","scope":17675,"src":"274711:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":17655,"name":"bytes","nodeType":"ElementaryTypeName","src":"274711:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":17659,"mutability":"mutable","name":"opts","nameLocation":"274753:4:0","nodeType":"VariableDeclaration","scope":17675,"src":"274738:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options"},"typeName":{"id":17658,"nodeType":"UserDefinedTypeName","pathNode":{"id":17657,"name":"Options","nameLocations":["274738:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":13779,"src":"274738:7:0"},"referencedDeclaration":13779,"src":"274738:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_storage_ptr","typeString":"struct Options"}},"visibility":"internal"},{"constant":false,"id":17661,"mutability":"mutable","name":"tryCaller","nameLocation":"274775:9:0","nodeType":"VariableDeclaration","scope":17675,"src":"274767:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17660,"name":"address","nodeType":"ElementaryTypeName","src":"274767:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"274642:148:0"},"returnParameters":{"id":17666,"nodeType":"ParameterList","parameters":[],"src":"274820:0:0"},"scope":18590,"src":"274621:261:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":17799,"nodeType":"Block","src":"275397:949:0","statements":[{"assignments":[17687],"declarations":[{"constant":false,"id":17687,"mutability":"mutable","name":"vm","nameLocation":"275410:2:0","nodeType":"VariableDeclaration","scope":17799,"src":"275407:5:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$4037","typeString":"contract Vm"},"typeName":{"id":17686,"nodeType":"UserDefinedTypeName","pathNode":{"id":17685,"name":"Vm","nameLocations":["275407:2:0"],"nodeType":"IdentifierPath","referencedDeclaration":4037,"src":"275407:2:0"},"referencedDeclaration":4037,"src":"275407:2:0","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$4037","typeString":"contract Vm"}},"visibility":"internal"}],"id":17692,"initialValue":{"arguments":[{"expression":{"id":17689,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17211,"src":"275418:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Utils_$17211_$","typeString":"type(library Utils)"}},"id":17690,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"275424:17:0","memberName":"CHEATCODE_ADDRESS","nodeType":"MemberAccess","referencedDeclaration":16471,"src":"275418:23:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17688,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4037,"src":"275415:2:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Vm_$4037_$","typeString":"type(contract Vm)"}},"id":17691,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"275415:27:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$4037","typeString":"contract Vm"}},"nodeType":"VariableDeclarationStatement","src":"275407:35:0"},{"assignments":[17694],"declarations":[{"constant":false,"id":17694,"mutability":"mutable","name":"adminSlot","nameLocation":"275461:9:0","nodeType":"VariableDeclaration","scope":17799,"src":"275453:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17693,"name":"bytes32","nodeType":"ElementaryTypeName","src":"275453:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":17700,"initialValue":{"arguments":[{"id":17697,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17678,"src":"275481:5:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17698,"name":"ADMIN_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18130,"src":"275488:10:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":17695,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17687,"src":"275473:2:0","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$4037","typeString":"contract Vm"}},"id":17696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"275476:4:0","memberName":"load","nodeType":"MemberAccess","referencedDeclaration":838,"src":"275473:7:0","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,bytes32) view external returns (bytes32)"}},"id":17699,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"275473:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"275453:46:0"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":17706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17701,"name":"adminSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17694,"src":"275513:9:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":17704,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"275534:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":17703,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"275526:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":17702,"name":"bytes32","nodeType":"ElementaryTypeName","src":"275526:7:0","typeDescriptions":{}}},"id":17705,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"275526:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"275513:23:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":17797,"nodeType":"Block","src":"275910:430:0","statements":[{"assignments":[17746],"declarations":[{"constant":false,"id":17746,"mutability":"mutable","name":"admin","nameLocation":"275932:5:0","nodeType":"VariableDeclaration","scope":17797,"src":"275924:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17745,"name":"address","nodeType":"ElementaryTypeName","src":"275924:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":17757,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"id":17753,"name":"adminSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17694,"src":"275964:9:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":17752,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"275956:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":17751,"name":"uint256","nodeType":"ElementaryTypeName","src":"275956:7:0","typeDescriptions":{}}},"id":17754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"275956:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17750,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"275948:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":17749,"name":"uint160","nodeType":"ElementaryTypeName","src":"275948:7:0","typeDescriptions":{}}},"id":17755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"275948:27:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":17748,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"275940:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":17747,"name":"address","nodeType":"ElementaryTypeName","src":"275940:7:0","typeDescriptions":{}}},"id":17756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"275940:36:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"275924:52:0"},{"assignments":[17759],"declarations":[{"constant":false,"id":17759,"mutability":"mutable","name":"upgradeInterfaceVersion","nameLocation":"276004:23:0","nodeType":"VariableDeclaration","scope":17797,"src":"275990:37:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17758,"name":"string","nodeType":"ElementaryTypeName","src":"275990:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":17763,"initialValue":{"arguments":[{"id":17761,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17746,"src":"276057:5:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17760,"name":"getUpgradeInterfaceVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18176,"src":"276030:26:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_string_memory_ptr_$","typeString":"function (address) view returns (string memory)"}},"id":17762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"276030:33:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"275990:73:0"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"hexValue":"352e302e30","id":17768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"276122:7:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_2ade050ecfcf8ae20ae1d10a23573f9d7e0bad85e74a2cf8338a65401e64558c","typeString":"literal_string \"5.0.0\""},"value":"5.0.0"},"id":17769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"276130:7:0","memberName":"toSlice","nodeType":"MemberAccess","referencedDeclaration":14089,"src":"276122:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (struct Strings.slice memory)"}},"id":17770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"276122:17:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17764,"name":"upgradeInterfaceVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17759,"src":"276081:23:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":17765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"276105:7:0","memberName":"toSlice","nodeType":"MemberAccess","referencedDeclaration":14089,"src":"276081:31:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (struct Strings.slice memory)"}},"id":17766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"276081:33:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":17767,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"276115:6:0","memberName":"equals","nodeType":"MemberAccess","referencedDeclaration":14572,"src":"276081:40:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$14014_memory_ptr_$_t_struct$_slice_$14014_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_slice_$14014_memory_ptr_$","typeString":"function (struct Strings.slice memory,struct Strings.slice memory) pure returns (bool)"}},"id":17771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"276081:59:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17772,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17682,"src":"276144:4:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":17773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"276149:6:0","memberName":"length","nodeType":"MemberAccess","src":"276144:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":17774,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"276158:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"276144:15:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"276081:78:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":17795,"nodeType":"Block","src":"276255:75:0","statements":[{"expression":{"arguments":[{"id":17791,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17678,"src":"276300:5:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17792,"name":"newImpl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17680,"src":"276307:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":17788,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17746,"src":"276285:5:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17787,"name":"IProxyAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13836,"src":"276273:11:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IProxyAdmin_$13836_$","typeString":"type(contract IProxyAdmin)"}},"id":17789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"276273:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IProxyAdmin_$13836","typeString":"contract IProxyAdmin"}},"id":17790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"276292:7:0","memberName":"upgrade","nodeType":"MemberAccess","referencedDeclaration":13825,"src":"276273:26:0","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) external"}},"id":17793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"276273:42:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17794,"nodeType":"ExpressionStatement","src":"276273:42:0"}]},"id":17796,"nodeType":"IfStatement","src":"276077:253:0","trueBody":{"id":17786,"nodeType":"Block","src":"276161:88:0","statements":[{"expression":{"arguments":[{"id":17781,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17678,"src":"276213:5:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17782,"name":"newImpl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17680,"src":"276220:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17783,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17682,"src":"276229:4:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":17778,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17746,"src":"276191:5:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17777,"name":"IProxyAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13836,"src":"276179:11:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IProxyAdmin_$13836_$","typeString":"type(contract IProxyAdmin)"}},"id":17779,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"276179:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IProxyAdmin_$13836","typeString":"contract IProxyAdmin"}},"id":17780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"276198:14:0","memberName":"upgradeAndCall","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"276179:33:0","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,bytes memory) payable external"}},"id":17784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"276179:55:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17785,"nodeType":"ExpressionStatement","src":"276179:55:0"}]}}]},"id":17798,"nodeType":"IfStatement","src":"275509:831:0","trueBody":{"id":17744,"nodeType":"Block","src":"275538:366:0","statements":[{"assignments":[17708],"declarations":[{"constant":false,"id":17708,"mutability":"mutable","name":"upgradeInterfaceVersion","nameLocation":"275566:23:0","nodeType":"VariableDeclaration","scope":17744,"src":"275552:37:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17707,"name":"string","nodeType":"ElementaryTypeName","src":"275552:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":17712,"initialValue":{"arguments":[{"id":17710,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17678,"src":"275619:5:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17709,"name":"getUpgradeInterfaceVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18176,"src":"275592:26:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_string_memory_ptr_$","typeString":"function (address) view returns (string memory)"}},"id":17711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"275592:33:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"275552:73:0"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"hexValue":"352e302e30","id":17717,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"275684:7:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_2ade050ecfcf8ae20ae1d10a23573f9d7e0bad85e74a2cf8338a65401e64558c","typeString":"literal_string \"5.0.0\""},"value":"5.0.0"},"id":17718,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"275692:7:0","memberName":"toSlice","nodeType":"MemberAccess","referencedDeclaration":14089,"src":"275684:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (struct Strings.slice memory)"}},"id":17719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"275684:17:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17713,"name":"upgradeInterfaceVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17708,"src":"275643:23:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":17714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"275667:7:0","memberName":"toSlice","nodeType":"MemberAccess","referencedDeclaration":14089,"src":"275643:31:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (struct Strings.slice memory)"}},"id":17715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"275643:33:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":17716,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"275677:6:0","memberName":"equals","nodeType":"MemberAccess","referencedDeclaration":14572,"src":"275643:40:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$14014_memory_ptr_$_t_struct$_slice_$14014_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_slice_$14014_memory_ptr_$","typeString":"function (struct Strings.slice memory,struct Strings.slice memory) pure returns (bool)"}},"id":17720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"275643:59:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17721,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17682,"src":"275706:4:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":17722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"275711:6:0","memberName":"length","nodeType":"MemberAccess","src":"275706:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":17723,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"275720:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"275706:15:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"275643:78:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":17742,"nodeType":"Block","src":"275818:76:0","statements":[{"expression":{"arguments":[{"id":17739,"name":"newImpl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17680,"src":"275871:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":17736,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17678,"src":"275854:5:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17735,"name":"IUpgradeableProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13858,"src":"275836:17:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IUpgradeableProxy_$13858_$","typeString":"type(contract IUpgradeableProxy)"}},"id":17737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"275836:24:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IUpgradeableProxy_$13858","typeString":"contract IUpgradeableProxy"}},"id":17738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"275861:9:0","memberName":"upgradeTo","nodeType":"MemberAccess","referencedDeclaration":13849,"src":"275836:34:0","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":17740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"275836:43:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17741,"nodeType":"ExpressionStatement","src":"275836:43:0"}]},"id":17743,"nodeType":"IfStatement","src":"275639:255:0","trueBody":{"id":17734,"nodeType":"Block","src":"275723:89:0","statements":[{"expression":{"arguments":[{"id":17730,"name":"newImpl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17680,"src":"275783:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17731,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17682,"src":"275792:4:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":17727,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17678,"src":"275759:5:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17726,"name":"IUpgradeableProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13858,"src":"275741:17:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IUpgradeableProxy_$13858_$","typeString":"type(contract IUpgradeableProxy)"}},"id":17728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"275741:24:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IUpgradeableProxy_$13858","typeString":"contract IUpgradeableProxy"}},"id":17729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"275766:16:0","memberName":"upgradeToAndCall","nodeType":"MemberAccess","referencedDeclaration":13857,"src":"275741:41:0","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory) payable external"}},"id":17732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"275741:56:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17733,"nodeType":"ExpressionStatement","src":"275741:56:0"}]}}]}}]},"documentation":{"id":17676,"nodeType":"StructuredDocumentation","src":"274888:420:0","text":" @dev Upgrades a proxy to a new implementation contract. Only supported for UUPS or transparent proxies.\n @param proxy Address of the proxy to upgrade\n @param newImpl Address of the new implementation contract to upgrade to\n @param data Encoded call data of an arbitrary function to call during the upgrade process, or empty if no function needs to be called during the upgrade"},"id":17800,"implemented":true,"kind":"function","modifiers":[],"name":"upgradeProxyTo","nameLocation":"275322:14:0","nodeType":"FunctionDefinition","parameters":{"id":17683,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17678,"mutability":"mutable","name":"proxy","nameLocation":"275345:5:0","nodeType":"VariableDeclaration","scope":17800,"src":"275337:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17677,"name":"address","nodeType":"ElementaryTypeName","src":"275337:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17680,"mutability":"mutable","name":"newImpl","nameLocation":"275360:7:0","nodeType":"VariableDeclaration","scope":17800,"src":"275352:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17679,"name":"address","nodeType":"ElementaryTypeName","src":"275352:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17682,"mutability":"mutable","name":"data","nameLocation":"275382:4:0","nodeType":"VariableDeclaration","scope":17800,"src":"275369:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":17681,"name":"bytes","nodeType":"ElementaryTypeName","src":"275369:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"275336:51:0"},"returnParameters":{"id":17684,"nodeType":"ParameterList","parameters":[],"src":"275397:0:0"},"scope":18590,"src":"275313:1033:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":17821,"nodeType":"Block","src":"277422:53:0","statements":[{"expression":{"arguments":[{"id":17816,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17803,"src":"277447:5:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17817,"name":"newImpl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17805,"src":"277454:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17818,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17807,"src":"277463:4:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17815,"name":"upgradeProxyTo","nodeType":"Identifier","overloadedDeclarations":[17800,17822],"referencedDeclaration":17800,"src":"277432:14:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,bytes memory)"}},"id":17819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"277432:36:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17820,"nodeType":"ExpressionStatement","src":"277432:36:0"}]},"documentation":{"id":17801,"nodeType":"StructuredDocumentation","src":"276352:904:0","text":" @notice For tests only. If broadcasting in scripts, use the `--sender
` option with `forge script` instead.\n @dev Upgrades a proxy to a new implementation contract. Only supported for UUPS or transparent proxies.\n This function provides an additional `tryCaller` parameter to test an upgrade using a specific caller address.\n Use this if you encounter `OwnableUnauthorizedAccount` errors in your tests.\n @param proxy Address of the proxy to upgrade\n @param newImpl Address of the new implementation contract to upgrade to\n @param data Encoded call data of an arbitrary function to call during the upgrade process, or empty if no function needs to be called during the upgrade\n @param tryCaller Address to use as the caller of the upgrade function. This should be the address that owns the proxy or its ProxyAdmin."},"id":17822,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":17812,"name":"tryCaller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17809,"src":"277411:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":17813,"kind":"modifierInvocation","modifierName":{"id":17811,"name":"tryPrank","nameLocations":["277402:8:0"],"nodeType":"IdentifierPath","referencedDeclaration":18122,"src":"277402:8:0"},"nodeType":"ModifierInvocation","src":"277402:19:0"}],"name":"upgradeProxyTo","nameLocation":"277270:14:0","nodeType":"FunctionDefinition","parameters":{"id":17810,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17803,"mutability":"mutable","name":"proxy","nameLocation":"277302:5:0","nodeType":"VariableDeclaration","scope":17822,"src":"277294:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17802,"name":"address","nodeType":"ElementaryTypeName","src":"277294:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17805,"mutability":"mutable","name":"newImpl","nameLocation":"277325:7:0","nodeType":"VariableDeclaration","scope":17822,"src":"277317:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17804,"name":"address","nodeType":"ElementaryTypeName","src":"277317:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17807,"mutability":"mutable","name":"data","nameLocation":"277355:4:0","nodeType":"VariableDeclaration","scope":17822,"src":"277342:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":17806,"name":"bytes","nodeType":"ElementaryTypeName","src":"277342:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":17809,"mutability":"mutable","name":"tryCaller","nameLocation":"277377:9:0","nodeType":"VariableDeclaration","scope":17822,"src":"277369:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17808,"name":"address","nodeType":"ElementaryTypeName","src":"277369:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"277284:108:0"},"returnParameters":{"id":17814,"nodeType":"ParameterList","parameters":[],"src":"277422:0:0"},"scope":18590,"src":"277261:214:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":17845,"nodeType":"Block","src":"278110:111:0","statements":[{"assignments":[17834],"declarations":[{"constant":false,"id":17834,"mutability":"mutable","name":"newImpl","nameLocation":"278128:7:0","nodeType":"VariableDeclaration","scope":17845,"src":"278120:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17833,"name":"address","nodeType":"ElementaryTypeName","src":"278120:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":17839,"initialValue":{"arguments":[{"id":17836,"name":"contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17827,"src":"278153:12:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17837,"name":"opts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17830,"src":"278167:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}],"id":17835,"name":"prepareUpgrade","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17984,"src":"278138:14:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_Options_$13779_memory_ptr_$returns$_t_address_$","typeString":"function (string memory,struct Options memory) returns (address)"}},"id":17838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"278138:34:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"278120:52:0"},{"expression":{"arguments":[{"id":17841,"name":"beacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17825,"src":"278198:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17842,"name":"newImpl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17834,"src":"278206:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":17840,"name":"upgradeBeaconTo","nodeType":"Identifier","overloadedDeclarations":[17885,17904],"referencedDeclaration":17885,"src":"278182:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":17843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"278182:32:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17844,"nodeType":"ExpressionStatement","src":"278182:32:0"}]},"documentation":{"id":17823,"nodeType":"StructuredDocumentation","src":"277481:527:0","text":" @dev Upgrades a beacon to a new implementation contract.\n Requires that either the `referenceContract` option is set, or the new implementation contract has a `@custom:oz-upgrades-from ` annotation.\n @param beacon Address of the beacon to upgrade\n @param contractName Name of the new implementation contract to upgrade to, e.g. \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n @param opts Common options"},"id":17846,"implemented":true,"kind":"function","modifiers":[],"name":"upgradeBeacon","nameLocation":"278022:13:0","nodeType":"FunctionDefinition","parameters":{"id":17831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17825,"mutability":"mutable","name":"beacon","nameLocation":"278044:6:0","nodeType":"VariableDeclaration","scope":17846,"src":"278036:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17824,"name":"address","nodeType":"ElementaryTypeName","src":"278036:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17827,"mutability":"mutable","name":"contractName","nameLocation":"278066:12:0","nodeType":"VariableDeclaration","scope":17846,"src":"278052:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17826,"name":"string","nodeType":"ElementaryTypeName","src":"278052:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17830,"mutability":"mutable","name":"opts","nameLocation":"278095:4:0","nodeType":"VariableDeclaration","scope":17846,"src":"278080:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options"},"typeName":{"id":17829,"nodeType":"UserDefinedTypeName","pathNode":{"id":17828,"name":"Options","nameLocations":["278080:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":13779,"src":"278080:7:0"},"referencedDeclaration":13779,"src":"278080:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_storage_ptr","typeString":"struct Options"}},"visibility":"internal"}],"src":"278035:65:0"},"returnParameters":{"id":17832,"nodeType":"ParameterList","parameters":[],"src":"278110:0:0"},"scope":18590,"src":"278013:208:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":17868,"nodeType":"Block","src":"279400:58:0","statements":[{"expression":{"arguments":[{"id":17863,"name":"beacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17849,"src":"279424:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17864,"name":"contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17851,"src":"279432:12:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17865,"name":"opts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17854,"src":"279446:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}],"id":17862,"name":"upgradeBeacon","nodeType":"Identifier","overloadedDeclarations":[17846,17869],"referencedDeclaration":17846,"src":"279410:13:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_string_memory_ptr_$_t_struct$_Options_$13779_memory_ptr_$returns$__$","typeString":"function (address,string memory,struct Options memory)"}},"id":17866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"279410:41:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17867,"nodeType":"ExpressionStatement","src":"279410:41:0"}]},"documentation":{"id":17847,"nodeType":"StructuredDocumentation","src":"278227:994:0","text":" @notice For tests only. If broadcasting in scripts, use the `--sender
` option with `forge script` instead.\n @dev Upgrades a beacon to a new implementation contract.\n Requires that either the `referenceContract` option is set, or the new implementation contract has a `@custom:oz-upgrades-from ` annotation.\n This function provides an additional `tryCaller` parameter to test an upgrade using a specific caller address.\n Use this if you encounter `OwnableUnauthorizedAccount` errors in your tests.\n @param beacon Address of the beacon to upgrade\n @param contractName Name of the new implementation contract to upgrade to, e.g. \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n @param opts Common options\n @param tryCaller Address to use as the caller of the upgrade function. This should be the address that owns the beacon."},"id":17869,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":17859,"name":"tryCaller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17856,"src":"279389:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":17860,"kind":"modifierInvocation","modifierName":{"id":17858,"name":"tryPrank","nameLocations":["279380:8:0"],"nodeType":"IdentifierPath","referencedDeclaration":18122,"src":"279380:8:0"},"nodeType":"ModifierInvocation","src":"279380:19:0"}],"name":"upgradeBeacon","nameLocation":"279235:13:0","nodeType":"FunctionDefinition","parameters":{"id":17857,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17849,"mutability":"mutable","name":"beacon","nameLocation":"279266:6:0","nodeType":"VariableDeclaration","scope":17869,"src":"279258:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17848,"name":"address","nodeType":"ElementaryTypeName","src":"279258:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17851,"mutability":"mutable","name":"contractName","nameLocation":"279296:12:0","nodeType":"VariableDeclaration","scope":17869,"src":"279282:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17850,"name":"string","nodeType":"ElementaryTypeName","src":"279282:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17854,"mutability":"mutable","name":"opts","nameLocation":"279333:4:0","nodeType":"VariableDeclaration","scope":17869,"src":"279318:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options"},"typeName":{"id":17853,"nodeType":"UserDefinedTypeName","pathNode":{"id":17852,"name":"Options","nameLocations":["279318:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":13779,"src":"279318:7:0"},"referencedDeclaration":13779,"src":"279318:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_storage_ptr","typeString":"struct Options"}},"visibility":"internal"},{"constant":false,"id":17856,"mutability":"mutable","name":"tryCaller","nameLocation":"279355:9:0","nodeType":"VariableDeclaration","scope":17869,"src":"279347:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17855,"name":"address","nodeType":"ElementaryTypeName","src":"279347:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"279248:122:0"},"returnParameters":{"id":17861,"nodeType":"ParameterList","parameters":[],"src":"279400:0:0"},"scope":18590,"src":"279226:232:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":17884,"nodeType":"Block","src":"279759:62:0","statements":[{"expression":{"arguments":[{"id":17881,"name":"newImpl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17874,"src":"279806:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":17878,"name":"beacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17872,"src":"279788:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17877,"name":"IUpgradeableBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13843,"src":"279769:18:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IUpgradeableBeacon_$13843_$","typeString":"type(contract IUpgradeableBeacon)"}},"id":17879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"279769:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IUpgradeableBeacon_$13843","typeString":"contract IUpgradeableBeacon"}},"id":17880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"279796:9:0","memberName":"upgradeTo","nodeType":"MemberAccess","referencedDeclaration":13842,"src":"279769:36:0","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":17882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"279769:45:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17883,"nodeType":"ExpressionStatement","src":"279769:45:0"}]},"documentation":{"id":17870,"nodeType":"StructuredDocumentation","src":"279464:223:0","text":" @dev Upgrades a beacon to a new implementation contract address.\n @param beacon Address of the beacon to upgrade\n @param newImpl Address of the new implementation contract to upgrade to"},"id":17885,"implemented":true,"kind":"function","modifiers":[],"name":"upgradeBeaconTo","nameLocation":"279701:15:0","nodeType":"FunctionDefinition","parameters":{"id":17875,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17872,"mutability":"mutable","name":"beacon","nameLocation":"279725:6:0","nodeType":"VariableDeclaration","scope":17885,"src":"279717:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17871,"name":"address","nodeType":"ElementaryTypeName","src":"279717:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17874,"mutability":"mutable","name":"newImpl","nameLocation":"279741:7:0","nodeType":"VariableDeclaration","scope":17885,"src":"279733:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17873,"name":"address","nodeType":"ElementaryTypeName","src":"279733:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"279716:33:0"},"returnParameters":{"id":17876,"nodeType":"ParameterList","parameters":[],"src":"279759:0:0"},"scope":18590,"src":"279692:129:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":17903,"nodeType":"Block","src":"280620:49:0","statements":[{"expression":{"arguments":[{"id":17899,"name":"beacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17888,"src":"280646:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17900,"name":"newImpl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17890,"src":"280654:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":17898,"name":"upgradeBeaconTo","nodeType":"Identifier","overloadedDeclarations":[17885,17904],"referencedDeclaration":17885,"src":"280630:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":17901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"280630:32:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17902,"nodeType":"ExpressionStatement","src":"280630:32:0"}]},"documentation":{"id":17886,"nodeType":"StructuredDocumentation","src":"279827:682:0","text":" @notice For tests only. If broadcasting in scripts, use the `--sender
` option with `forge script` instead.\n @dev Upgrades a beacon to a new implementation contract.\n This function provides an additional `tryCaller` parameter to test an upgrade using a specific caller address.\n Use this if you encounter `OwnableUnauthorizedAccount` errors in your tests.\n @param beacon Address of the beacon to upgrade\n @param newImpl Address of the new implementation contract to upgrade to\n @param tryCaller Address to use as the caller of the upgrade function. This should be the address that owns the beacon."},"id":17904,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":17895,"name":"tryCaller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17892,"src":"280609:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":17896,"kind":"modifierInvocation","modifierName":{"id":17894,"name":"tryPrank","nameLocations":["280600:8:0"],"nodeType":"IdentifierPath","referencedDeclaration":18122,"src":"280600:8:0"},"nodeType":"ModifierInvocation","src":"280600:19:0"}],"name":"upgradeBeaconTo","nameLocation":"280523:15:0","nodeType":"FunctionDefinition","parameters":{"id":17893,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17888,"mutability":"mutable","name":"beacon","nameLocation":"280547:6:0","nodeType":"VariableDeclaration","scope":17904,"src":"280539:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17887,"name":"address","nodeType":"ElementaryTypeName","src":"280539:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17890,"mutability":"mutable","name":"newImpl","nameLocation":"280563:7:0","nodeType":"VariableDeclaration","scope":17904,"src":"280555:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17889,"name":"address","nodeType":"ElementaryTypeName","src":"280555:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17892,"mutability":"mutable","name":"tryCaller","nameLocation":"280580:9:0","nodeType":"VariableDeclaration","scope":17904,"src":"280572:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17891,"name":"address","nodeType":"ElementaryTypeName","src":"280572:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"280538:52:0"},"returnParameters":{"id":17897,"nodeType":"ParameterList","parameters":[],"src":"280620:0:0"},"scope":18590,"src":"280514:155:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":17919,"nodeType":"Block","src":"281066:53:0","statements":[{"expression":{"arguments":[{"id":17914,"name":"contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17907,"src":"281086:12:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17915,"name":"opts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17910,"src":"281100:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}},{"hexValue":"66616c7365","id":17916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"281106:5:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":17913,"name":"_validate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18271,"src":"281076:9:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_Options_$13779_memory_ptr_$_t_bool_$returns$__$","typeString":"function (string memory,struct Options memory,bool)"}},"id":17917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"281076:36:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17918,"nodeType":"ExpressionStatement","src":"281076:36:0"}]},"documentation":{"id":17905,"nodeType":"StructuredDocumentation","src":"280675:296:0","text":" @dev Validates an implementation contract, but does not deploy it.\n @param contractName Name of the contract to validate, e.g. \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n @param opts Common options"},"id":17920,"implemented":true,"kind":"function","modifiers":[],"name":"validateImplementation","nameLocation":"280985:22:0","nodeType":"FunctionDefinition","parameters":{"id":17911,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17907,"mutability":"mutable","name":"contractName","nameLocation":"281022:12:0","nodeType":"VariableDeclaration","scope":17920,"src":"281008:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17906,"name":"string","nodeType":"ElementaryTypeName","src":"281008:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17910,"mutability":"mutable","name":"opts","nameLocation":"281051:4:0","nodeType":"VariableDeclaration","scope":17920,"src":"281036:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options"},"typeName":{"id":17909,"nodeType":"UserDefinedTypeName","pathNode":{"id":17908,"name":"Options","nameLocations":["281036:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":13779,"src":"281036:7:0"},"referencedDeclaration":13779,"src":"281036:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_storage_ptr","typeString":"struct Options"}},"visibility":"internal"}],"src":"281007:49:0"},"returnParameters":{"id":17912,"nodeType":"ParameterList","parameters":[],"src":"281066:0:0"},"scope":18590,"src":"280976:143:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":17943,"nodeType":"Block","src":"281597:124:0","statements":[{"expression":{"arguments":[{"id":17932,"name":"contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17923,"src":"281630:12:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17933,"name":"opts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17926,"src":"281644:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}],"id":17931,"name":"validateImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17920,"src":"281607:22:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_Options_$13779_memory_ptr_$returns$__$","typeString":"function (string memory,struct Options memory)"}},"id":17934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"281607:42:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17935,"nodeType":"ExpressionStatement","src":"281607:42:0"},{"expression":{"arguments":[{"id":17937,"name":"contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17923,"src":"281673:12:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":17938,"name":"opts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17926,"src":"281687:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}},"id":17939,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"281692:15:0","memberName":"constructorData","nodeType":"MemberAccess","referencedDeclaration":13767,"src":"281687:20:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":17940,"name":"opts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17926,"src":"281709:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}],"id":17936,"name":"deploy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18518,"src":"281666:6:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_struct$_Options_$13779_memory_ptr_$returns$_t_address_$","typeString":"function (string memory,bytes memory,struct Options memory) returns (address)"}},"id":17941,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"281666:48:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":17930,"id":17942,"nodeType":"Return","src":"281659:55:0"}]},"documentation":{"id":17921,"nodeType":"StructuredDocumentation","src":"281125:361:0","text":" @dev Validates and deploys an implementation contract, and returns its address.\n @param contractName Name of the contract to deploy, e.g. \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n @param opts Common options\n @return Address of the implementation contract"},"id":17944,"implemented":true,"kind":"function","modifiers":[],"name":"deployImplementation","nameLocation":"281500:20:0","nodeType":"FunctionDefinition","parameters":{"id":17927,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17923,"mutability":"mutable","name":"contractName","nameLocation":"281535:12:0","nodeType":"VariableDeclaration","scope":17944,"src":"281521:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17922,"name":"string","nodeType":"ElementaryTypeName","src":"281521:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17926,"mutability":"mutable","name":"opts","nameLocation":"281564:4:0","nodeType":"VariableDeclaration","scope":17944,"src":"281549:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options"},"typeName":{"id":17925,"nodeType":"UserDefinedTypeName","pathNode":{"id":17924,"name":"Options","nameLocations":["281549:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":13779,"src":"281549:7:0"},"referencedDeclaration":13779,"src":"281549:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_storage_ptr","typeString":"struct Options"}},"visibility":"internal"}],"src":"281520:49:0"},"returnParameters":{"id":17930,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17929,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17944,"src":"281588:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17928,"name":"address","nodeType":"ElementaryTypeName","src":"281588:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"281587:9:0"},"scope":18590,"src":"281491:230:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":17959,"nodeType":"Block","src":"282301:52:0","statements":[{"expression":{"arguments":[{"id":17954,"name":"contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17947,"src":"282321:12:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17955,"name":"opts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17950,"src":"282335:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}},{"hexValue":"74727565","id":17956,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"282341:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":17953,"name":"_validate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18271,"src":"282311:9:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_Options_$13779_memory_ptr_$_t_bool_$returns$__$","typeString":"function (string memory,struct Options memory,bool)"}},"id":17957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"282311:35:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17958,"nodeType":"ExpressionStatement","src":"282311:35:0"}]},"documentation":{"id":17945,"nodeType":"StructuredDocumentation","src":"281727:486:0","text":" @dev Validates a new implementation contract in comparison with a reference contract, but does not deploy it.\n Requires that either the `referenceContract` option is set, or the contract has a `@custom:oz-upgrades-from ` annotation.\n @param contractName Name of the contract to validate, e.g. \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n @param opts Common options"},"id":17960,"implemented":true,"kind":"function","modifiers":[],"name":"validateUpgrade","nameLocation":"282227:15:0","nodeType":"FunctionDefinition","parameters":{"id":17951,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17947,"mutability":"mutable","name":"contractName","nameLocation":"282257:12:0","nodeType":"VariableDeclaration","scope":17960,"src":"282243:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17946,"name":"string","nodeType":"ElementaryTypeName","src":"282243:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17950,"mutability":"mutable","name":"opts","nameLocation":"282286:4:0","nodeType":"VariableDeclaration","scope":17960,"src":"282271:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options"},"typeName":{"id":17949,"nodeType":"UserDefinedTypeName","pathNode":{"id":17948,"name":"Options","nameLocations":["282271:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":13779,"src":"282271:7:0"},"referencedDeclaration":13779,"src":"282271:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_storage_ptr","typeString":"struct Options"}},"visibility":"internal"}],"src":"282242:49:0"},"returnParameters":{"id":17952,"nodeType":"ParameterList","parameters":[],"src":"282301:0:0"},"scope":18590,"src":"282218:135:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":17983,"nodeType":"Block","src":"283215:117:0","statements":[{"expression":{"arguments":[{"id":17972,"name":"contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17963,"src":"283241:12:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17973,"name":"opts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17966,"src":"283255:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}],"id":17971,"name":"validateUpgrade","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17960,"src":"283225:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_Options_$13779_memory_ptr_$returns$__$","typeString":"function (string memory,struct Options memory)"}},"id":17974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"283225:35:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17975,"nodeType":"ExpressionStatement","src":"283225:35:0"},{"expression":{"arguments":[{"id":17977,"name":"contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17963,"src":"283284:12:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":17978,"name":"opts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17966,"src":"283298:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}},"id":17979,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"283303:15:0","memberName":"constructorData","nodeType":"MemberAccess","referencedDeclaration":13767,"src":"283298:20:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":17980,"name":"opts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17966,"src":"283320:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}],"id":17976,"name":"deploy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18518,"src":"283277:6:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_struct$_Options_$13779_memory_ptr_$returns$_t_address_$","typeString":"function (string memory,bytes memory,struct Options memory) returns (address)"}},"id":17981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"283277:48:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":17970,"id":17982,"nodeType":"Return","src":"283270:55:0"}]},"documentation":{"id":17961,"nodeType":"StructuredDocumentation","src":"282359:751:0","text":" @dev Validates a new implementation contract in comparison with a reference contract, deploys the new implementation contract,\n and returns its address.\n Requires that either the `referenceContract` option is set, or the contract has a `@custom:oz-upgrades-from ` annotation.\n Use this method to prepare an upgrade to be run from an admin address you do not control directly or cannot use from your deployment environment.\n @param contractName Name of the contract to deploy, e.g. \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n @param opts Common options\n @return Address of the new implementation contract"},"id":17984,"implemented":true,"kind":"function","modifiers":[],"name":"prepareUpgrade","nameLocation":"283124:14:0","nodeType":"FunctionDefinition","parameters":{"id":17967,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17963,"mutability":"mutable","name":"contractName","nameLocation":"283153:12:0","nodeType":"VariableDeclaration","scope":17984,"src":"283139:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17962,"name":"string","nodeType":"ElementaryTypeName","src":"283139:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17966,"mutability":"mutable","name":"opts","nameLocation":"283182:4:0","nodeType":"VariableDeclaration","scope":17984,"src":"283167:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options"},"typeName":{"id":17965,"nodeType":"UserDefinedTypeName","pathNode":{"id":17964,"name":"Options","nameLocations":["283167:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":13779,"src":"283167:7:0"},"referencedDeclaration":13779,"src":"283167:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_storage_ptr","typeString":"struct Options"}},"visibility":"internal"}],"src":"283138:49:0"},"returnParameters":{"id":17970,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17969,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17984,"src":"283206:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17968,"name":"address","nodeType":"ElementaryTypeName","src":"283206:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"283205:9:0"},"scope":18590,"src":"283115:217:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":18019,"nodeType":"Block","src":"283608:162:0","statements":[{"assignments":[17994],"declarations":[{"constant":false,"id":17994,"mutability":"mutable","name":"vm","nameLocation":"283621:2:0","nodeType":"VariableDeclaration","scope":18019,"src":"283618:5:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$4037","typeString":"contract Vm"},"typeName":{"id":17993,"nodeType":"UserDefinedTypeName","pathNode":{"id":17992,"name":"Vm","nameLocations":["283618:2:0"],"nodeType":"IdentifierPath","referencedDeclaration":4037,"src":"283618:2:0"},"referencedDeclaration":4037,"src":"283618:2:0","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$4037","typeString":"contract Vm"}},"visibility":"internal"}],"id":17999,"initialValue":{"arguments":[{"expression":{"id":17996,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17211,"src":"283629:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Utils_$17211_$","typeString":"type(library Utils)"}},"id":17997,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"283635:17:0","memberName":"CHEATCODE_ADDRESS","nodeType":"MemberAccess","referencedDeclaration":16471,"src":"283629:23:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17995,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4037,"src":"283626:2:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Vm_$4037_$","typeString":"type(contract Vm)"}},"id":17998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"283626:27:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$4037","typeString":"contract Vm"}},"nodeType":"VariableDeclarationStatement","src":"283618:35:0"},{"assignments":[18001],"declarations":[{"constant":false,"id":18001,"mutability":"mutable","name":"adminSlot","nameLocation":"283672:9:0","nodeType":"VariableDeclaration","scope":18019,"src":"283664:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18000,"name":"bytes32","nodeType":"ElementaryTypeName","src":"283664:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":18007,"initialValue":{"arguments":[{"id":18004,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17987,"src":"283692:5:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18005,"name":"ADMIN_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18130,"src":"283699:10:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":18002,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17994,"src":"283684:2:0","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$4037","typeString":"contract Vm"}},"id":18003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"283687:4:0","memberName":"load","nodeType":"MemberAccess","referencedDeclaration":838,"src":"283684:7:0","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,bytes32) view external returns (bytes32)"}},"id":18006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"283684:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"283664:46:0"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":18014,"name":"adminSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18001,"src":"283751:9:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":18013,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"283743:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":18012,"name":"uint256","nodeType":"ElementaryTypeName","src":"283743:7:0","typeDescriptions":{}}},"id":18015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"283743:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18011,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"283735:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":18010,"name":"uint160","nodeType":"ElementaryTypeName","src":"283735:7:0","typeDescriptions":{}}},"id":18016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"283735:27:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":18009,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"283727:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":18008,"name":"address","nodeType":"ElementaryTypeName","src":"283727:7:0","typeDescriptions":{}}},"id":18017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"283727:36:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":17991,"id":18018,"nodeType":"Return","src":"283720:43:0"}]},"documentation":{"id":17985,"nodeType":"StructuredDocumentation","src":"283338:193:0","text":" @dev Gets the admin address of a transparent proxy from its ERC1967 admin storage slot.\n @param proxy Address of a transparent proxy\n @return Admin address"},"id":18020,"implemented":true,"kind":"function","modifiers":[],"name":"getAdminAddress","nameLocation":"283545:15:0","nodeType":"FunctionDefinition","parameters":{"id":17988,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17987,"mutability":"mutable","name":"proxy","nameLocation":"283569:5:0","nodeType":"VariableDeclaration","scope":18020,"src":"283561:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17986,"name":"address","nodeType":"ElementaryTypeName","src":"283561:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"283560:15:0"},"returnParameters":{"id":17991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17990,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18020,"src":"283599:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17989,"name":"address","nodeType":"ElementaryTypeName","src":"283599:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"283598:9:0"},"scope":18590,"src":"283536:234:0","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":18055,"nodeType":"Block","src":"284098:169:0","statements":[{"assignments":[18030],"declarations":[{"constant":false,"id":18030,"mutability":"mutable","name":"vm","nameLocation":"284111:2:0","nodeType":"VariableDeclaration","scope":18055,"src":"284108:5:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$4037","typeString":"contract Vm"},"typeName":{"id":18029,"nodeType":"UserDefinedTypeName","pathNode":{"id":18028,"name":"Vm","nameLocations":["284108:2:0"],"nodeType":"IdentifierPath","referencedDeclaration":4037,"src":"284108:2:0"},"referencedDeclaration":4037,"src":"284108:2:0","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$4037","typeString":"contract Vm"}},"visibility":"internal"}],"id":18035,"initialValue":{"arguments":[{"expression":{"id":18032,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17211,"src":"284119:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Utils_$17211_$","typeString":"type(library Utils)"}},"id":18033,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"284125:17:0","memberName":"CHEATCODE_ADDRESS","nodeType":"MemberAccess","referencedDeclaration":16471,"src":"284119:23:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18031,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4037,"src":"284116:2:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Vm_$4037_$","typeString":"type(contract Vm)"}},"id":18034,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"284116:27:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$4037","typeString":"contract Vm"}},"nodeType":"VariableDeclarationStatement","src":"284108:35:0"},{"assignments":[18037],"declarations":[{"constant":false,"id":18037,"mutability":"mutable","name":"implSlot","nameLocation":"284162:8:0","nodeType":"VariableDeclaration","scope":18055,"src":"284154:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18036,"name":"bytes32","nodeType":"ElementaryTypeName","src":"284154:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":18043,"initialValue":{"arguments":[{"id":18040,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18023,"src":"284181:5:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18041,"name":"IMPLEMENTATION_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18126,"src":"284188:19:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":18038,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18030,"src":"284173:2:0","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$4037","typeString":"contract Vm"}},"id":18039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"284176:4:0","memberName":"load","nodeType":"MemberAccess","referencedDeclaration":838,"src":"284173:7:0","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,bytes32) view external returns (bytes32)"}},"id":18042,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"284173:35:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"284154:54:0"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":18050,"name":"implSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18037,"src":"284249:8:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":18049,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"284241:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":18048,"name":"uint256","nodeType":"ElementaryTypeName","src":"284241:7:0","typeDescriptions":{}}},"id":18051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"284241:17:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18047,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"284233:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":18046,"name":"uint160","nodeType":"ElementaryTypeName","src":"284233:7:0","typeDescriptions":{}}},"id":18052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"284233:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":18045,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"284225:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":18044,"name":"address","nodeType":"ElementaryTypeName","src":"284225:7:0","typeDescriptions":{}}},"id":18053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"284225:35:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":18027,"id":18054,"nodeType":"Return","src":"284218:42:0"}]},"documentation":{"id":18021,"nodeType":"StructuredDocumentation","src":"283776:236:0","text":" @dev Gets the implementation address of a transparent or UUPS proxy from its ERC1967 implementation storage slot.\n @param proxy Address of a transparent or UUPS proxy\n @return Implementation address"},"id":18056,"implemented":true,"kind":"function","modifiers":[],"name":"getImplementationAddress","nameLocation":"284026:24:0","nodeType":"FunctionDefinition","parameters":{"id":18024,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18023,"mutability":"mutable","name":"proxy","nameLocation":"284059:5:0","nodeType":"VariableDeclaration","scope":18056,"src":"284051:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18022,"name":"address","nodeType":"ElementaryTypeName","src":"284051:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"284050:15:0"},"returnParameters":{"id":18027,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18026,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18056,"src":"284089:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18025,"name":"address","nodeType":"ElementaryTypeName","src":"284089:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"284088:9:0"},"scope":18590,"src":"284017:250:0","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":18091,"nodeType":"Block","src":"284537:165:0","statements":[{"assignments":[18066],"declarations":[{"constant":false,"id":18066,"mutability":"mutable","name":"vm","nameLocation":"284550:2:0","nodeType":"VariableDeclaration","scope":18091,"src":"284547:5:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$4037","typeString":"contract Vm"},"typeName":{"id":18065,"nodeType":"UserDefinedTypeName","pathNode":{"id":18064,"name":"Vm","nameLocations":["284547:2:0"],"nodeType":"IdentifierPath","referencedDeclaration":4037,"src":"284547:2:0"},"referencedDeclaration":4037,"src":"284547:2:0","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$4037","typeString":"contract Vm"}},"visibility":"internal"}],"id":18071,"initialValue":{"arguments":[{"expression":{"id":18068,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17211,"src":"284558:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Utils_$17211_$","typeString":"type(library Utils)"}},"id":18069,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"284564:17:0","memberName":"CHEATCODE_ADDRESS","nodeType":"MemberAccess","referencedDeclaration":16471,"src":"284558:23:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18067,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4037,"src":"284555:2:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Vm_$4037_$","typeString":"type(contract Vm)"}},"id":18070,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"284555:27:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$4037","typeString":"contract Vm"}},"nodeType":"VariableDeclarationStatement","src":"284547:35:0"},{"assignments":[18073],"declarations":[{"constant":false,"id":18073,"mutability":"mutable","name":"beaconSlot","nameLocation":"284601:10:0","nodeType":"VariableDeclaration","scope":18091,"src":"284593:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18072,"name":"bytes32","nodeType":"ElementaryTypeName","src":"284593:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":18079,"initialValue":{"arguments":[{"id":18076,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18059,"src":"284622:5:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18077,"name":"BEACON_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18134,"src":"284629:11:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":18074,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18066,"src":"284614:2:0","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$4037","typeString":"contract Vm"}},"id":18075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"284617:4:0","memberName":"load","nodeType":"MemberAccess","referencedDeclaration":838,"src":"284614:7:0","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,bytes32) view external returns (bytes32)"}},"id":18078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"284614:27:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"284593:48:0"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":18086,"name":"beaconSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18073,"src":"284682:10:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":18085,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"284674:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":18084,"name":"uint256","nodeType":"ElementaryTypeName","src":"284674:7:0","typeDescriptions":{}}},"id":18087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"284674:19:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18083,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"284666:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":18082,"name":"uint160","nodeType":"ElementaryTypeName","src":"284666:7:0","typeDescriptions":{}}},"id":18088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"284666:28:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":18081,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"284658:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":18080,"name":"address","nodeType":"ElementaryTypeName","src":"284658:7:0","typeDescriptions":{}}},"id":18089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"284658:37:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":18063,"id":18090,"nodeType":"Return","src":"284651:44:0"}]},"documentation":{"id":18057,"nodeType":"StructuredDocumentation","src":"284273:186:0","text":" @dev Gets the beacon address of a beacon proxy from its ERC1967 beacon storage slot.\n @param proxy Address of a beacon proxy\n @return Beacon address"},"id":18092,"implemented":true,"kind":"function","modifiers":[],"name":"getBeaconAddress","nameLocation":"284473:16:0","nodeType":"FunctionDefinition","parameters":{"id":18060,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18059,"mutability":"mutable","name":"proxy","nameLocation":"284498:5:0","nodeType":"VariableDeclaration","scope":18092,"src":"284490:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18058,"name":"address","nodeType":"ElementaryTypeName","src":"284490:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"284489:15:0"},"returnParameters":{"id":18063,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18062,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18092,"src":"284528:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18061,"name":"address","nodeType":"ElementaryTypeName","src":"284528:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"284527:9:0"},"scope":18590,"src":"284464:238:0","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":18121,"nodeType":"Block","src":"285001:177:0","statements":[{"assignments":[18099],"declarations":[{"constant":false,"id":18099,"mutability":"mutable","name":"vm","nameLocation":"285014:2:0","nodeType":"VariableDeclaration","scope":18121,"src":"285011:5:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$4037","typeString":"contract Vm"},"typeName":{"id":18098,"nodeType":"UserDefinedTypeName","pathNode":{"id":18097,"name":"Vm","nameLocations":["285011:2:0"],"nodeType":"IdentifierPath","referencedDeclaration":4037,"src":"285011:2:0"},"referencedDeclaration":4037,"src":"285011:2:0","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$4037","typeString":"contract Vm"}},"visibility":"internal"}],"id":18104,"initialValue":{"arguments":[{"expression":{"id":18101,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17211,"src":"285022:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Utils_$17211_$","typeString":"type(library Utils)"}},"id":18102,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"285028:17:0","memberName":"CHEATCODE_ADDRESS","nodeType":"MemberAccess","referencedDeclaration":16471,"src":"285022:23:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18100,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4037,"src":"285019:2:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Vm_$4037_$","typeString":"type(contract Vm)"}},"id":18103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"285019:27:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$4037","typeString":"contract Vm"}},"nodeType":"VariableDeclarationStatement","src":"285011:35:0"},{"clauses":[{"block":{"id":18115,"nodeType":"Block","src":"285085:54:0","statements":[{"id":18109,"nodeType":"PlaceholderStatement","src":"285099:1:0"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":18110,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18099,"src":"285114:2:0","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$4037","typeString":"contract Vm"}},"id":18112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"285117:9:0","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":3790,"src":"285114:12:0","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":18113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"285114:14:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18114,"nodeType":"ExpressionStatement","src":"285114:14:0"}]},"errorName":"","id":18116,"nodeType":"TryCatchClause","src":"285085:54:0"},{"block":{"id":18118,"nodeType":"Block","src":"285146:26:0","statements":[{"id":18117,"nodeType":"PlaceholderStatement","src":"285160:1:0"}]},"errorName":"","id":18119,"nodeType":"TryCatchClause","src":"285140:32:0"}],"externalCall":{"arguments":[{"id":18107,"name":"deployer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18095,"src":"285075:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":18105,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18099,"src":"285061:2:0","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$4037","typeString":"contract Vm"}},"id":18106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"285064:10:0","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":3778,"src":"285061:13:0","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":18108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"285061:23:0","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18120,"nodeType":"TryStatement","src":"285057:115:0"}]},"documentation":{"id":18093,"nodeType":"StructuredDocumentation","src":"284708:252:0","text":" @notice For tests only. If broadcasting in scripts, use the `--sender
` option with `forge script` instead.\n @dev Runs a function as a prank, or just runs the function normally if the prank could not be started."},"id":18122,"name":"tryPrank","nameLocation":"284974:8:0","nodeType":"ModifierDefinition","parameters":{"id":18096,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18095,"mutability":"mutable","name":"deployer","nameLocation":"284991:8:0","nodeType":"VariableDeclaration","scope":18122,"src":"284983:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18094,"name":"address","nodeType":"ElementaryTypeName","src":"284983:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"284982:18:0"},"src":"284965:213:0","virtual":false,"visibility":"internal"},{"constant":true,"documentation":{"id":18123,"nodeType":"StructuredDocumentation","src":"285184:162:0","text":" @dev Storage slot with the address of the implementation.\n This is the keccak-256 hash of \"eip1967.proxy.implementation\" subtracted by 1."},"id":18126,"mutability":"constant","name":"IMPLEMENTATION_SLOT","nameLocation":"285376:19:0","nodeType":"VariableDeclaration","scope":18590,"src":"285351:113:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18124,"name":"bytes32","nodeType":"ElementaryTypeName","src":"285351:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307833363038393461313362613161333231303636376338323834393264623938646361336532303736636333373335613932306133636135303564333832626263","id":18125,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"285398:66:0","typeDescriptions":{"typeIdentifier":"t_rational_24440054405305269366569402256811496959409073762505157381672968839269610695612_by_1","typeString":"int_const 2444...(69 digits omitted)...5612"},"value":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"},"visibility":"private"},{"constant":true,"documentation":{"id":18127,"nodeType":"StructuredDocumentation","src":"285471:142:0","text":" @dev Storage slot with the admin of the proxy.\n This is the keccak-256 hash of \"eip1967.proxy.admin\" subtracted by 1."},"id":18130,"mutability":"constant","name":"ADMIN_SLOT","nameLocation":"285643:10:0","nodeType":"VariableDeclaration","scope":18590,"src":"285618:104:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18128,"name":"bytes32","nodeType":"ElementaryTypeName","src":"285618:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307862353331323736383461353638623331373361653133623966386136303136653234336536336236653865653131373864366137313738353062356436313033","id":18129,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"285656:66:0","typeDescriptions":{"typeIdentifier":"t_rational_81955473079516046949633743016697847541294818689821282749996681496272635257091_by_1","typeString":"int_const 8195...(69 digits omitted)...7091"},"value":"0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103"},"visibility":"private"},{"constant":true,"documentation":{"id":18131,"nodeType":"StructuredDocumentation","src":"285729:198:0","text":" @dev Storage slot with the UpgradeableBeacon contract which defines the implementation for the proxy.\n This is the keccak-256 hash of \"eip1967.proxy.beacon\" subtracted by 1."},"id":18134,"mutability":"constant","name":"BEACON_SLOT","nameLocation":"285957:11:0","nodeType":"VariableDeclaration","scope":18590,"src":"285932:105:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18132,"name":"bytes32","nodeType":"ElementaryTypeName","src":"285932:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307861336630616437346535343233616562666438306433656634333436353738333335613961373261656165653539666636636233353832623335313333643530","id":18133,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"285971:66:0","typeDescriptions":{"typeIdentifier":"t_rational_74152234768234802001998023604048924213078445070507226371336425913862612794704_by_1","typeString":"int_const 7415...(69 digits omitted)...4704"},"value":"0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50"},"visibility":"private"},{"global":false,"id":18136,"libraryName":{"id":18135,"name":"Strings","nameLocations":["286050:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":16079,"src":"286050:7:0"},"nodeType":"UsingForDirective","src":"286044:20:0"},{"body":{"id":18175,"nodeType":"Block","src":"286442:368:0","statements":[{"assignments":[18145,18147],"declarations":[{"constant":false,"id":18145,"mutability":"mutable","name":"success","nameLocation":"286522:7:0","nodeType":"VariableDeclaration","scope":18175,"src":"286517:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18144,"name":"bool","nodeType":"ElementaryTypeName","src":"286517:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18147,"mutability":"mutable","name":"returndata","nameLocation":"286544:10:0","nodeType":"VariableDeclaration","scope":18175,"src":"286531:23:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":18146,"name":"bytes","nodeType":"ElementaryTypeName","src":"286531:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":18155,"initialValue":{"arguments":[{"arguments":[{"hexValue":"555047524144455f494e544552464143455f56455253494f4e2829","id":18152,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"286611:29:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad3cb1cc5c2df3b903ea43f30f77a80ecfeefbed7932a4a8e68c92af99e41dfd","typeString":"literal_string \"UPGRADE_INTERFACE_VERSION()\""},"value":"UPGRADE_INTERFACE_VERSION()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ad3cb1cc5c2df3b903ea43f30f77a80ecfeefbed7932a4a8e68c92af99e41dfd","typeString":"literal_string \"UPGRADE_INTERFACE_VERSION()\""}],"expression":{"id":18150,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"286587:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18151,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"286591:19:0","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"286587:23:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18153,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"286587:54:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":18148,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18139,"src":"286558:4:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":18149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"286563:10:0","memberName":"staticcall","nodeType":"MemberAccess","src":"286558:15:0","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":18154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"286558:93:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"286516:135:0"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18156,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18145,"src":"286665:7:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18157,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18147,"src":"286676:10:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":18158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"286687:6:0","memberName":"length","nodeType":"MemberAccess","src":"286676:17:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"3332","id":18159,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"286696:2:0","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"286676:22:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"286665:33:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":18173,"nodeType":"Block","src":"286770:34:0","statements":[{"expression":{"hexValue":"","id":18171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"286791:2:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"functionReturnParameters":18143,"id":18172,"nodeType":"Return","src":"286784:9:0"}]},"id":18174,"nodeType":"IfStatement","src":"286661:143:0","trueBody":{"id":18170,"nodeType":"Block","src":"286700:64:0","statements":[{"expression":{"arguments":[{"id":18164,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18147,"src":"286732:10:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":18166,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"286745:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":18165,"name":"string","nodeType":"ElementaryTypeName","src":"286745:6:0","typeDescriptions":{}}}],"id":18167,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"286744:8:0","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"}],"expression":{"id":18162,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"286721:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18163,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"286725:6:0","memberName":"decode","nodeType":"MemberAccess","src":"286721:10:0","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":18168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"286721:32:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":18143,"id":18169,"nodeType":"Return","src":"286714:39:0"}]}}]},"documentation":{"id":18137,"nodeType":"StructuredDocumentation","src":"286070:279:0","text":" @dev Gets the upgrade interface version string from a proxy or admin contract using the `UPGRADE_INTERFACE_VERSION()` getter.\n If the contract does not have the getter or the return data does not look like a string, this function returns an empty string."},"id":18176,"implemented":true,"kind":"function","modifiers":[],"name":"getUpgradeInterfaceVersion","nameLocation":"286363:26:0","nodeType":"FunctionDefinition","parameters":{"id":18140,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18139,"mutability":"mutable","name":"addr","nameLocation":"286398:4:0","nodeType":"VariableDeclaration","scope":18176,"src":"286390:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18138,"name":"address","nodeType":"ElementaryTypeName","src":"286390:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"286389:14:0"},"returnParameters":{"id":18143,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18142,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18176,"src":"286427:13:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18141,"name":"string","nodeType":"ElementaryTypeName","src":"286427:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"286426:15:0"},"scope":18590,"src":"286354:456:0","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":18270,"nodeType":"Block","src":"286915:992:0","statements":[{"condition":{"expression":{"id":18186,"name":"opts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18181,"src":"286929:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}},"id":18187,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"286934:19:0","memberName":"unsafeSkipAllChecks","nodeType":"MemberAccess","referencedDeclaration":13775,"src":"286929:24:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18190,"nodeType":"IfStatement","src":"286925:61:0","trueBody":{"id":18189,"nodeType":"Block","src":"286955:31:0","statements":[{"functionReturnParameters":18185,"id":18188,"nodeType":"Return","src":"286969:7:0"}]}},{"assignments":[18195],"declarations":[{"constant":false,"id":18195,"mutability":"mutable","name":"inputs","nameLocation":"287012:6:0","nodeType":"VariableDeclaration","scope":18270,"src":"286996:22:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":18193,"name":"string","nodeType":"ElementaryTypeName","src":"286996:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":18194,"nodeType":"ArrayTypeName","src":"286996:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"id":18201,"initialValue":{"arguments":[{"id":18197,"name":"contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18178,"src":"287043:12:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18198,"name":"opts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18181,"src":"287057:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}},{"id":18199,"name":"requireReference","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18183,"src":"287063:16:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":18196,"name":"_buildValidateCommand","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18486,"src":"287021:21:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_struct$_Options_$13779_memory_ptr_$_t_bool_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$","typeString":"function (string memory,struct Options memory,bool) view returns (string memory[] memory)"}},"id":18200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"287021:59:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"286996:84:0"},{"assignments":[18206],"declarations":[{"constant":false,"id":18206,"mutability":"mutable","name":"result","nameLocation":"287114:6:0","nodeType":"VariableDeclaration","scope":18270,"src":"287090:30:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FfiResult_$116_memory_ptr","typeString":"struct VmSafe.FfiResult"},"typeName":{"id":18205,"nodeType":"UserDefinedTypeName","pathNode":{"id":18204,"name":"VmSafe.FfiResult","nameLocations":["287090:6:0","287097:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":116,"src":"287090:16:0"},"referencedDeclaration":116,"src":"287090:16:0","typeDescriptions":{"typeIdentifier":"t_struct$_FfiResult_$116_storage_ptr","typeString":"struct VmSafe.FfiResult"}},"visibility":"internal"}],"id":18211,"initialValue":{"arguments":[{"id":18209,"name":"inputs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18195,"src":"287146:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}],"expression":{"id":18207,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17211,"src":"287123:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Utils_$17211_$","typeString":"type(library Utils)"}},"id":18208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"287129:16:0","memberName":"runAsBashCommand","nodeType":"MemberAccess","referencedDeclaration":17210,"src":"287123:22:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$returns$_t_struct$_FfiResult_$116_memory_ptr_$","typeString":"function (string memory[] memory) returns (struct VmSafe.FfiResult memory)"}},"id":18210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"287123:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FfiResult_$116_memory_ptr","typeString":"struct VmSafe.FfiResult memory"}},"nodeType":"VariableDeclarationStatement","src":"287090:63:0"},{"assignments":[18213],"declarations":[{"constant":false,"id":18213,"mutability":"mutable","name":"stdout","nameLocation":"287177:6:0","nodeType":"VariableDeclaration","scope":18270,"src":"287163:20:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18212,"name":"string","nodeType":"ElementaryTypeName","src":"287163:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":18219,"initialValue":{"arguments":[{"expression":{"id":18216,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18206,"src":"287193:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_FfiResult_$116_memory_ptr","typeString":"struct VmSafe.FfiResult memory"}},"id":18217,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"287200:6:0","memberName":"stdout","nodeType":"MemberAccess","referencedDeclaration":113,"src":"287193:13:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18215,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"287186:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":18214,"name":"string","nodeType":"ElementaryTypeName","src":"287186:6:0","typeDescriptions":{}}},"id":18218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"287186:21:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"287163:44:0"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int32","typeString":"int32"},"id":18223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18220,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18206,"src":"287414:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_FfiResult_$116_memory_ptr","typeString":"struct VmSafe.FfiResult memory"}},"id":18221,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"287421:8:0","memberName":"exitCode","nodeType":"MemberAccess","referencedDeclaration":111,"src":"287414:15:0","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":18222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"287433:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"287414:20:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"hexValue":"53554343455353","id":18228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"287464:9:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_39bf027dd97f3bae0cf8cfb909695ec63313a9bd61ad52fc7f52cf565b141da8","typeString":"literal_string \"SUCCESS\""},"value":"SUCCESS"},"id":18229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"287474:7:0","memberName":"toSlice","nodeType":"MemberAccess","referencedDeclaration":14089,"src":"287464:17:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (struct Strings.slice memory)"}},"id":18230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"287464:19:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":18224,"name":"stdout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18213,"src":"287438:6:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":18225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"287445:7:0","memberName":"toSlice","nodeType":"MemberAccess","referencedDeclaration":14089,"src":"287438:14:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (struct Strings.slice memory)"}},"id":18226,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"287438:16:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":18227,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"287455:8:0","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":15673,"src":"287438:25:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$14014_memory_ptr_$_t_struct$_slice_$14014_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_slice_$14014_memory_ptr_$","typeString":"function (struct Strings.slice memory,struct Strings.slice memory) pure returns (bool)"}},"id":18231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"287438:46:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"287414:70:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":18235,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18206,"src":"287527:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_FfiResult_$116_memory_ptr","typeString":"struct VmSafe.FfiResult memory"}},"id":18236,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"287534:6:0","memberName":"stderr","nodeType":"MemberAccess","referencedDeclaration":115,"src":"287527:13:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":18237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"287541:6:0","memberName":"length","nodeType":"MemberAccess","src":"287527:20:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":18238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"287550:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"287527:24:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":18267,"nodeType":"Block","src":"287725:176:0","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"55706772616465207361666574792076616c69646174696f6e206661696c65643a0a","id":18261,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"287842:37:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_08801615ab40adc93bf881a8fa998cec8215450529dace7649c906794b645fd9","typeString":"literal_string hex\"55706772616465207361666574792076616c69646174696f6e206661696c65643a0a\""},"value":"Upgrade safety validation failed:\n"},{"id":18262,"name":"stdout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18213,"src":"287881:6:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_08801615ab40adc93bf881a8fa998cec8215450529dace7649c906794b645fd9","typeString":"literal_string hex\"55706772616465207361666574792076616c69646174696f6e206661696c65643a0a\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":18259,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"287825:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18260,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"287829:12:0","memberName":"encodePacked","nodeType":"MemberAccess","src":"287825:16:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":18263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"287825:63:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18258,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"287818:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":18257,"name":"string","nodeType":"ElementaryTypeName","src":"287818:6:0","typeDescriptions":{}}},"id":18264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"287818:71:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":18256,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"287811:6:0","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":18265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"287811:79:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18266,"nodeType":"ExpressionStatement","src":"287811:79:0"}]},"id":18268,"nodeType":"IfStatement","src":"287523:378:0","trueBody":{"id":18255,"nodeType":"Block","src":"287553:166:0","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"4661696c656420746f2072756e2075706772616465207361666574792076616c69646174696f6e3a20","id":18245,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"287639:43:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_29a2b74f226f0ae680d4b1730e672f85f1c84ce9f2c45ff21557229ab3df8027","typeString":"literal_string \"Failed to run upgrade safety validation: \""},"value":"Failed to run upgrade safety validation: "},{"arguments":[{"expression":{"id":18248,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18206,"src":"287691:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_FfiResult_$116_memory_ptr","typeString":"struct VmSafe.FfiResult memory"}},"id":18249,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"287698:6:0","memberName":"stderr","nodeType":"MemberAccess","referencedDeclaration":115,"src":"287691:13:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18247,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"287684:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":18246,"name":"string","nodeType":"ElementaryTypeName","src":"287684:6:0","typeDescriptions":{}}},"id":18250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"287684:21:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_29a2b74f226f0ae680d4b1730e672f85f1c84ce9f2c45ff21557229ab3df8027","typeString":"literal_string \"Failed to run upgrade safety validation: \""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":18243,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"287622:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18244,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"287626:12:0","memberName":"encodePacked","nodeType":"MemberAccess","src":"287622:16:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":18251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"287622:84:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18242,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"287615:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":18241,"name":"string","nodeType":"ElementaryTypeName","src":"287615:6:0","typeDescriptions":{}}},"id":18252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"287615:92:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":18240,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"287608:6:0","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":18253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"287608:100:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18254,"nodeType":"ExpressionStatement","src":"287608:100:0"}]}},"id":18269,"nodeType":"IfStatement","src":"287410:491:0","trueBody":{"id":18234,"nodeType":"Block","src":"287486:31:0","statements":[{"functionReturnParameters":18185,"id":18233,"nodeType":"Return","src":"287500:7:0"}]}}]},"id":18271,"implemented":true,"kind":"function","modifiers":[],"name":"_validate","nameLocation":"286825:9:0","nodeType":"FunctionDefinition","parameters":{"id":18184,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18178,"mutability":"mutable","name":"contractName","nameLocation":"286849:12:0","nodeType":"VariableDeclaration","scope":18271,"src":"286835:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18177,"name":"string","nodeType":"ElementaryTypeName","src":"286835:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18181,"mutability":"mutable","name":"opts","nameLocation":"286878:4:0","nodeType":"VariableDeclaration","scope":18271,"src":"286863:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options"},"typeName":{"id":18180,"nodeType":"UserDefinedTypeName","pathNode":{"id":18179,"name":"Options","nameLocations":["286863:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":13779,"src":"286863:7:0"},"referencedDeclaration":13779,"src":"286863:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_storage_ptr","typeString":"struct Options"}},"visibility":"internal"},{"constant":false,"id":18183,"mutability":"mutable","name":"requireReference","nameLocation":"286889:16:0","nodeType":"VariableDeclaration","scope":18271,"src":"286884:21:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18182,"name":"bool","nodeType":"ElementaryTypeName","src":"286884:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"286834:72:0"},"returnParameters":{"id":18185,"nodeType":"ParameterList","parameters":[],"src":"286915:0:0"},"scope":18590,"src":"286816:1091:0","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":18485,"nodeType":"Block","src":"288085:1433:0","statements":[{"assignments":[18285],"declarations":[{"constant":false,"id":18285,"mutability":"mutable","name":"outDir","nameLocation":"288109:6:0","nodeType":"VariableDeclaration","scope":18485,"src":"288095:20:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18284,"name":"string","nodeType":"ElementaryTypeName","src":"288095:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":18289,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":18286,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17211,"src":"288118:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Utils_$17211_$","typeString":"type(library Utils)"}},"id":18287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"288124:9:0","memberName":"getOutDir","nodeType":"MemberAccess","referencedDeclaration":16770,"src":"288118:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view returns (string memory)"}},"id":18288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"288118:17:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"288095:40:0"},{"assignments":[18294],"declarations":[{"constant":false,"id":18294,"mutability":"mutable","name":"inputBuilder","nameLocation":"288162:12:0","nodeType":"VariableDeclaration","scope":18485,"src":"288146:28:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":18292,"name":"string","nodeType":"ElementaryTypeName","src":"288146:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":18293,"nodeType":"ArrayTypeName","src":"288146:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"id":18300,"initialValue":{"arguments":[{"hexValue":"323535","id":18298,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"288190:3:0","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"}],"id":18297,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"288177:12:0","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (string memory[] memory)"},"typeName":{"baseType":{"id":18295,"name":"string","nodeType":"ElementaryTypeName","src":"288181:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":18296,"nodeType":"ArrayTypeName","src":"288181:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}}},"id":18299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"288177:17:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"288146:48:0"},{"assignments":[18302],"declarations":[{"constant":false,"id":18302,"mutability":"mutable","name":"i","nameLocation":"288211:1:0","nodeType":"VariableDeclaration","scope":18485,"src":"288205:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":18301,"name":"uint8","nodeType":"ElementaryTypeName","src":"288205:5:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":18304,"initialValue":{"hexValue":"30","id":18303,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"288215:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"288205:11:0"},{"expression":{"id":18310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":18305,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18294,"src":"288227:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":18308,"indexExpression":{"id":18307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"288240:3:0","subExpression":{"id":18306,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18302,"src":"288240:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"288227:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"6e7078","id":18309,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"288247:5:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_169a1000665635df106bbe8ab6519d10dd57f5c196b68846e9722c94b7bf89aa","typeString":"literal_string \"npx\""},"value":"npx"},"src":"288227:25:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":18311,"nodeType":"ExpressionStatement","src":"288227:25:0"},{"expression":{"id":18325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":18312,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18294,"src":"288262:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":18315,"indexExpression":{"id":18314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"288275:3:0","subExpression":{"id":18313,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18302,"src":"288275:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"288262:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"406f70656e7a657070656c696e2f75706772616465732d636f726540","id":18320,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"288306:30:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_459e684ed08b96f40b9b516154105232b46d6e25e3ebbcc2460d0ad2691a0f84","typeString":"literal_string \"@openzeppelin/upgrades-core@\""},"value":"@openzeppelin/upgrades-core@"},{"expression":{"id":18321,"name":"Versions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13817,"src":"288338:8:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Versions_$13817_$","typeString":"type(library Versions)"}},"id":18322,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"288347:13:0","memberName":"UPGRADES_CORE","nodeType":"MemberAccess","referencedDeclaration":13813,"src":"288338:22:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_459e684ed08b96f40b9b516154105232b46d6e25e3ebbcc2460d0ad2691a0f84","typeString":"literal_string \"@openzeppelin/upgrades-core@\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":18318,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"288289:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18319,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"288293:12:0","memberName":"encodePacked","nodeType":"MemberAccess","src":"288289:16:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":18323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"288289:72:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18317,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"288282:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":18316,"name":"string","nodeType":"ElementaryTypeName","src":"288282:6:0","typeDescriptions":{}}},"id":18324,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"288282:80:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"288262:100:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":18326,"nodeType":"ExpressionStatement","src":"288262:100:0"},{"expression":{"id":18332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":18327,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18294,"src":"288372:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":18330,"indexExpression":{"id":18329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"288385:3:0","subExpression":{"id":18328,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18302,"src":"288385:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"288372:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"76616c6964617465","id":18331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"288392:10:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_67d5dd63d7dc0de108d32d55bd8a8f2b62fd23d0938f9b5b2c6003ec0cb829ca","typeString":"literal_string \"validate\""},"value":"validate"},"src":"288372:30:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":18333,"nodeType":"ExpressionStatement","src":"288372:30:0"},{"expression":{"id":18346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":18334,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18294,"src":"288412:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":18337,"indexExpression":{"id":18336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"288425:3:0","subExpression":{"id":18335,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18302,"src":"288425:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"288412:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":18342,"name":"outDir","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18285,"src":"288456:6:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"2f6275696c642d696e666f","id":18343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"288464:13:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_69ae65ff9142d8f87b3884b153358f78dcd4f6339bb046b9a6d16c966fa813af","typeString":"literal_string \"/build-info\""},"value":"/build-info"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_69ae65ff9142d8f87b3884b153358f78dcd4f6339bb046b9a6d16c966fa813af","typeString":"literal_string \"/build-info\""}],"expression":{"id":18340,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"288439:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18341,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"288443:12:0","memberName":"encodePacked","nodeType":"MemberAccess","src":"288439:16:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":18344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"288439:39:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18339,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"288432:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":18338,"name":"string","nodeType":"ElementaryTypeName","src":"288432:6:0","typeDescriptions":{}}},"id":18345,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"288432:47:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"288412:67:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":18347,"nodeType":"ExpressionStatement","src":"288412:67:0"},{"expression":{"id":18353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":18348,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18294,"src":"288489:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":18351,"indexExpression":{"id":18350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"288502:3:0","subExpression":{"id":18349,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18302,"src":"288502:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"288489:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"2d2d636f6e7472616374","id":18352,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"288509:12:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_3b0e6b1164482541e4d24a6cb6f13807add41f2d9d48e3c79f2d3f8a98381b61","typeString":"literal_string \"--contract\""},"value":"--contract"},"src":"288489:32:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":18354,"nodeType":"ExpressionStatement","src":"288489:32:0"},{"expression":{"id":18364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":18355,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18294,"src":"288531:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":18358,"indexExpression":{"id":18357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"288544:3:0","subExpression":{"id":18356,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18302,"src":"288544:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"288531:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":18361,"name":"contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18273,"src":"288579:12:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18362,"name":"outDir","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18285,"src":"288593:6:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":18359,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17211,"src":"288551:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Utils_$17211_$","typeString":"type(library Utils)"}},"id":18360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"288557:21:0","memberName":"getFullyQualifiedName","nodeType":"MemberAccess","referencedDeclaration":16502,"src":"288551:27:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory) view returns (string memory)"}},"id":18363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"288551:49:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"288531:69:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":18365,"nodeType":"ExpressionStatement","src":"288531:69:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"expression":{"id":18368,"name":"opts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18276,"src":"288621:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}},"id":18369,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"288626:17:0","memberName":"referenceContract","nodeType":"MemberAccess","referencedDeclaration":13765,"src":"288621:22:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":18367,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"288615:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":18366,"name":"bytes","nodeType":"ElementaryTypeName","src":"288615:5:0","typeDescriptions":{}}},"id":18370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"288615:29:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":18371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"288645:6:0","memberName":"length","nodeType":"MemberAccess","src":"288615:36:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":18372,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"288655:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"288615:41:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18394,"nodeType":"IfStatement","src":"288611:198:0","trueBody":{"id":18393,"nodeType":"Block","src":"288658:151:0","statements":[{"expression":{"id":18379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":18374,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18294,"src":"288672:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":18377,"indexExpression":{"id":18376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"288685:3:0","subExpression":{"id":18375,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18302,"src":"288685:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"288672:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"2d2d7265666572656e6365","id":18378,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"288692:13:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_0d26cccc713a3e21239b15a882ab87c502303b0e01681e8e02e3264e9cc6764e","typeString":"literal_string \"--reference\""},"value":"--reference"},"src":"288672:33:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":18380,"nodeType":"ExpressionStatement","src":"288672:33:0"},{"expression":{"id":18391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":18381,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18294,"src":"288719:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":18384,"indexExpression":{"id":18383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"288732:3:0","subExpression":{"id":18382,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18302,"src":"288732:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"288719:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":18387,"name":"opts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18276,"src":"288767:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}},"id":18388,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"288772:17:0","memberName":"referenceContract","nodeType":"MemberAccess","referencedDeclaration":13765,"src":"288767:22:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18389,"name":"outDir","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18285,"src":"288791:6:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":18385,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17211,"src":"288739:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Utils_$17211_$","typeString":"type(library Utils)"}},"id":18386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"288745:21:0","memberName":"getFullyQualifiedName","nodeType":"MemberAccess","referencedDeclaration":16502,"src":"288739:27:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory) view returns (string memory)"}},"id":18390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"288739:59:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"288719:79:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":18392,"nodeType":"ExpressionStatement","src":"288719:79:0"}]}},{"condition":{"expression":{"id":18395,"name":"opts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18276,"src":"288823:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}},"id":18396,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"288828:22:0","memberName":"unsafeSkipStorageCheck","nodeType":"MemberAccess","referencedDeclaration":13773,"src":"288823:27:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"id":18405,"name":"requireReference","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18278,"src":"288933:16:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18414,"nodeType":"IfStatement","src":"288929:87:0","trueBody":{"id":18413,"nodeType":"Block","src":"288951:65:0","statements":[{"expression":{"id":18411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":18406,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18294,"src":"288965:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":18409,"indexExpression":{"id":18408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"288978:3:0","subExpression":{"id":18407,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18302,"src":"288978:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"288965:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"2d2d726571756972655265666572656e6365","id":18410,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"288985:20:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_6d766f59bf6d0ab60edca901c72671bf43dc1fb2f39735502e15ab94ce777b39","typeString":"literal_string \"--requireReference\""},"value":"--requireReference"},"src":"288965:40:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":18412,"nodeType":"ExpressionStatement","src":"288965:40:0"}]}},"id":18415,"nodeType":"IfStatement","src":"288819:197:0","trueBody":{"id":18404,"nodeType":"Block","src":"288852:71:0","statements":[{"expression":{"id":18402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":18397,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18294,"src":"288866:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":18400,"indexExpression":{"id":18399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"288879:3:0","subExpression":{"id":18398,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18302,"src":"288879:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"288866:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"2d2d756e73616665536b697053746f72616765436865636b","id":18401,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"288886:26:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_8cf70432acc3bb1de86bbee2acff17d879f3e10f2f3bd33aae966886545656da","typeString":"literal_string \"--unsafeSkipStorageCheck\""},"value":"--unsafeSkipStorageCheck"},"src":"288866:46:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":18403,"nodeType":"ExpressionStatement","src":"288866:46:0"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"expression":{"id":18418,"name":"opts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18276,"src":"289036:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}},"id":18419,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"289041:11:0","memberName":"unsafeAllow","nodeType":"MemberAccess","referencedDeclaration":13769,"src":"289036:16:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":18417,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"289030:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":18416,"name":"bytes","nodeType":"ElementaryTypeName","src":"289030:5:0","typeDescriptions":{}}},"id":18420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"289030:23:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":18421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"289054:6:0","memberName":"length","nodeType":"MemberAccess","src":"289030:30:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":18422,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"289064:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"289030:35:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18440,"nodeType":"IfStatement","src":"289026:151:0","trueBody":{"id":18439,"nodeType":"Block","src":"289067:110:0","statements":[{"expression":{"id":18429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":18424,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18294,"src":"289081:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":18427,"indexExpression":{"id":18426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"289094:3:0","subExpression":{"id":18425,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18302,"src":"289094:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"289081:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"2d2d756e73616665416c6c6f77","id":18428,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"289101:15:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_858b2d7962c0a21f136f10e55f819f574e5af3859efccbbe40131831be0950ac","typeString":"literal_string \"--unsafeAllow\""},"value":"--unsafeAllow"},"src":"289081:35:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":18430,"nodeType":"ExpressionStatement","src":"289081:35:0"},{"expression":{"id":18437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":18431,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18294,"src":"289130:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":18434,"indexExpression":{"id":18433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"289143:3:0","subExpression":{"id":18432,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18302,"src":"289143:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"289130:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18435,"name":"opts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18276,"src":"289150:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}},"id":18436,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"289155:11:0","memberName":"unsafeAllow","nodeType":"MemberAccess","referencedDeclaration":13769,"src":"289150:16:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"289130:36:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":18438,"nodeType":"ExpressionStatement","src":"289130:36:0"}]}},{"condition":{"expression":{"id":18441,"name":"opts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18276,"src":"289191:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}},"id":18442,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"289196:18:0","memberName":"unsafeAllowRenames","nodeType":"MemberAccess","referencedDeclaration":13771,"src":"289191:23:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18451,"nodeType":"IfStatement","src":"289187:96:0","trueBody":{"id":18450,"nodeType":"Block","src":"289216:67:0","statements":[{"expression":{"id":18448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":18443,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18294,"src":"289230:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":18446,"indexExpression":{"id":18445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"289243:3:0","subExpression":{"id":18444,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18302,"src":"289243:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"289230:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"2d2d756e73616665416c6c6f7752656e616d6573","id":18447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"289250:22:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_b001052c52501f0fe7f938db35582424cc6ff35d81b60d3f3e7605ce1ae35603","typeString":"literal_string \"--unsafeAllowRenames\""},"value":"--unsafeAllowRenames"},"src":"289230:42:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":18449,"nodeType":"ExpressionStatement","src":"289230:42:0"}]}},{"assignments":[18456],"declarations":[{"constant":false,"id":18456,"mutability":"mutable","name":"inputs","nameLocation":"289372:6:0","nodeType":"VariableDeclaration","scope":18485,"src":"289356:22:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":18454,"name":"string","nodeType":"ElementaryTypeName","src":"289356:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":18455,"nodeType":"ArrayTypeName","src":"289356:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"id":18462,"initialValue":{"arguments":[{"id":18460,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18302,"src":"289394:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":18459,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"289381:12:0","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (string memory[] memory)"},"typeName":{"baseType":{"id":18457,"name":"string","nodeType":"ElementaryTypeName","src":"289385:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":18458,"nodeType":"ArrayTypeName","src":"289385:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}}},"id":18461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"289381:15:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"289356:40:0"},{"body":{"id":18481,"nodeType":"Block","src":"289436:52:0","statements":[{"expression":{"id":18479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":18473,"name":"inputs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18456,"src":"289450:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":18475,"indexExpression":{"id":18474,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18464,"src":"289457:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"289450:9:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":18476,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18294,"src":"289462:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":18478,"indexExpression":{"id":18477,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18464,"src":"289475:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"289462:15:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"289450:27:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":18480,"nodeType":"ExpressionStatement","src":"289450:27:0"}]},"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":18469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18467,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18464,"src":"289424:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":18468,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18302,"src":"289428:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"289424:5:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18482,"initializationExpression":{"assignments":[18464],"declarations":[{"constant":false,"id":18464,"mutability":"mutable","name":"j","nameLocation":"289417:1:0","nodeType":"VariableDeclaration","scope":18482,"src":"289411:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":18463,"name":"uint8","nodeType":"ElementaryTypeName","src":"289411:5:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":18466,"initialValue":{"hexValue":"30","id":18465,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"289421:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"289411:11:0"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":18471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"289431:3:0","subExpression":{"id":18470,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18464,"src":"289431:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":18472,"nodeType":"ExpressionStatement","src":"289431:3:0"},"nodeType":"ForStatement","src":"289406:82:0"},{"expression":{"id":18483,"name":"inputs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18456,"src":"289505:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"functionReturnParameters":18283,"id":18484,"nodeType":"Return","src":"289498:13:0"}]},"id":18486,"implemented":true,"kind":"function","modifiers":[],"name":"_buildValidateCommand","nameLocation":"287922:21:0","nodeType":"FunctionDefinition","parameters":{"id":18279,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18273,"mutability":"mutable","name":"contractName","nameLocation":"287967:12:0","nodeType":"VariableDeclaration","scope":18486,"src":"287953:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18272,"name":"string","nodeType":"ElementaryTypeName","src":"287953:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18276,"mutability":"mutable","name":"opts","nameLocation":"288004:4:0","nodeType":"VariableDeclaration","scope":18486,"src":"287989:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options"},"typeName":{"id":18275,"nodeType":"UserDefinedTypeName","pathNode":{"id":18274,"name":"Options","nameLocations":["287989:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":13779,"src":"287989:7:0"},"referencedDeclaration":13779,"src":"287989:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_storage_ptr","typeString":"struct Options"}},"visibility":"internal"},{"constant":false,"id":18278,"mutability":"mutable","name":"requireReference","nameLocation":"288023:16:0","nodeType":"VariableDeclaration","scope":18486,"src":"288018:21:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18277,"name":"bool","nodeType":"ElementaryTypeName","src":"288018:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"287943:102:0"},"returnParameters":{"id":18283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18282,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18486,"src":"288068:15:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":18280,"name":"string","nodeType":"ElementaryTypeName","src":"288068:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":18281,"nodeType":"ArrayTypeName","src":"288068:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"288067:17:0"},"scope":18590,"src":"287913:1605:0","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":18517,"nodeType":"Block","src":"289676:228:0","statements":[{"condition":{"expression":{"expression":{"id":18498,"name":"opts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18493,"src":"289690:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}},"id":18499,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"289695:8:0","memberName":"defender","nodeType":"MemberAccess","referencedDeclaration":13778,"src":"289690:13:0","typeDescriptions":{"typeIdentifier":"t_struct$_DefenderOptions_$13800_memory_ptr","typeString":"struct DefenderOptions memory"}},"id":18500,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"289704:17:0","memberName":"useDefenderDeploy","nodeType":"MemberAccess","referencedDeclaration":13782,"src":"289690:31:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":18515,"nodeType":"Block","src":"289828:70:0","statements":[{"expression":{"arguments":[{"id":18511,"name":"contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18488,"src":"289857:12:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18512,"name":"constructorData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18490,"src":"289871:15:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18510,"name":"_deploy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18575,"src":"289849:7:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_address_$","typeString":"function (string memory,bytes memory) returns (address)"}},"id":18513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"289849:38:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":18497,"id":18514,"nodeType":"Return","src":"289842:45:0"}]},"id":18516,"nodeType":"IfStatement","src":"289686:212:0","trueBody":{"id":18509,"nodeType":"Block","src":"289723:99:0","statements":[{"expression":{"arguments":[{"id":18503,"name":"contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18488,"src":"289766:12:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18504,"name":"constructorData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18490,"src":"289780:15:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":18505,"name":"opts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18493,"src":"289797:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}},"id":18506,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"289802:8:0","memberName":"defender","nodeType":"MemberAccess","referencedDeclaration":13778,"src":"289797:13:0","typeDescriptions":{"typeIdentifier":"t_struct$_DefenderOptions_$13800_memory_ptr","typeString":"struct DefenderOptions memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_struct$_DefenderOptions_$13800_memory_ptr","typeString":"struct DefenderOptions memory"}],"expression":{"id":18501,"name":"DefenderDeploy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20094,"src":"289744:14:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DefenderDeploy_$20094_$","typeString":"type(library DefenderDeploy)"}},"id":18502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"289759:6:0","memberName":"deploy","nodeType":"MemberAccess","referencedDeclaration":18701,"src":"289744:21:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_struct$_DefenderOptions_$13800_memory_ptr_$returns$_t_address_$","typeString":"function (string memory,bytes memory,struct DefenderOptions memory) returns (address)"}},"id":18507,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"289744:67:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":18497,"id":18508,"nodeType":"Return","src":"289737:74:0"}]}}]},"id":18518,"implemented":true,"kind":"function","modifiers":[],"name":"deploy","nameLocation":"289533:6:0","nodeType":"FunctionDefinition","parameters":{"id":18494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18488,"mutability":"mutable","name":"contractName","nameLocation":"289563:12:0","nodeType":"VariableDeclaration","scope":18518,"src":"289549:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18487,"name":"string","nodeType":"ElementaryTypeName","src":"289549:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18490,"mutability":"mutable","name":"constructorData","nameLocation":"289598:15:0","nodeType":"VariableDeclaration","scope":18518,"src":"289585:28:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":18489,"name":"bytes","nodeType":"ElementaryTypeName","src":"289585:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":18493,"mutability":"mutable","name":"opts","nameLocation":"289638:4:0","nodeType":"VariableDeclaration","scope":18518,"src":"289623:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options"},"typeName":{"id":18492,"nodeType":"UserDefinedTypeName","pathNode":{"id":18491,"name":"Options","nameLocations":["289623:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":13779,"src":"289623:7:0"},"referencedDeclaration":13779,"src":"289623:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_storage_ptr","typeString":"struct Options"}},"visibility":"internal"}],"src":"289539:109:0"},"returnParameters":{"id":18497,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18496,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18518,"src":"289667:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18495,"name":"address","nodeType":"ElementaryTypeName","src":"289667:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"289666:9:0"},"scope":18590,"src":"289524:380:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":18574,"nodeType":"Block","src":"290011:644:0","statements":[{"assignments":[18528],"declarations":[{"constant":false,"id":18528,"mutability":"mutable","name":"creationCode","nameLocation":"290034:12:0","nodeType":"VariableDeclaration","scope":18574,"src":"290021:25:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":18527,"name":"bytes","nodeType":"ElementaryTypeName","src":"290021:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":18536,"initialValue":{"arguments":[{"id":18534,"name":"contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18520,"src":"290085:12:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"arguments":[{"expression":{"id":18530,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17211,"src":"290052:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Utils_$17211_$","typeString":"type(library Utils)"}},"id":18531,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"290058:17:0","memberName":"CHEATCODE_ADDRESS","nodeType":"MemberAccess","referencedDeclaration":16471,"src":"290052:23:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18529,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4037,"src":"290049:2:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Vm_$4037_$","typeString":"type(contract Vm)"}},"id":18532,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"290049:27:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$4037","typeString":"contract Vm"}},"id":18533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"290077:7:0","memberName":"getCode","nodeType":"MemberAccess","referencedDeclaration":972,"src":"290049:35:0","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) view external returns (bytes memory)"}},"id":18535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"290049:49:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"290021:77:0"},{"assignments":[18538],"declarations":[{"constant":false,"id":18538,"mutability":"mutable","name":"deployedAddress","nameLocation":"290116:15:0","nodeType":"VariableDeclaration","scope":18574,"src":"290108:23:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18537,"name":"address","nodeType":"ElementaryTypeName","src":"290108:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":18546,"initialValue":{"arguments":[{"arguments":[{"id":18542,"name":"creationCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18528,"src":"290171:12:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":18543,"name":"constructorData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18522,"src":"290185:15:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":18540,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"290154:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18541,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"290158:12:0","memberName":"encodePacked","nodeType":"MemberAccess","src":"290154:16:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":18544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"290154:47:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18539,"name":"_deployFromBytecode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18589,"src":"290134:19:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$_t_address_$","typeString":"function (bytes memory) returns (address)"}},"id":18545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"290134:68:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"290108:94:0"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":18552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18547,"name":"deployedAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18538,"src":"290216:15:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":18550,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"290243:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":18549,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"290235:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":18548,"name":"address","nodeType":"ElementaryTypeName","src":"290235:7:0","typeDescriptions":{}}},"id":18551,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"290235:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"290216:29:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18571,"nodeType":"IfStatement","src":"290212:405:0","trueBody":{"id":18570,"nodeType":"Block","src":"290247:370:0","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"4661696c656420746f206465706c6f7920636f6e747261637420","id":18558,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"290355:28:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_45942a044068f475a72b247d918918cfb3543fa9d2f925dce5c26b7172dbe289","typeString":"literal_string \"Failed to deploy contract \""},"value":"Failed to deploy contract "},{"id":18559,"name":"contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18520,"src":"290409:12:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"207573696e6720636f6e7374727563746f7220646174612022","id":18560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"290447:27:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_aa9d79cc8375f222c2818bc0c013f6b7c3934b6f21aedb1df102a8f780a1b664","typeString":"literal_string \" using constructor data \"\""},"value":" using constructor data \""},{"arguments":[{"id":18563,"name":"constructorData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18522,"src":"290507:15:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18562,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"290500:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":18561,"name":"string","nodeType":"ElementaryTypeName","src":"290500:6:0","typeDescriptions":{}}},"id":18564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"290500:23:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"22","id":18565,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"290549:3:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_6e9f33448a4153023cdaf3eb759f1afdc24aba433a3e18b683f8c04a6eaa69f0","typeString":"literal_string \"\"\""},"value":"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_45942a044068f475a72b247d918918cfb3543fa9d2f925dce5c26b7172dbe289","typeString":"literal_string \"Failed to deploy contract \""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_aa9d79cc8375f222c2818bc0c013f6b7c3934b6f21aedb1df102a8f780a1b664","typeString":"literal_string \" using constructor data \"\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_6e9f33448a4153023cdaf3eb759f1afdc24aba433a3e18b683f8c04a6eaa69f0","typeString":"literal_string \"\"\""}],"expression":{"id":18556,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"290313:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18557,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"290317:12:0","memberName":"encodePacked","nodeType":"MemberAccess","src":"290313:16:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":18566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"290313:261:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18555,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"290285:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":18554,"name":"string","nodeType":"ElementaryTypeName","src":"290285:6:0","typeDescriptions":{}}},"id":18567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"290285:307:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":18553,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"290261:6:0","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":18568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"290261:345:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18569,"nodeType":"ExpressionStatement","src":"290261:345:0"}]}},{"expression":{"id":18572,"name":"deployedAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18538,"src":"290633:15:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":18526,"id":18573,"nodeType":"Return","src":"290626:22:0"}]},"id":18575,"implemented":true,"kind":"function","modifiers":[],"name":"_deploy","nameLocation":"289919:7:0","nodeType":"FunctionDefinition","parameters":{"id":18523,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18520,"mutability":"mutable","name":"contractName","nameLocation":"289941:12:0","nodeType":"VariableDeclaration","scope":18575,"src":"289927:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18519,"name":"string","nodeType":"ElementaryTypeName","src":"289927:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18522,"mutability":"mutable","name":"constructorData","nameLocation":"289968:15:0","nodeType":"VariableDeclaration","scope":18575,"src":"289955:28:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":18521,"name":"bytes","nodeType":"ElementaryTypeName","src":"289955:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"289926:58:0"},"returnParameters":{"id":18526,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18525,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18575,"src":"290002:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18524,"name":"address","nodeType":"ElementaryTypeName","src":"290002:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"290001:9:0"},"scope":18590,"src":"289910:745:0","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":18588,"nodeType":"Block","src":"290739:145:0","statements":[{"assignments":[18583],"declarations":[{"constant":false,"id":18583,"mutability":"mutable","name":"addr","nameLocation":"290757:4:0","nodeType":"VariableDeclaration","scope":18588,"src":"290749:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18582,"name":"address","nodeType":"ElementaryTypeName","src":"290749:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":18584,"nodeType":"VariableDeclarationStatement","src":"290749:12:0"},{"AST":{"nativeSrc":"290780:77:0","nodeType":"YulBlock","src":"290780:77:0","statements":[{"nativeSrc":"290794:53:0","nodeType":"YulAssignment","src":"290794:53:0","value":{"arguments":[{"kind":"number","nativeSrc":"290809:1:0","nodeType":"YulLiteral","src":"290809:1:0","type":"","value":"0"},{"arguments":[{"name":"bytecode","nativeSrc":"290816:8:0","nodeType":"YulIdentifier","src":"290816:8:0"},{"kind":"number","nativeSrc":"290826:2:0","nodeType":"YulLiteral","src":"290826:2:0","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"290812:3:0","nodeType":"YulIdentifier","src":"290812:3:0"},"nativeSrc":"290812:17:0","nodeType":"YulFunctionCall","src":"290812:17:0"},{"arguments":[{"name":"bytecode","nativeSrc":"290837:8:0","nodeType":"YulIdentifier","src":"290837:8:0"}],"functionName":{"name":"mload","nativeSrc":"290831:5:0","nodeType":"YulIdentifier","src":"290831:5:0"},"nativeSrc":"290831:15:0","nodeType":"YulFunctionCall","src":"290831:15:0"}],"functionName":{"name":"create","nativeSrc":"290802:6:0","nodeType":"YulIdentifier","src":"290802:6:0"},"nativeSrc":"290802:45:0","nodeType":"YulFunctionCall","src":"290802:45:0"},"variableNames":[{"name":"addr","nativeSrc":"290794:4:0","nodeType":"YulIdentifier","src":"290794:4:0"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":18583,"isOffset":false,"isSlot":false,"src":"290794:4:0","valueSize":1},{"declaration":18577,"isOffset":false,"isSlot":false,"src":"290816:8:0","valueSize":1},{"declaration":18577,"isOffset":false,"isSlot":false,"src":"290837:8:0","valueSize":1}],"id":18585,"nodeType":"InlineAssembly","src":"290771:86:0"},{"expression":{"id":18586,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18583,"src":"290873:4:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":18581,"id":18587,"nodeType":"Return","src":"290866:11:0"}]},"id":18589,"implemented":true,"kind":"function","modifiers":[],"name":"_deployFromBytecode","nameLocation":"290670:19:0","nodeType":"FunctionDefinition","parameters":{"id":18578,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18577,"mutability":"mutable","name":"bytecode","nameLocation":"290703:8:0","nodeType":"VariableDeclaration","scope":18589,"src":"290690:21:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":18576,"name":"bytes","nodeType":"ElementaryTypeName","src":"290690:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"290689:23:0"},"returnParameters":{"id":18581,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18580,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18589,"src":"290730:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18579,"name":"address","nodeType":"ElementaryTypeName","src":"290730:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"290729:9:0"},"scope":18590,"src":"290661:223:0","stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"scope":20815,"src":"272409:18477:0","usedErrors":[],"usedEvents":[]},{"abstract":false,"baseContracts":[],"canonicalName":"DefenderDeploy","contractDependencies":[],"contractKind":"library","documentation":{"id":18591,"nodeType":"StructuredDocumentation","src":"290958:127:0","text":" @dev Internal helper methods for Defender deployments.\n WARNING: DO NOT USE DIRECTLY. Use Defender.sol instead."},"fullyImplemented":true,"id":20094,"linearizedBaseContracts":[20094],"name":"DefenderDeploy","nameLocation":"291094:14:0","nodeType":"ContractDefinition","nodes":[{"global":false,"id":18593,"libraryName":{"id":18592,"name":"Strings","nameLocations":["291121:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":16079,"src":"291121:7:0"},"nodeType":"UsingForDirective","src":"291115:20:0"},{"body":{"id":18700,"nodeType":"Block","src":"291309:888:0","statements":[{"assignments":[18606],"declarations":[{"constant":false,"id":18606,"mutability":"mutable","name":"outDir","nameLocation":"291333:6:0","nodeType":"VariableDeclaration","scope":18700,"src":"291319:20:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18605,"name":"string","nodeType":"ElementaryTypeName","src":"291319:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":18610,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":18607,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17211,"src":"291342:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Utils_$17211_$","typeString":"type(library Utils)"}},"id":18608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"291348:9:0","memberName":"getOutDir","nodeType":"MemberAccess","referencedDeclaration":16770,"src":"291342:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view returns (string memory)"}},"id":18609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"291342:17:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"291319:40:0"},{"assignments":[18613],"declarations":[{"constant":false,"id":18613,"mutability":"mutable","name":"contractInfo","nameLocation":"291389:12:0","nodeType":"VariableDeclaration","scope":18700,"src":"291369:32:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ContractInfo_$16467_memory_ptr","typeString":"struct ContractInfo"},"typeName":{"id":18612,"nodeType":"UserDefinedTypeName","pathNode":{"id":18611,"name":"ContractInfo","nameLocations":["291369:12:0"],"nodeType":"IdentifierPath","referencedDeclaration":16467,"src":"291369:12:0"},"referencedDeclaration":16467,"src":"291369:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_ContractInfo_$16467_storage_ptr","typeString":"struct ContractInfo"}},"visibility":"internal"}],"id":18619,"initialValue":{"arguments":[{"id":18616,"name":"contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18595,"src":"291426:12:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18617,"name":"outDir","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18606,"src":"291440:6:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":18614,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17211,"src":"291404:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Utils_$17211_$","typeString":"type(library Utils)"}},"id":18615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"291410:15:0","memberName":"getContractInfo","nodeType":"MemberAccess","referencedDeclaration":16640,"src":"291404:21:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_struct$_ContractInfo_$16467_memory_ptr_$","typeString":"function (string memory,string memory) view returns (struct ContractInfo memory)"}},"id":18618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"291404:43:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ContractInfo_$16467_memory_ptr","typeString":"struct ContractInfo memory"}},"nodeType":"VariableDeclarationStatement","src":"291369:78:0"},{"assignments":[18621],"declarations":[{"constant":false,"id":18621,"mutability":"mutable","name":"buildInfoFile","nameLocation":"291471:13:0","nodeType":"VariableDeclaration","scope":18700,"src":"291457:27:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18620,"name":"string","nodeType":"ElementaryTypeName","src":"291457:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":18630,"initialValue":{"arguments":[{"expression":{"id":18624,"name":"contractInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18613,"src":"291523:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_ContractInfo_$16467_memory_ptr","typeString":"struct ContractInfo memory"}},"id":18625,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"291536:14:0","memberName":"sourceCodeHash","nodeType":"MemberAccess","referencedDeclaration":16464,"src":"291523:27:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":18626,"name":"contractInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18613,"src":"291564:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_ContractInfo_$16467_memory_ptr","typeString":"struct ContractInfo memory"}},"id":18627,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"291577:9:0","memberName":"shortName","nodeType":"MemberAccess","referencedDeclaration":16460,"src":"291564:22:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18628,"name":"outDir","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18606,"src":"291600:6:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":18622,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17211,"src":"291487:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Utils_$17211_$","typeString":"type(library Utils)"}},"id":18623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"291493:16:0","memberName":"getBuildInfoFile","nodeType":"MemberAccess","referencedDeclaration":16746,"src":"291487:22:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory,string memory) returns (string memory)"}},"id":18629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"291487:129:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"291457:159:0"},{"assignments":[18635],"declarations":[{"constant":false,"id":18635,"mutability":"mutable","name":"inputs","nameLocation":"291643:6:0","nodeType":"VariableDeclaration","scope":18700,"src":"291627:22:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":18633,"name":"string","nodeType":"ElementaryTypeName","src":"291627:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":18634,"nodeType":"ArrayTypeName","src":"291627:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"id":18642,"initialValue":{"arguments":[{"id":18637,"name":"contractInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18613,"src":"291671:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_ContractInfo_$16467_memory_ptr","typeString":"struct ContractInfo memory"}},{"id":18638,"name":"buildInfoFile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18621,"src":"291685:13:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18639,"name":"constructorData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18597,"src":"291700:15:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":18640,"name":"defenderOpts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18600,"src":"291717:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_DefenderOptions_$13800_memory_ptr","typeString":"struct DefenderOptions memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ContractInfo_$16467_memory_ptr","typeString":"struct ContractInfo memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_struct$_DefenderOptions_$13800_memory_ptr","typeString":"struct DefenderOptions memory"}],"id":18636,"name":"buildDeployCommand","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19194,"src":"291652:18:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ContractInfo_$16467_memory_ptr_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_struct$_DefenderOptions_$13800_memory_ptr_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$","typeString":"function (struct ContractInfo memory,string memory,bytes memory,struct DefenderOptions memory) view returns (string memory[] memory)"}},"id":18641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"291652:78:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"291627:103:0"},{"assignments":[18647],"declarations":[{"constant":false,"id":18647,"mutability":"mutable","name":"result","nameLocation":"291765:6:0","nodeType":"VariableDeclaration","scope":18700,"src":"291741:30:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FfiResult_$116_memory_ptr","typeString":"struct VmSafe.FfiResult"},"typeName":{"id":18646,"nodeType":"UserDefinedTypeName","pathNode":{"id":18645,"name":"VmSafe.FfiResult","nameLocations":["291741:6:0","291748:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":116,"src":"291741:16:0"},"referencedDeclaration":116,"src":"291741:16:0","typeDescriptions":{"typeIdentifier":"t_struct$_FfiResult_$116_storage_ptr","typeString":"struct VmSafe.FfiResult"}},"visibility":"internal"}],"id":18652,"initialValue":{"arguments":[{"id":18650,"name":"inputs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18635,"src":"291797:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}],"expression":{"id":18648,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17211,"src":"291774:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Utils_$17211_$","typeString":"type(library Utils)"}},"id":18649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"291780:16:0","memberName":"runAsBashCommand","nodeType":"MemberAccess","referencedDeclaration":17210,"src":"291774:22:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$returns$_t_struct$_FfiResult_$116_memory_ptr_$","typeString":"function (string memory[] memory) returns (struct VmSafe.FfiResult memory)"}},"id":18651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"291774:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FfiResult_$116_memory_ptr","typeString":"struct VmSafe.FfiResult memory"}},"nodeType":"VariableDeclarationStatement","src":"291741:63:0"},{"assignments":[18654],"declarations":[{"constant":false,"id":18654,"mutability":"mutable","name":"stdout","nameLocation":"291828:6:0","nodeType":"VariableDeclaration","scope":18700,"src":"291814:20:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18653,"name":"string","nodeType":"ElementaryTypeName","src":"291814:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":18660,"initialValue":{"arguments":[{"expression":{"id":18657,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18647,"src":"291844:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_FfiResult_$116_memory_ptr","typeString":"struct VmSafe.FfiResult memory"}},"id":18658,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"291851:6:0","memberName":"stdout","nodeType":"MemberAccess","referencedDeclaration":113,"src":"291844:13:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18656,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"291837:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":18655,"name":"string","nodeType":"ElementaryTypeName","src":"291837:6:0","typeDescriptions":{}}},"id":18659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"291837:21:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"291814:44:0"},{"condition":{"commonType":{"typeIdentifier":"t_int32","typeString":"int32"},"id":18664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18661,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18647,"src":"291873:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_FfiResult_$116_memory_ptr","typeString":"struct VmSafe.FfiResult memory"}},"id":18662,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"291880:8:0","memberName":"exitCode","nodeType":"MemberAccess","referencedDeclaration":111,"src":"291873:15:0","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":18663,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"291892:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"291873:20:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18683,"nodeType":"IfStatement","src":"291869:156:0","trueBody":{"id":18682,"nodeType":"Block","src":"291895:130:0","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"4661696c656420746f206465706c6f7920636f6e747261637420","id":18670,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"291940:28:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_45942a044068f475a72b247d918918cfb3543fa9d2f925dce5c26b7172dbe289","typeString":"literal_string \"Failed to deploy contract \""},"value":"Failed to deploy contract "},{"id":18671,"name":"contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18595,"src":"291970:12:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"3a20","id":18672,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"291984:4:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e64009107d042bdc478cc69a5433e4573ea2e8a23a46646c0ee241e30c888e73","typeString":"literal_string \": \""},"value":": "},{"arguments":[{"expression":{"id":18675,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18647,"src":"291997:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_FfiResult_$116_memory_ptr","typeString":"struct VmSafe.FfiResult memory"}},"id":18676,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"292004:6:0","memberName":"stderr","nodeType":"MemberAccess","referencedDeclaration":115,"src":"291997:13:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18674,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"291990:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":18673,"name":"string","nodeType":"ElementaryTypeName","src":"291990:6:0","typeDescriptions":{}}},"id":18677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"291990:21:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_45942a044068f475a72b247d918918cfb3543fa9d2f925dce5c26b7172dbe289","typeString":"literal_string \"Failed to deploy contract \""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_e64009107d042bdc478cc69a5433e4573ea2e8a23a46646c0ee241e30c888e73","typeString":"literal_string \": \""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":18668,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"291923:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18669,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"291927:12:0","memberName":"encodePacked","nodeType":"MemberAccess","src":"291923:16:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":18678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"291923:89:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18667,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"291916:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":18666,"name":"string","nodeType":"ElementaryTypeName","src":"291916:6:0","typeDescriptions":{}}},"id":18679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"291916:97:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":18665,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"291909:6:0","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":18680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"291909:105:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18681,"nodeType":"ExpressionStatement","src":"291909:105:0"}]}},{"assignments":[18685],"declarations":[{"constant":false,"id":18685,"mutability":"mutable","name":"deployedAddress","nameLocation":"292049:15:0","nodeType":"VariableDeclaration","scope":18700,"src":"292035:29:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18684,"name":"string","nodeType":"ElementaryTypeName","src":"292035:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":18691,"initialValue":{"arguments":[{"hexValue":"4465706c6f79656420746f20616464726573733a20","id":18687,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"292078:23:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_0064baa89995fb88eb1ff07aa2a300007feb96f503ace6a3c40bd10ecc42a755","typeString":"literal_string \"Deployed to address: \""},"value":"Deployed to address: "},{"id":18688,"name":"stdout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18654,"src":"292103:6:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"74727565","id":18689,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"292111:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0064baa89995fb88eb1ff07aa2a300007feb96f503ace6a3c40bd10ecc42a755","typeString":"literal_string \"Deployed to address: \""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":18686,"name":"_parseLine","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19628,"src":"292067:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_bool_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory,bool) pure returns (string memory)"}},"id":18690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"292067:49:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"292035:81:0"},{"expression":{"arguments":[{"id":18697,"name":"deployedAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18685,"src":"292174:15:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"arguments":[{"expression":{"id":18693,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17211,"src":"292136:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Utils_$17211_$","typeString":"type(library Utils)"}},"id":18694,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"292142:17:0","memberName":"CHEATCODE_ADDRESS","nodeType":"MemberAccess","referencedDeclaration":16471,"src":"292136:23:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18692,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4037,"src":"292133:2:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Vm_$4037_$","typeString":"type(contract Vm)"}},"id":18695,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"292133:27:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$4037","typeString":"contract Vm"}},"id":18696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"292161:12:0","memberName":"parseAddress","nodeType":"MemberAccess","referencedDeclaration":1693,"src":"292133:40:0","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$returns$_t_address_$","typeString":"function (string memory) pure external returns (address)"}},"id":18698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"292133:57:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":18604,"id":18699,"nodeType":"Return","src":"292126:64:0"}]},"id":18701,"implemented":true,"kind":"function","modifiers":[],"name":"deploy","nameLocation":"291150:6:0","nodeType":"FunctionDefinition","parameters":{"id":18601,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18595,"mutability":"mutable","name":"contractName","nameLocation":"291180:12:0","nodeType":"VariableDeclaration","scope":18701,"src":"291166:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18594,"name":"string","nodeType":"ElementaryTypeName","src":"291166:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18597,"mutability":"mutable","name":"constructorData","nameLocation":"291215:15:0","nodeType":"VariableDeclaration","scope":18701,"src":"291202:28:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":18596,"name":"bytes","nodeType":"ElementaryTypeName","src":"291202:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":18600,"mutability":"mutable","name":"defenderOpts","nameLocation":"291263:12:0","nodeType":"VariableDeclaration","scope":18701,"src":"291240:35:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_DefenderOptions_$13800_memory_ptr","typeString":"struct DefenderOptions"},"typeName":{"id":18599,"nodeType":"UserDefinedTypeName","pathNode":{"id":18598,"name":"DefenderOptions","nameLocations":["291240:15:0"],"nodeType":"IdentifierPath","referencedDeclaration":13800,"src":"291240:15:0"},"referencedDeclaration":13800,"src":"291240:15:0","typeDescriptions":{"typeIdentifier":"t_struct$_DefenderOptions_$13800_storage_ptr","typeString":"struct DefenderOptions"}},"visibility":"internal"}],"src":"291156:125:0"},"returnParameters":{"id":18604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18603,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18701,"src":"291300:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18602,"name":"address","nodeType":"ElementaryTypeName","src":"291300:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"291299:9:0"},"scope":20094,"src":"291141:1056:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":19193,"nodeType":"Block","src":"292439:3569:0","statements":[{"assignments":[18719],"declarations":[{"constant":false,"id":18719,"mutability":"mutable","name":"vm","nameLocation":"292452:2:0","nodeType":"VariableDeclaration","scope":19193,"src":"292449:5:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$4037","typeString":"contract Vm"},"typeName":{"id":18718,"nodeType":"UserDefinedTypeName","pathNode":{"id":18717,"name":"Vm","nameLocations":["292449:2:0"],"nodeType":"IdentifierPath","referencedDeclaration":4037,"src":"292449:2:0"},"referencedDeclaration":4037,"src":"292449:2:0","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$4037","typeString":"contract Vm"}},"visibility":"internal"}],"id":18724,"initialValue":{"arguments":[{"expression":{"id":18721,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17211,"src":"292460:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Utils_$17211_$","typeString":"type(library Utils)"}},"id":18722,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"292466:17:0","memberName":"CHEATCODE_ADDRESS","nodeType":"MemberAccess","referencedDeclaration":16471,"src":"292460:23:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18720,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4037,"src":"292457:2:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Vm_$4037_$","typeString":"type(contract Vm)"}},"id":18723,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"292457:27:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$4037","typeString":"contract Vm"}},"nodeType":"VariableDeclarationStatement","src":"292449:35:0"},{"condition":{"id":18732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"292499:45:0","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"components":[{"expression":{"id":18725,"name":"defenderOpts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18711,"src":"292501:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_DefenderOptions_$13800_memory_ptr","typeString":"struct DefenderOptions memory"}},"id":18726,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"292514:11:0","memberName":"licenseType","nodeType":"MemberAccess","referencedDeclaration":13792,"src":"292501:24:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":18727,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"292500:26:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":18728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"292527:7:0","memberName":"toSlice","nodeType":"MemberAccess","referencedDeclaration":14089,"src":"292500:34:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (struct Strings.slice memory)"}},"id":18729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"292500:36:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":18730,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"292537:5:0","memberName":"empty","nodeType":"MemberAccess","referencedDeclaration":14417,"src":"292500:42:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$14014_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_slice_$14014_memory_ptr_$","typeString":"function (struct Strings.slice memory) pure returns (bool)"}},"id":18731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"292500:44:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18750,"nodeType":"IfStatement","src":"292495:411:0","trueBody":{"id":18749,"nodeType":"Block","src":"292546:360:0","statements":[{"condition":{"expression":{"id":18733,"name":"defenderOpts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18711,"src":"292564:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_DefenderOptions_$13800_memory_ptr","typeString":"struct DefenderOptions memory"}},"id":18734,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"292577:20:0","memberName":"skipVerifySourceCode","nodeType":"MemberAccess","referencedDeclaration":13784,"src":"292564:33:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"expression":{"id":18740,"name":"defenderOpts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18711,"src":"292740:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_DefenderOptions_$13800_memory_ptr","typeString":"struct DefenderOptions memory"}},"id":18741,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"292753:15:0","memberName":"skipLicenseType","nodeType":"MemberAccess","referencedDeclaration":13794,"src":"292740:28:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18747,"nodeType":"IfStatement","src":"292736:160:0","trueBody":{"id":18746,"nodeType":"Block","src":"292770:126:0","statements":[{"expression":{"arguments":[{"hexValue":"54686520606c6963656e73655479706560206f7074696f6e2063616e6e6f742062652075736564207768656e207468652060736b69704c6963656e73655479706560206f7074696f6e20697320607472756560","id":18743,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"292795:85:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_f48c71a4d559c08a669fad0de76519ac5cb5f320e5ef8890570d6dc61c117609","typeString":"literal_string \"The `licenseType` option cannot be used when the `skipLicenseType` option is `true`\""},"value":"The `licenseType` option cannot be used when the `skipLicenseType` option is `true`"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f48c71a4d559c08a669fad0de76519ac5cb5f320e5ef8890570d6dc61c117609","typeString":"literal_string \"The `licenseType` option cannot be used when the `skipLicenseType` option is `true`\""}],"id":18742,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"292788:6:0","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":18744,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"292788:93:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18745,"nodeType":"ExpressionStatement","src":"292788:93:0"}]}},"id":18748,"nodeType":"IfStatement","src":"292560:336:0","trueBody":{"id":18739,"nodeType":"Block","src":"292599:131:0","statements":[{"expression":{"arguments":[{"hexValue":"54686520606c6963656e73655479706560206f7074696f6e2063616e6e6f742062652075736564207768656e207468652060736b6970566572696679536f75726365436f646560206f7074696f6e20697320607472756560","id":18736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"292624:90:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_24539e734dcb001ba7c33c80423f2ee30ce04105a5ff31966733164624aa2d38","typeString":"literal_string \"The `licenseType` option cannot be used when the `skipVerifySourceCode` option is `true`\""},"value":"The `licenseType` option cannot be used when the `skipVerifySourceCode` option is `true`"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_24539e734dcb001ba7c33c80423f2ee30ce04105a5ff31966733164624aa2d38","typeString":"literal_string \"The `licenseType` option cannot be used when the `skipVerifySourceCode` option is `true`\""}],"id":18735,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"292617:6:0","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":18737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"292617:98:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18738,"nodeType":"ExpressionStatement","src":"292617:98:0"}]}}]}},{"assignments":[18755],"declarations":[{"constant":false,"id":18755,"mutability":"mutable","name":"inputBuilder","nameLocation":"292932:12:0","nodeType":"VariableDeclaration","scope":19193,"src":"292916:28:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":18753,"name":"string","nodeType":"ElementaryTypeName","src":"292916:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":18754,"nodeType":"ArrayTypeName","src":"292916:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"id":18761,"initialValue":{"arguments":[{"hexValue":"323535","id":18759,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"292960:3:0","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"}],"id":18758,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"292947:12:0","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (string memory[] memory)"},"typeName":{"baseType":{"id":18756,"name":"string","nodeType":"ElementaryTypeName","src":"292951:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":18757,"nodeType":"ArrayTypeName","src":"292951:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}}},"id":18760,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"292947:17:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"292916:48:0"},{"assignments":[18763],"declarations":[{"constant":false,"id":18763,"mutability":"mutable","name":"i","nameLocation":"292981:1:0","nodeType":"VariableDeclaration","scope":19193,"src":"292975:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":18762,"name":"uint8","nodeType":"ElementaryTypeName","src":"292975:5:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":18765,"initialValue":{"hexValue":"30","id":18764,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"292985:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"292975:11:0"},{"expression":{"id":18771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":18766,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18755,"src":"292997:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":18769,"indexExpression":{"id":18768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"293010:3:0","subExpression":{"id":18767,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18763,"src":"293010:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"292997:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"6e7078","id":18770,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"293017:5:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_169a1000665635df106bbe8ab6519d10dd57f5c196b68846e9722c94b7bf89aa","typeString":"literal_string \"npx\""},"value":"npx"},"src":"292997:25:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":18772,"nodeType":"ExpressionStatement","src":"292997:25:0"},{"expression":{"id":18786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":18773,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18755,"src":"293032:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":18776,"indexExpression":{"id":18775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"293045:3:0","subExpression":{"id":18774,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18763,"src":"293045:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"293032:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"406f70656e7a657070656c696e2f646566656e6465722d6465706c6f792d636c69656e742d636c6940","id":18781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"293089:43:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_911dd02035025c2cb695e87f546c8657a33a4f437472b320b67efab6662a5c76","typeString":"literal_string \"@openzeppelin/defender-deploy-client-cli@\""},"value":"@openzeppelin/defender-deploy-client-cli@"},{"expression":{"id":18782,"name":"Versions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13817,"src":"293134:8:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Versions_$13817_$","typeString":"type(library Versions)"}},"id":18783,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"293143:26:0","memberName":"DEFENDER_DEPLOY_CLIENT_CLI","nodeType":"MemberAccess","referencedDeclaration":13816,"src":"293134:35:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_911dd02035025c2cb695e87f546c8657a33a4f437472b320b67efab6662a5c76","typeString":"literal_string \"@openzeppelin/defender-deploy-client-cli@\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":18779,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"293072:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18780,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"293076:12:0","memberName":"encodePacked","nodeType":"MemberAccess","src":"293072:16:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":18784,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"293072:98:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18778,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"293052:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":18777,"name":"string","nodeType":"ElementaryTypeName","src":"293052:6:0","typeDescriptions":{}}},"id":18785,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"293052:128:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"293032:148:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":18787,"nodeType":"ExpressionStatement","src":"293032:148:0"},{"expression":{"id":18793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":18788,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18755,"src":"293190:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":18791,"indexExpression":{"id":18790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"293203:3:0","subExpression":{"id":18789,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18763,"src":"293203:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"293190:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"6465706c6f79","id":18792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"293210:8:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_f4e654a0a9b2953a6fd9084842d9b9abc308341e6cd2ab57856441c542e51525","typeString":"literal_string \"deploy\""},"value":"deploy"},"src":"293190:28:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":18794,"nodeType":"ExpressionStatement","src":"293190:28:0"},{"expression":{"id":18800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":18795,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18755,"src":"293228:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":18798,"indexExpression":{"id":18797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"293241:3:0","subExpression":{"id":18796,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18763,"src":"293241:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"293228:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"2d2d636f6e74726163744e616d65","id":18799,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"293248:16:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_68ebacd081f80bea99b7bd19a150cea36beaa9b443e4fbe195f5c1262f19d7c8","typeString":"literal_string \"--contractName\""},"value":"--contractName"},"src":"293228:36:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":18801,"nodeType":"ExpressionStatement","src":"293228:36:0"},{"expression":{"id":18808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":18802,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18755,"src":"293274:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":18805,"indexExpression":{"id":18804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"293287:3:0","subExpression":{"id":18803,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18763,"src":"293287:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"293274:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18806,"name":"contractInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18704,"src":"293294:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_ContractInfo_$16467_memory_ptr","typeString":"struct ContractInfo memory"}},"id":18807,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"293307:9:0","memberName":"shortName","nodeType":"MemberAccess","referencedDeclaration":16460,"src":"293294:22:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"293274:42:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":18809,"nodeType":"ExpressionStatement","src":"293274:42:0"},{"expression":{"id":18815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":18810,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18755,"src":"293326:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":18813,"indexExpression":{"id":18812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"293339:3:0","subExpression":{"id":18811,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18763,"src":"293339:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"293326:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"2d2d636f6e747261637450617468","id":18814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"293346:16:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_27e7f43ba0d48eaaf750380678aa3364818e39220f40deb2e0b32ca2ea456d74","typeString":"literal_string \"--contractPath\""},"value":"--contractPath"},"src":"293326:36:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":18816,"nodeType":"ExpressionStatement","src":"293326:36:0"},{"expression":{"id":18823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":18817,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18755,"src":"293372:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":18820,"indexExpression":{"id":18819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"293385:3:0","subExpression":{"id":18818,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18763,"src":"293385:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"293372:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18821,"name":"contractInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18704,"src":"293392:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_ContractInfo_$16467_memory_ptr","typeString":"struct ContractInfo memory"}},"id":18822,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"293405:12:0","memberName":"contractPath","nodeType":"MemberAccess","referencedDeclaration":16458,"src":"293392:25:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"293372:45:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":18824,"nodeType":"ExpressionStatement","src":"293372:45:0"},{"expression":{"id":18830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":18825,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18755,"src":"293427:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":18828,"indexExpression":{"id":18827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"293440:3:0","subExpression":{"id":18826,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18763,"src":"293440:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"293427:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"2d2d636861696e4964","id":18829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"293447:11:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_7dc1dd87cae13f62dd44618a6634d1f58d1404fce96d0ca0e06289f8ceea6bae","typeString":"literal_string \"--chainId\""},"value":"--chainId"},"src":"293427:31:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":18831,"nodeType":"ExpressionStatement","src":"293427:31:0"},{"expression":{"id":18841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":18832,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18755,"src":"293468:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":18835,"indexExpression":{"id":18834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"293481:3:0","subExpression":{"id":18833,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18763,"src":"293481:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"293468:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":18838,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"293505:5:0","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":18839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"293511:7:0","memberName":"chainid","nodeType":"MemberAccess","src":"293505:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18836,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16079,"src":"293488:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Strings_$16079_$","typeString":"type(library Strings)"}},"id":18837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"293496:8:0","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":15892,"src":"293488:16:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":18840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"293488:31:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"293468:51:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":18842,"nodeType":"ExpressionStatement","src":"293468:51:0"},{"expression":{"id":18848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":18843,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18755,"src":"293529:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":18846,"indexExpression":{"id":18845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"293542:3:0","subExpression":{"id":18844,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18763,"src":"293542:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"293529:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"2d2d6275696c64496e666f46696c65","id":18847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"293549:17:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_0a4b164c3de03d20d1de31a1ba51b94aedc9bac0c2d3fc0217bb7b57eec7ee8d","typeString":"literal_string \"--buildInfoFile\""},"value":"--buildInfoFile"},"src":"293529:37:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":18849,"nodeType":"ExpressionStatement","src":"293529:37:0"},{"expression":{"id":18855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":18850,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18755,"src":"293576:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":18853,"indexExpression":{"id":18852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"293589:3:0","subExpression":{"id":18851,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18763,"src":"293589:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"293576:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":18854,"name":"buildInfoFile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18706,"src":"293596:13:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"293576:33:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":18856,"nodeType":"ExpressionStatement","src":"293576:33:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18857,"name":"constructorData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18708,"src":"293623:15:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":18858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"293639:6:0","memberName":"length","nodeType":"MemberAccess","src":"293623:22:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":18859,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"293648:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"293623:26:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18879,"nodeType":"IfStatement","src":"293619:162:0","trueBody":{"id":18878,"nodeType":"Block","src":"293651:130:0","statements":[{"expression":{"id":18866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":18861,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18755,"src":"293665:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":18864,"indexExpression":{"id":18863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"293678:3:0","subExpression":{"id":18862,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18763,"src":"293678:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"293665:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"2d2d636f6e7374727563746f7242797465636f6465","id":18865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"293685:23:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_4140aa005d6a97dd54e040198acb8b53e4675354c1a53f63d1f12dc0831b0b3f","typeString":"literal_string \"--constructorBytecode\""},"value":"--constructorBytecode"},"src":"293665:43:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":18867,"nodeType":"ExpressionStatement","src":"293665:43:0"},{"expression":{"id":18876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":18868,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18755,"src":"293722:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":18871,"indexExpression":{"id":18870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"293735:3:0","subExpression":{"id":18869,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18763,"src":"293735:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"293722:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":18874,"name":"constructorData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18708,"src":"293754:15:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":18872,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18719,"src":"293742:2:0","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$4037","typeString":"contract Vm"}},"id":18873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"293745:8:0","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":1780,"src":"293742:11:0","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bytes_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (bytes memory) pure external returns (string memory)"}},"id":18875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"293742:28:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"293722:48:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":18877,"nodeType":"ExpressionStatement","src":"293722:48:0"}]}},{"condition":{"expression":{"id":18880,"name":"defenderOpts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18711,"src":"293794:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_DefenderOptions_$13800_memory_ptr","typeString":"struct DefenderOptions memory"}},"id":18881,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"293807:20:0","memberName":"skipVerifySourceCode","nodeType":"MemberAccess","referencedDeclaration":13784,"src":"293794:33:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"id":18904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"293945:45:0","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"components":[{"expression":{"id":18897,"name":"defenderOpts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18711,"src":"293947:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_DefenderOptions_$13800_memory_ptr","typeString":"struct DefenderOptions memory"}},"id":18898,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"293960:11:0","memberName":"licenseType","nodeType":"MemberAccess","referencedDeclaration":13792,"src":"293947:24:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":18899,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"293946:26:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":18900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"293973:7:0","memberName":"toSlice","nodeType":"MemberAccess","referencedDeclaration":14089,"src":"293946:34:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (struct Strings.slice memory)"}},"id":18901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"293946:36:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":18902,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"293983:5:0","memberName":"empty","nodeType":"MemberAccess","referencedDeclaration":14417,"src":"293946:42:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$14014_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_slice_$14014_memory_ptr_$","typeString":"function (struct Strings.slice memory) pure returns (bool)"}},"id":18903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"293946:44:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"294156:29:0","subExpression":{"expression":{"id":18929,"name":"defenderOpts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18711,"src":"294157:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_DefenderOptions_$13800_memory_ptr","typeString":"struct DefenderOptions memory"}},"id":18930,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"294170:15:0","memberName":"skipLicenseType","nodeType":"MemberAccess","referencedDeclaration":13794,"src":"294157:28:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":18939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"294189:41:0","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"components":[{"expression":{"id":18932,"name":"contractInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18704,"src":"294191:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_ContractInfo_$16467_memory_ptr","typeString":"struct ContractInfo memory"}},"id":18933,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"294204:7:0","memberName":"license","nodeType":"MemberAccess","referencedDeclaration":16462,"src":"294191:20:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":18934,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"294190:22:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":18935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"294213:7:0","memberName":"toSlice","nodeType":"MemberAccess","referencedDeclaration":14089,"src":"294190:30:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (struct Strings.slice memory)"}},"id":18936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"294190:32:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":18937,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"294223:5:0","memberName":"empty","nodeType":"MemberAccess","referencedDeclaration":14417,"src":"294190:38:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$14014_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_slice_$14014_memory_ptr_$","typeString":"function (struct Strings.slice memory) pure returns (bool)"}},"id":18938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"294190:40:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"294156:74:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18966,"nodeType":"IfStatement","src":"294152:238:0","trueBody":{"id":18965,"nodeType":"Block","src":"294232:158:0","statements":[{"expression":{"id":18946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":18941,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18755,"src":"294246:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":18944,"indexExpression":{"id":18943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"294259:3:0","subExpression":{"id":18942,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18763,"src":"294259:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"294246:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"2d2d6c6963656e736554797065","id":18945,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"294266:15:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_4bcd04dde14b5ae31c745af57a0a8dfdebec8e2c035fa569b65fe46275b5fbef","typeString":"literal_string \"--licenseType\""},"value":"--licenseType"},"src":"294246:35:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":18947,"nodeType":"ExpressionStatement","src":"294246:35:0"},{"expression":{"id":18963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":18948,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18755,"src":"294295:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":18951,"indexExpression":{"id":18950,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"294308:3:0","subExpression":{"id":18949,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18763,"src":"294308:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"294295:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"22","id":18956,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"294339:3:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_6e9f33448a4153023cdaf3eb759f1afdc24aba433a3e18b683f8c04a6eaa69f0","typeString":"literal_string \"\"\""},"value":"\""},{"arguments":[{"id":18958,"name":"contractInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18704,"src":"294359:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_ContractInfo_$16467_memory_ptr","typeString":"struct ContractInfo memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ContractInfo_$16467_memory_ptr","typeString":"struct ContractInfo memory"}],"id":18957,"name":"_toLicenseType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19405,"src":"294344:14:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_ContractInfo_$16467_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (struct ContractInfo memory) pure returns (string memory)"}},"id":18959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"294344:28:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"22","id":18960,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"294374:3:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_6e9f33448a4153023cdaf3eb759f1afdc24aba433a3e18b683f8c04a6eaa69f0","typeString":"literal_string \"\"\""},"value":"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6e9f33448a4153023cdaf3eb759f1afdc24aba433a3e18b683f8c04a6eaa69f0","typeString":"literal_string \"\"\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_6e9f33448a4153023cdaf3eb759f1afdc24aba433a3e18b683f8c04a6eaa69f0","typeString":"literal_string \"\"\""}],"expression":{"id":18954,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"294322:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18955,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"294326:12:0","memberName":"encodePacked","nodeType":"MemberAccess","src":"294322:16:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":18961,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"294322:56:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18953,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"294315:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":18952,"name":"string","nodeType":"ElementaryTypeName","src":"294315:6:0","typeDescriptions":{}}},"id":18962,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"294315:64:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"294295:84:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":18964,"nodeType":"ExpressionStatement","src":"294295:84:0"}]}},"id":18967,"nodeType":"IfStatement","src":"293941:449:0","trueBody":{"id":18928,"nodeType":"Block","src":"293992:154:0","statements":[{"expression":{"id":18910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":18905,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18755,"src":"294006:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":18908,"indexExpression":{"id":18907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"294019:3:0","subExpression":{"id":18906,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18763,"src":"294019:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"294006:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"2d2d6c6963656e736554797065","id":18909,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"294026:15:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_4bcd04dde14b5ae31c745af57a0a8dfdebec8e2c035fa569b65fe46275b5fbef","typeString":"literal_string \"--licenseType\""},"value":"--licenseType"},"src":"294006:35:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":18911,"nodeType":"ExpressionStatement","src":"294006:35:0"},{"expression":{"id":18926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":18912,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18755,"src":"294055:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":18915,"indexExpression":{"id":18914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"294068:3:0","subExpression":{"id":18913,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18763,"src":"294068:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"294055:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"22","id":18920,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"294099:3:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_6e9f33448a4153023cdaf3eb759f1afdc24aba433a3e18b683f8c04a6eaa69f0","typeString":"literal_string \"\"\""},"value":"\""},{"expression":{"id":18921,"name":"defenderOpts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18711,"src":"294104:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_DefenderOptions_$13800_memory_ptr","typeString":"struct DefenderOptions memory"}},"id":18922,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"294117:11:0","memberName":"licenseType","nodeType":"MemberAccess","referencedDeclaration":13792,"src":"294104:24:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"22","id":18923,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"294130:3:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_6e9f33448a4153023cdaf3eb759f1afdc24aba433a3e18b683f8c04a6eaa69f0","typeString":"literal_string \"\"\""},"value":"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6e9f33448a4153023cdaf3eb759f1afdc24aba433a3e18b683f8c04a6eaa69f0","typeString":"literal_string \"\"\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_6e9f33448a4153023cdaf3eb759f1afdc24aba433a3e18b683f8c04a6eaa69f0","typeString":"literal_string \"\"\""}],"expression":{"id":18918,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"294082:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18919,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"294086:12:0","memberName":"encodePacked","nodeType":"MemberAccess","src":"294082:16:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":18924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"294082:52:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18917,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"294075:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":18916,"name":"string","nodeType":"ElementaryTypeName","src":"294075:6:0","typeDescriptions":{}}},"id":18925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"294075:60:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"294055:80:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":18927,"nodeType":"ExpressionStatement","src":"294055:80:0"}]}},"id":18968,"nodeType":"IfStatement","src":"293790:600:0","trueBody":{"id":18896,"nodeType":"Block","src":"293829:106:0","statements":[{"expression":{"id":18887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":18882,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18755,"src":"293843:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":18885,"indexExpression":{"id":18884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"293856:3:0","subExpression":{"id":18883,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18763,"src":"293856:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"293843:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"2d2d766572696679536f75726365436f6465","id":18886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"293863:20:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e4ec35fedfc4241ef415cdef649ed427be905fa345481fc34d10a7b3c6775645","typeString":"literal_string \"--verifySourceCode\""},"value":"--verifySourceCode"},"src":"293843:40:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":18888,"nodeType":"ExpressionStatement","src":"293843:40:0"},{"expression":{"id":18894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":18889,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18755,"src":"293897:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":18892,"indexExpression":{"id":18891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"293910:3:0","subExpression":{"id":18890,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18763,"src":"293910:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"293897:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":18893,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"293917:7:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_ba9154e0baa69c78e0ca563b867df81bae9d177c4ea1452c35c84386a70f0f7a","typeString":"literal_string \"false\""},"value":"false"},"src":"293897:27:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":18895,"nodeType":"ExpressionStatement","src":"293897:27:0"}]}},{"condition":{"id":18976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"294403:43:0","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"components":[{"expression":{"id":18969,"name":"defenderOpts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18711,"src":"294405:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_DefenderOptions_$13800_memory_ptr","typeString":"struct DefenderOptions memory"}},"id":18970,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"294418:9:0","memberName":"relayerId","nodeType":"MemberAccess","referencedDeclaration":13786,"src":"294405:22:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":18971,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"294404:24:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":18972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"294429:7:0","memberName":"toSlice","nodeType":"MemberAccess","referencedDeclaration":14089,"src":"294404:32:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (struct Strings.slice memory)"}},"id":18973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"294404:34:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":18974,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"294439:5:0","memberName":"empty","nodeType":"MemberAccess","referencedDeclaration":14417,"src":"294404:40:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$14014_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_slice_$14014_memory_ptr_$","typeString":"function (struct Strings.slice memory) pure returns (bool)"}},"id":18975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"294404:42:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18993,"nodeType":"IfStatement","src":"294399:163:0","trueBody":{"id":18992,"nodeType":"Block","src":"294448:114:0","statements":[{"expression":{"id":18982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":18977,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18755,"src":"294462:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":18980,"indexExpression":{"id":18979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"294475:3:0","subExpression":{"id":18978,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18763,"src":"294475:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"294462:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"2d2d72656c617965724964","id":18981,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"294482:13:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_5beb4a3097e97fd2301e32cbe9f205ced306bdb610046838f06bd7d7a3e3dcc4","typeString":"literal_string \"--relayerId\""},"value":"--relayerId"},"src":"294462:33:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":18983,"nodeType":"ExpressionStatement","src":"294462:33:0"},{"expression":{"id":18990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":18984,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18755,"src":"294509:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":18987,"indexExpression":{"id":18986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"294522:3:0","subExpression":{"id":18985,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18763,"src":"294522:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"294509:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18988,"name":"defenderOpts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18711,"src":"294529:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_DefenderOptions_$13800_memory_ptr","typeString":"struct DefenderOptions memory"}},"id":18989,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"294542:9:0","memberName":"relayerId","nodeType":"MemberAccess","referencedDeclaration":13786,"src":"294529:22:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"294509:42:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":18991,"nodeType":"ExpressionStatement","src":"294509:42:0"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":18997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18994,"name":"defenderOpts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18711,"src":"294575:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_DefenderOptions_$13800_memory_ptr","typeString":"struct DefenderOptions memory"}},"id":18995,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"294588:4:0","memberName":"salt","nodeType":"MemberAccess","referencedDeclaration":13788,"src":"294575:17:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":18996,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"294596:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"294575:22:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19017,"nodeType":"IfStatement","src":"294571:145:0","trueBody":{"id":19016,"nodeType":"Block","src":"294599:117:0","statements":[{"expression":{"id":19003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":18998,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18755,"src":"294613:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":19001,"indexExpression":{"id":19000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"294626:3:0","subExpression":{"id":18999,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18763,"src":"294626:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"294613:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"2d2d73616c74","id":19002,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"294633:8:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_224fdb77d861c7732832753665a3895aa808495c2f62c1be6fdf5e2b073cb23b","typeString":"literal_string \"--salt\""},"value":"--salt"},"src":"294613:28:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":19004,"nodeType":"ExpressionStatement","src":"294613:28:0"},{"expression":{"id":19014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":19005,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18755,"src":"294655:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":19008,"indexExpression":{"id":19007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"294668:3:0","subExpression":{"id":19006,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18763,"src":"294668:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"294655:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":19011,"name":"defenderOpts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18711,"src":"294687:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_DefenderOptions_$13800_memory_ptr","typeString":"struct DefenderOptions memory"}},"id":19012,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"294700:4:0","memberName":"salt","nodeType":"MemberAccess","referencedDeclaration":13788,"src":"294687:17:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":19009,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18719,"src":"294675:2:0","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$4037","typeString":"contract Vm"}},"id":19010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"294678:8:0","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":1788,"src":"294675:11:0","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bytes32_$returns$_t_string_memory_ptr_$","typeString":"function (bytes32) pure external returns (string memory)"}},"id":19013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"294675:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"294655:50:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":19015,"nodeType":"ExpressionStatement","src":"294655:50:0"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":19018,"name":"defenderOpts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18711,"src":"294729:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_DefenderOptions_$13800_memory_ptr","typeString":"struct DefenderOptions memory"}},"id":19019,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"294742:11:0","memberName":"txOverrides","nodeType":"MemberAccess","referencedDeclaration":13797,"src":"294729:24:0","typeDescriptions":{"typeIdentifier":"t_struct$_TxOverrides_$13810_memory_ptr","typeString":"struct TxOverrides memory"}},"id":19020,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"294754:8:0","memberName":"gasLimit","nodeType":"MemberAccess","referencedDeclaration":13803,"src":"294729:33:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":19021,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"294766:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"294729:38:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19043,"nodeType":"IfStatement","src":"294725:186:0","trueBody":{"id":19042,"nodeType":"Block","src":"294769:142:0","statements":[{"expression":{"id":19028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":19023,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18755,"src":"294783:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":19026,"indexExpression":{"id":19025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"294796:3:0","subExpression":{"id":19024,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18763,"src":"294796:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"294783:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"2d2d6761734c696d6974","id":19027,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"294803:12:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_dc3ba1d57840c1bf881ca3d85576c5f671a699eebdac8be9a0d320da6ccaf9ed","typeString":"literal_string \"--gasLimit\""},"value":"--gasLimit"},"src":"294783:32:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":19029,"nodeType":"ExpressionStatement","src":"294783:32:0"},{"expression":{"id":19040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":19030,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18755,"src":"294829:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":19033,"indexExpression":{"id":19032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"294842:3:0","subExpression":{"id":19031,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18763,"src":"294842:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"294829:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"expression":{"id":19036,"name":"defenderOpts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18711,"src":"294866:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_DefenderOptions_$13800_memory_ptr","typeString":"struct DefenderOptions memory"}},"id":19037,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"294879:11:0","memberName":"txOverrides","nodeType":"MemberAccess","referencedDeclaration":13797,"src":"294866:24:0","typeDescriptions":{"typeIdentifier":"t_struct$_TxOverrides_$13810_memory_ptr","typeString":"struct TxOverrides memory"}},"id":19038,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"294891:8:0","memberName":"gasLimit","nodeType":"MemberAccess","referencedDeclaration":13803,"src":"294866:33:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":19034,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16079,"src":"294849:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Strings_$16079_$","typeString":"type(library Strings)"}},"id":19035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"294857:8:0","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":15892,"src":"294849:16:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":19039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"294849:51:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"294829:71:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":19041,"nodeType":"ExpressionStatement","src":"294829:71:0"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":19044,"name":"defenderOpts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18711,"src":"294924:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_DefenderOptions_$13800_memory_ptr","typeString":"struct DefenderOptions memory"}},"id":19045,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"294937:11:0","memberName":"txOverrides","nodeType":"MemberAccess","referencedDeclaration":13797,"src":"294924:24:0","typeDescriptions":{"typeIdentifier":"t_struct$_TxOverrides_$13810_memory_ptr","typeString":"struct TxOverrides memory"}},"id":19046,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"294949:8:0","memberName":"gasPrice","nodeType":"MemberAccess","referencedDeclaration":13805,"src":"294924:33:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":19047,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"294961:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"294924:38:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19069,"nodeType":"IfStatement","src":"294920:186:0","trueBody":{"id":19068,"nodeType":"Block","src":"294964:142:0","statements":[{"expression":{"id":19054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":19049,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18755,"src":"294978:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":19052,"indexExpression":{"id":19051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"294991:3:0","subExpression":{"id":19050,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18763,"src":"294991:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"294978:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"2d2d6761735072696365","id":19053,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"294998:12:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_7a990f1ba6db94408336c59df608eb0c8efb5c5a136c9cbfd5440784ccd25855","typeString":"literal_string \"--gasPrice\""},"value":"--gasPrice"},"src":"294978:32:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":19055,"nodeType":"ExpressionStatement","src":"294978:32:0"},{"expression":{"id":19066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":19056,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18755,"src":"295024:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":19059,"indexExpression":{"id":19058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"295037:3:0","subExpression":{"id":19057,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18763,"src":"295037:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"295024:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"expression":{"id":19062,"name":"defenderOpts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18711,"src":"295061:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_DefenderOptions_$13800_memory_ptr","typeString":"struct DefenderOptions memory"}},"id":19063,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"295074:11:0","memberName":"txOverrides","nodeType":"MemberAccess","referencedDeclaration":13797,"src":"295061:24:0","typeDescriptions":{"typeIdentifier":"t_struct$_TxOverrides_$13810_memory_ptr","typeString":"struct TxOverrides memory"}},"id":19064,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"295086:8:0","memberName":"gasPrice","nodeType":"MemberAccess","referencedDeclaration":13805,"src":"295061:33:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":19060,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16079,"src":"295044:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Strings_$16079_$","typeString":"type(library Strings)"}},"id":19061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"295052:8:0","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":15892,"src":"295044:16:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":19065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"295044:51:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"295024:71:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":19067,"nodeType":"ExpressionStatement","src":"295024:71:0"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":19070,"name":"defenderOpts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18711,"src":"295119:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_DefenderOptions_$13800_memory_ptr","typeString":"struct DefenderOptions memory"}},"id":19071,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"295132:11:0","memberName":"txOverrides","nodeType":"MemberAccess","referencedDeclaration":13797,"src":"295119:24:0","typeDescriptions":{"typeIdentifier":"t_struct$_TxOverrides_$13810_memory_ptr","typeString":"struct TxOverrides memory"}},"id":19072,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"295144:12:0","memberName":"maxFeePerGas","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"295119:37:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":19073,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"295160:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"295119:42:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19095,"nodeType":"IfStatement","src":"295115:198:0","trueBody":{"id":19094,"nodeType":"Block","src":"295163:150:0","statements":[{"expression":{"id":19080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":19075,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18755,"src":"295177:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":19078,"indexExpression":{"id":19077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"295190:3:0","subExpression":{"id":19076,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18763,"src":"295190:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"295177:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"2d2d6d6178466565506572476173","id":19079,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"295197:16:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_51511af9426f4a4a30aa589994372c976c3aa1842a8bf3f9a45566e3472f7369","typeString":"literal_string \"--maxFeePerGas\""},"value":"--maxFeePerGas"},"src":"295177:36:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":19081,"nodeType":"ExpressionStatement","src":"295177:36:0"},{"expression":{"id":19092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":19082,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18755,"src":"295227:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":19085,"indexExpression":{"id":19084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"295240:3:0","subExpression":{"id":19083,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18763,"src":"295240:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"295227:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"expression":{"id":19088,"name":"defenderOpts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18711,"src":"295264:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_DefenderOptions_$13800_memory_ptr","typeString":"struct DefenderOptions memory"}},"id":19089,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"295277:11:0","memberName":"txOverrides","nodeType":"MemberAccess","referencedDeclaration":13797,"src":"295264:24:0","typeDescriptions":{"typeIdentifier":"t_struct$_TxOverrides_$13810_memory_ptr","typeString":"struct TxOverrides memory"}},"id":19090,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"295289:12:0","memberName":"maxFeePerGas","nodeType":"MemberAccess","referencedDeclaration":13807,"src":"295264:37:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":19086,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16079,"src":"295247:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Strings_$16079_$","typeString":"type(library Strings)"}},"id":19087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"295255:8:0","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":15892,"src":"295247:16:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":19091,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"295247:55:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"295227:75:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":19093,"nodeType":"ExpressionStatement","src":"295227:75:0"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":19096,"name":"defenderOpts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18711,"src":"295326:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_DefenderOptions_$13800_memory_ptr","typeString":"struct DefenderOptions memory"}},"id":19097,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"295339:11:0","memberName":"txOverrides","nodeType":"MemberAccess","referencedDeclaration":13797,"src":"295326:24:0","typeDescriptions":{"typeIdentifier":"t_struct$_TxOverrides_$13810_memory_ptr","typeString":"struct TxOverrides memory"}},"id":19098,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"295351:20:0","memberName":"maxPriorityFeePerGas","nodeType":"MemberAccess","referencedDeclaration":13809,"src":"295326:45:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":19099,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"295375:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"295326:50:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19121,"nodeType":"IfStatement","src":"295322:222:0","trueBody":{"id":19120,"nodeType":"Block","src":"295378:166:0","statements":[{"expression":{"id":19106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":19101,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18755,"src":"295392:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":19104,"indexExpression":{"id":19103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"295405:3:0","subExpression":{"id":19102,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18763,"src":"295405:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"295392:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"2d2d6d61785072696f72697479466565506572476173","id":19105,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"295412:24:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_2844b6d6593b9dde90b3777307ec67e2fd56788d0df0139bd44f19332a4f93ba","typeString":"literal_string \"--maxPriorityFeePerGas\""},"value":"--maxPriorityFeePerGas"},"src":"295392:44:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":19107,"nodeType":"ExpressionStatement","src":"295392:44:0"},{"expression":{"id":19118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":19108,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18755,"src":"295450:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":19111,"indexExpression":{"id":19110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"295463:3:0","subExpression":{"id":19109,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18763,"src":"295463:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"295450:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"expression":{"id":19114,"name":"defenderOpts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18711,"src":"295487:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_DefenderOptions_$13800_memory_ptr","typeString":"struct DefenderOptions memory"}},"id":19115,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"295500:11:0","memberName":"txOverrides","nodeType":"MemberAccess","referencedDeclaration":13797,"src":"295487:24:0","typeDescriptions":{"typeIdentifier":"t_struct$_TxOverrides_$13810_memory_ptr","typeString":"struct TxOverrides memory"}},"id":19116,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"295512:20:0","memberName":"maxPriorityFeePerGas","nodeType":"MemberAccess","referencedDeclaration":13809,"src":"295487:45:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":19112,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16079,"src":"295470:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Strings_$16079_$","typeString":"type(library Strings)"}},"id":19113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"295478:8:0","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":15892,"src":"295470:16:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":19117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"295470:63:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"295450:83:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":19119,"nodeType":"ExpressionStatement","src":"295450:83:0"}]}},{"condition":{"id":19129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"295557:42:0","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"components":[{"expression":{"id":19122,"name":"defenderOpts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18711,"src":"295559:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_DefenderOptions_$13800_memory_ptr","typeString":"struct DefenderOptions memory"}},"id":19123,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"295572:8:0","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":13799,"src":"295559:21:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":19124,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"295558:23:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":19125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"295582:7:0","memberName":"toSlice","nodeType":"MemberAccess","referencedDeclaration":14089,"src":"295558:31:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (struct Strings.slice memory)"}},"id":19126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"295558:33:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":19127,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"295592:5:0","memberName":"empty","nodeType":"MemberAccess","referencedDeclaration":14417,"src":"295558:39:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$14014_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_slice_$14014_memory_ptr_$","typeString":"function (struct Strings.slice memory) pure returns (bool)"}},"id":19128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"295558:41:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19159,"nodeType":"IfStatement","src":"295553:220:0","trueBody":{"id":19158,"nodeType":"Block","src":"295601:172:0","statements":[{"expression":{"id":19135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":19130,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18755,"src":"295615:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":19133,"indexExpression":{"id":19132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"295628:3:0","subExpression":{"id":19131,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18763,"src":"295628:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"295615:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"2d2d6d65746164617461","id":19134,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"295635:12:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_d38f1dee6eca3ebdfa76e3d4b1ac6c943cca8af7b15937f0c509e36a9c401265","typeString":"literal_string \"--metadata\""},"value":"--metadata"},"src":"295615:32:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":19136,"nodeType":"ExpressionStatement","src":"295615:32:0"},{"expression":{"id":19156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":19137,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18755,"src":"295661:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":19140,"indexExpression":{"id":19139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"295674:3:0","subExpression":{"id":19138,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18763,"src":"295674:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"295661:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"22","id":19145,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"295705:3:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_6e9f33448a4153023cdaf3eb759f1afdc24aba433a3e18b683f8c04a6eaa69f0","typeString":"literal_string \"\"\""},"value":"\""},{"arguments":[{"expression":{"id":19148,"name":"defenderOpts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18711,"src":"295721:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_DefenderOptions_$13800_memory_ptr","typeString":"struct DefenderOptions memory"}},"id":19149,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"295734:8:0","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":13799,"src":"295721:21:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"22","id":19150,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"295744:3:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_6e9f33448a4153023cdaf3eb759f1afdc24aba433a3e18b683f8c04a6eaa69f0","typeString":"literal_string \"\"\""},"value":"\""},{"hexValue":"5c22","id":19151,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"295749:5:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_9104361da4a0d729c7b0f207387eef9f9e34470af38c160ad972369226db1fea","typeString":"literal_string \"\\\"\""},"value":"\\\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_6e9f33448a4153023cdaf3eb759f1afdc24aba433a3e18b683f8c04a6eaa69f0","typeString":"literal_string \"\"\""},{"typeIdentifier":"t_stringliteral_9104361da4a0d729c7b0f207387eef9f9e34470af38c160ad972369226db1fea","typeString":"literal_string \"\\\"\""}],"expression":{"id":19146,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18719,"src":"295710:2:0","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$4037","typeString":"contract Vm"}},"id":19147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"295713:7:0","memberName":"replace","nodeType":"MemberAccess","referencedDeclaration":1745,"src":"295710:10:0","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory,string memory) pure external returns (string memory)"}},"id":19152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"295710:45:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"22","id":19153,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"295757:3:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_6e9f33448a4153023cdaf3eb759f1afdc24aba433a3e18b683f8c04a6eaa69f0","typeString":"literal_string \"\"\""},"value":"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6e9f33448a4153023cdaf3eb759f1afdc24aba433a3e18b683f8c04a6eaa69f0","typeString":"literal_string \"\"\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_6e9f33448a4153023cdaf3eb759f1afdc24aba433a3e18b683f8c04a6eaa69f0","typeString":"literal_string \"\"\""}],"expression":{"id":19143,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"295688:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19144,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"295692:12:0","memberName":"encodePacked","nodeType":"MemberAccess","src":"295688:16:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":19154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"295688:73:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19142,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"295681:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":19141,"name":"string","nodeType":"ElementaryTypeName","src":"295681:6:0","typeDescriptions":{}}},"id":19155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"295681:81:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"295661:101:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":19157,"nodeType":"ExpressionStatement","src":"295661:101:0"}]}},{"assignments":[19164],"declarations":[{"constant":false,"id":19164,"mutability":"mutable","name":"inputs","nameLocation":"295862:6:0","nodeType":"VariableDeclaration","scope":19193,"src":"295846:22:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":19162,"name":"string","nodeType":"ElementaryTypeName","src":"295846:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":19163,"nodeType":"ArrayTypeName","src":"295846:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"id":19170,"initialValue":{"arguments":[{"id":19168,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18763,"src":"295884:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":19167,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"295871:12:0","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (string memory[] memory)"},"typeName":{"baseType":{"id":19165,"name":"string","nodeType":"ElementaryTypeName","src":"295875:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":19166,"nodeType":"ArrayTypeName","src":"295875:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}}},"id":19169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"295871:15:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"295846:40:0"},{"body":{"id":19189,"nodeType":"Block","src":"295926:52:0","statements":[{"expression":{"id":19187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":19181,"name":"inputs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19164,"src":"295940:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":19183,"indexExpression":{"id":19182,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19172,"src":"295947:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"295940:9:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":19184,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18755,"src":"295952:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":19186,"indexExpression":{"id":19185,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19172,"src":"295965:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"295952:15:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"295940:27:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":19188,"nodeType":"ExpressionStatement","src":"295940:27:0"}]},"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":19177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":19175,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19172,"src":"295914:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":19176,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18763,"src":"295918:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"295914:5:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19190,"initializationExpression":{"assignments":[19172],"declarations":[{"constant":false,"id":19172,"mutability":"mutable","name":"j","nameLocation":"295907:1:0","nodeType":"VariableDeclaration","scope":19190,"src":"295901:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":19171,"name":"uint8","nodeType":"ElementaryTypeName","src":"295901:5:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":19174,"initialValue":{"hexValue":"30","id":19173,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"295911:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"295901:11:0"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":19179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"295921:3:0","subExpression":{"id":19178,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19172,"src":"295921:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":19180,"nodeType":"ExpressionStatement","src":"295921:3:0"},"nodeType":"ForStatement","src":"295896:82:0"},{"expression":{"id":19191,"name":"inputs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19164,"src":"295995:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"functionReturnParameters":18716,"id":19192,"nodeType":"Return","src":"295988:13:0"}]},"id":19194,"implemented":true,"kind":"function","modifiers":[],"name":"buildDeployCommand","nameLocation":"292212:18:0","nodeType":"FunctionDefinition","parameters":{"id":18712,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18704,"mutability":"mutable","name":"contractInfo","nameLocation":"292260:12:0","nodeType":"VariableDeclaration","scope":19194,"src":"292240:32:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ContractInfo_$16467_memory_ptr","typeString":"struct ContractInfo"},"typeName":{"id":18703,"nodeType":"UserDefinedTypeName","pathNode":{"id":18702,"name":"ContractInfo","nameLocations":["292240:12:0"],"nodeType":"IdentifierPath","referencedDeclaration":16467,"src":"292240:12:0"},"referencedDeclaration":16467,"src":"292240:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_ContractInfo_$16467_storage_ptr","typeString":"struct ContractInfo"}},"visibility":"internal"},{"constant":false,"id":18706,"mutability":"mutable","name":"buildInfoFile","nameLocation":"292296:13:0","nodeType":"VariableDeclaration","scope":19194,"src":"292282:27:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18705,"name":"string","nodeType":"ElementaryTypeName","src":"292282:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18708,"mutability":"mutable","name":"constructorData","nameLocation":"292332:15:0","nodeType":"VariableDeclaration","scope":19194,"src":"292319:28:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":18707,"name":"bytes","nodeType":"ElementaryTypeName","src":"292319:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":18711,"mutability":"mutable","name":"defenderOpts","nameLocation":"292380:12:0","nodeType":"VariableDeclaration","scope":19194,"src":"292357:35:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_DefenderOptions_$13800_memory_ptr","typeString":"struct DefenderOptions"},"typeName":{"id":18710,"nodeType":"UserDefinedTypeName","pathNode":{"id":18709,"name":"DefenderOptions","nameLocations":["292357:15:0"],"nodeType":"IdentifierPath","referencedDeclaration":13800,"src":"292357:15:0"},"referencedDeclaration":13800,"src":"292357:15:0","typeDescriptions":{"typeIdentifier":"t_struct$_DefenderOptions_$13800_storage_ptr","typeString":"struct DefenderOptions"}},"visibility":"internal"}],"src":"292230:168:0"},"returnParameters":{"id":18716,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18715,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19194,"src":"292422:15:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":18713,"name":"string","nodeType":"ElementaryTypeName","src":"292422:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":18714,"nodeType":"ArrayTypeName","src":"292422:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"292421:17:0"},"scope":20094,"src":"292203:3805:0","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":19404,"nodeType":"Block","src":"296109:2067:0","statements":[{"assignments":[19206],"declarations":[{"constant":false,"id":19206,"mutability":"mutable","name":"id","nameLocation":"296140:2:0","nodeType":"VariableDeclaration","scope":19404,"src":"296119:23:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice"},"typeName":{"id":19205,"nodeType":"UserDefinedTypeName","pathNode":{"id":19204,"name":"Strings.slice","nameLocations":["296119:7:0","296127:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"296119:13:0"},"referencedDeclaration":14014,"src":"296119:13:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"visibility":"internal"}],"id":19211,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":19207,"name":"contractInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19197,"src":"296145:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_ContractInfo_$16467_memory_ptr","typeString":"struct ContractInfo memory"}},"id":19208,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"296158:7:0","memberName":"license","nodeType":"MemberAccess","referencedDeclaration":16462,"src":"296145:20:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":19209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"296166:7:0","memberName":"toSlice","nodeType":"MemberAccess","referencedDeclaration":14089,"src":"296145:28:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (struct Strings.slice memory)"}},"id":19210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"296145:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"nodeType":"VariableDeclarationStatement","src":"296119:56:0"},{"condition":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"hexValue":"554e4c4943454e534544","id":19214,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"296199:12:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_047c8dae9b4bbdc84c1add1f71ac2f028ce4af6c8b6022705300787951880bda","typeString":"literal_string \"UNLICENSED\""},"value":"UNLICENSED"},"id":19215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"296212:7:0","memberName":"toSlice","nodeType":"MemberAccess","referencedDeclaration":14089,"src":"296199:20:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (struct Strings.slice memory)"}},"id":19216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"296199:22:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}],"expression":{"id":19212,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19206,"src":"296189:2:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":19213,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"296192:6:0","memberName":"equals","nodeType":"MemberAccess","referencedDeclaration":14572,"src":"296189:9:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$14014_memory_ptr_$_t_struct$_slice_$14014_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_slice_$14014_memory_ptr_$","typeString":"function (struct Strings.slice memory,struct Strings.slice memory) pure returns (bool)"}},"id":19217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"296189:33:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"hexValue":"556e6c6963656e7365","id":19223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"296282:11:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_41cbbb06f69125edb6b6c42ae792bc28b17589a30724a5350c744a651cfdc571","typeString":"literal_string \"Unlicense\""},"value":"Unlicense"},"id":19224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"296294:7:0","memberName":"toSlice","nodeType":"MemberAccess","referencedDeclaration":14089,"src":"296282:19:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (struct Strings.slice memory)"}},"id":19225,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"296282:21:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}],"expression":{"id":19221,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19206,"src":"296272:2:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":19222,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"296275:6:0","memberName":"equals","nodeType":"MemberAccess","referencedDeclaration":14572,"src":"296272:9:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$14014_memory_ptr_$_t_struct$_slice_$14014_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_slice_$14014_memory_ptr_$","typeString":"function (struct Strings.slice memory,struct Strings.slice memory) pure returns (bool)"}},"id":19226,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"296272:32:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"hexValue":"4d4954","id":19232,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"296369:5:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_57d9801c55e30f9ed106172452b6033ad49a2d64397b3598dc4d8adb512cf2bb","typeString":"literal_string \"MIT\""},"value":"MIT"},"id":19233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"296375:7:0","memberName":"toSlice","nodeType":"MemberAccess","referencedDeclaration":14089,"src":"296369:13:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (struct Strings.slice memory)"}},"id":19234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"296369:15:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}],"expression":{"id":19230,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19206,"src":"296359:2:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":19231,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"296362:6:0","memberName":"equals","nodeType":"MemberAccess","referencedDeclaration":14572,"src":"296359:9:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$14014_memory_ptr_$_t_struct$_slice_$14014_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_slice_$14014_memory_ptr_$","typeString":"function (struct Strings.slice memory,struct Strings.slice memory) pure returns (bool)"}},"id":19235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"296359:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":19251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"hexValue":"47504c2d322e302d6f6e6c79","id":19241,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"296444:14:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_ae4e5b335efb7c42629d5f3b79304821115f5af8321bce484faf1d6b160945f2","typeString":"literal_string \"GPL-2.0-only\""},"value":"GPL-2.0-only"},"id":19242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"296459:7:0","memberName":"toSlice","nodeType":"MemberAccess","referencedDeclaration":14089,"src":"296444:22:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (struct Strings.slice memory)"}},"id":19243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"296444:24:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}],"expression":{"id":19239,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19206,"src":"296434:2:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":19240,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"296437:6:0","memberName":"equals","nodeType":"MemberAccess","referencedDeclaration":14572,"src":"296434:9:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$14014_memory_ptr_$_t_struct$_slice_$14014_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_slice_$14014_memory_ptr_$","typeString":"function (struct Strings.slice memory,struct Strings.slice memory) pure returns (bool)"}},"id":19244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"296434:35:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"hexValue":"47504c2d322e302d6f722d6c61746572","id":19247,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"296483:18:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_1838a7d7c495e885dafcf7e00a2c15ed1c226318667a354dbe3d32f707516ebc","typeString":"literal_string \"GPL-2.0-or-later\""},"value":"GPL-2.0-or-later"},"id":19248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"296502:7:0","memberName":"toSlice","nodeType":"MemberAccess","referencedDeclaration":14089,"src":"296483:26:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (struct Strings.slice memory)"}},"id":19249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"296483:28:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}],"expression":{"id":19245,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19206,"src":"296473:2:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":19246,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"296476:6:0","memberName":"equals","nodeType":"MemberAccess","referencedDeclaration":14572,"src":"296473:9:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$14014_memory_ptr_$_t_struct$_slice_$14014_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_slice_$14014_memory_ptr_$","typeString":"function (struct Strings.slice memory,struct Strings.slice memory) pure returns (bool)"}},"id":19250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"296473:39:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"296434:78:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":19267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"hexValue":"47504c2d332e302d6f6e6c79","id":19257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"296577:14:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_b469b911470662db6620774e04967289f2e8e29b0dfcd8cbf4684098f7362a92","typeString":"literal_string \"GPL-3.0-only\""},"value":"GPL-3.0-only"},"id":19258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"296592:7:0","memberName":"toSlice","nodeType":"MemberAccess","referencedDeclaration":14089,"src":"296577:22:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (struct Strings.slice memory)"}},"id":19259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"296577:24:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}],"expression":{"id":19255,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19206,"src":"296567:2:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":19256,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"296570:6:0","memberName":"equals","nodeType":"MemberAccess","referencedDeclaration":14572,"src":"296567:9:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$14014_memory_ptr_$_t_struct$_slice_$14014_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_slice_$14014_memory_ptr_$","typeString":"function (struct Strings.slice memory,struct Strings.slice memory) pure returns (bool)"}},"id":19260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"296567:35:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"hexValue":"47504c2d332e302d6f722d6c61746572","id":19263,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"296616:18:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_d4d9a17fd052c3e3b570e3e9184864cac5b59469d58b464dfec6547f406cd9e7","typeString":"literal_string \"GPL-3.0-or-later\""},"value":"GPL-3.0-or-later"},"id":19264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"296635:7:0","memberName":"toSlice","nodeType":"MemberAccess","referencedDeclaration":14089,"src":"296616:26:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (struct Strings.slice memory)"}},"id":19265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"296616:28:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}],"expression":{"id":19261,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19206,"src":"296606:2:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":19262,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"296609:6:0","memberName":"equals","nodeType":"MemberAccess","referencedDeclaration":14572,"src":"296606:9:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$14014_memory_ptr_$_t_struct$_slice_$14014_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_slice_$14014_memory_ptr_$","typeString":"function (struct Strings.slice memory,struct Strings.slice memory) pure returns (bool)"}},"id":19266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"296606:39:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"296567:78:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":19283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"hexValue":"4c47504c2d322e312d6f6e6c79","id":19273,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"296710:15:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_bd920443cea6545c6a9dfa60d088e59c5f7d68d05a5c3bd2949b3a61afd181d0","typeString":"literal_string \"LGPL-2.1-only\""},"value":"LGPL-2.1-only"},"id":19274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"296726:7:0","memberName":"toSlice","nodeType":"MemberAccess","referencedDeclaration":14089,"src":"296710:23:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (struct Strings.slice memory)"}},"id":19275,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"296710:25:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}],"expression":{"id":19271,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19206,"src":"296700:2:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":19272,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"296703:6:0","memberName":"equals","nodeType":"MemberAccess","referencedDeclaration":14572,"src":"296700:9:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$14014_memory_ptr_$_t_struct$_slice_$14014_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_slice_$14014_memory_ptr_$","typeString":"function (struct Strings.slice memory,struct Strings.slice memory) pure returns (bool)"}},"id":19276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"296700:36:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"hexValue":"4c47504c2d322e312d6f722d6c61746572","id":19279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"296750:19:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_486e1b9a06820c847e78869fcee354e3e0511bfd86d2139bf0c5fc2c99f38c0f","typeString":"literal_string \"LGPL-2.1-or-later\""},"value":"LGPL-2.1-or-later"},"id":19280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"296770:7:0","memberName":"toSlice","nodeType":"MemberAccess","referencedDeclaration":14089,"src":"296750:27:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (struct Strings.slice memory)"}},"id":19281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"296750:29:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}],"expression":{"id":19277,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19206,"src":"296740:2:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":19278,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"296743:6:0","memberName":"equals","nodeType":"MemberAccess","referencedDeclaration":14572,"src":"296740:9:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$14014_memory_ptr_$_t_struct$_slice_$14014_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_slice_$14014_memory_ptr_$","typeString":"function (struct Strings.slice memory,struct Strings.slice memory) pure returns (bool)"}},"id":19282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"296740:40:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"296700:80:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":19299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"hexValue":"4c47504c2d332e302d6f6e6c79","id":19289,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"296848:15:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_43defbdf3b30ff7daba9c59f9e51c52afc909f2e7dc40aaa06c32df45890f11c","typeString":"literal_string \"LGPL-3.0-only\""},"value":"LGPL-3.0-only"},"id":19290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"296864:7:0","memberName":"toSlice","nodeType":"MemberAccess","referencedDeclaration":14089,"src":"296848:23:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (struct Strings.slice memory)"}},"id":19291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"296848:25:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}],"expression":{"id":19287,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19206,"src":"296838:2:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":19288,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"296841:6:0","memberName":"equals","nodeType":"MemberAccess","referencedDeclaration":14572,"src":"296838:9:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$14014_memory_ptr_$_t_struct$_slice_$14014_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_slice_$14014_memory_ptr_$","typeString":"function (struct Strings.slice memory,struct Strings.slice memory) pure returns (bool)"}},"id":19292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"296838:36:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"hexValue":"4c47504c2d332e302d6f722d6c61746572","id":19295,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"296888:19:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_b7b2580ff79fb61c815e106fe48ee7b63da41d69ef37f8c1e19eb70713272b15","typeString":"literal_string \"LGPL-3.0-or-later\""},"value":"LGPL-3.0-or-later"},"id":19296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"296908:7:0","memberName":"toSlice","nodeType":"MemberAccess","referencedDeclaration":14089,"src":"296888:27:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (struct Strings.slice memory)"}},"id":19297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"296888:29:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}],"expression":{"id":19293,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19206,"src":"296878:2:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":19294,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"296881:6:0","memberName":"equals","nodeType":"MemberAccess","referencedDeclaration":14572,"src":"296878:9:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$14014_memory_ptr_$_t_struct$_slice_$14014_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_slice_$14014_memory_ptr_$","typeString":"function (struct Strings.slice memory,struct Strings.slice memory) pure returns (bool)"}},"id":19298,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"296878:40:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"296838:80:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"hexValue":"4253442d322d436c61757365","id":19305,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"296984:14:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e6d11c5a6d1c83a88809ae578925668ead0069f1b68f5aaf8d2f9206fb7df667","typeString":"literal_string \"BSD-2-Clause\""},"value":"BSD-2-Clause"},"id":19306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"296999:7:0","memberName":"toSlice","nodeType":"MemberAccess","referencedDeclaration":14089,"src":"296984:22:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (struct Strings.slice memory)"}},"id":19307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"296984:24:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}],"expression":{"id":19303,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19206,"src":"296974:2:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":19304,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"296977:6:0","memberName":"equals","nodeType":"MemberAccess","referencedDeclaration":14572,"src":"296974:9:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$14014_memory_ptr_$_t_struct$_slice_$14014_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_slice_$14014_memory_ptr_$","typeString":"function (struct Strings.slice memory,struct Strings.slice memory) pure returns (bool)"}},"id":19308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"296974:35:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"hexValue":"4253442d332d436c61757365","id":19314,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"297077:14:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_198e08064a4fd730abb7ed15262d82119316da8693c4bf2925e52fc5ab8eee21","typeString":"literal_string \"BSD-3-Clause\""},"value":"BSD-3-Clause"},"id":19315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"297092:7:0","memberName":"toSlice","nodeType":"MemberAccess","referencedDeclaration":14089,"src":"297077:22:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (struct Strings.slice memory)"}},"id":19316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"297077:24:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}],"expression":{"id":19312,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19206,"src":"297067:2:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":19313,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"297070:6:0","memberName":"equals","nodeType":"MemberAccess","referencedDeclaration":14572,"src":"297067:9:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$14014_memory_ptr_$_t_struct$_slice_$14014_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_slice_$14014_memory_ptr_$","typeString":"function (struct Strings.slice memory,struct Strings.slice memory) pure returns (bool)"}},"id":19317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"297067:35:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"hexValue":"4d504c2d322e30","id":19323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"297170:9:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_721f1e0b54554f67458321368fd80d606994a3a1a0d2faf5667cd937b12dd3fa","typeString":"literal_string \"MPL-2.0\""},"value":"MPL-2.0"},"id":19324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"297180:7:0","memberName":"toSlice","nodeType":"MemberAccess","referencedDeclaration":14089,"src":"297170:17:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (struct Strings.slice memory)"}},"id":19325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"297170:19:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}],"expression":{"id":19321,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19206,"src":"297160:2:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":19322,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"297163:6:0","memberName":"equals","nodeType":"MemberAccess","referencedDeclaration":14572,"src":"297160:9:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$14014_memory_ptr_$_t_struct$_slice_$14014_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_slice_$14014_memory_ptr_$","typeString":"function (struct Strings.slice memory,struct Strings.slice memory) pure returns (bool)"}},"id":19326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"297160:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"hexValue":"4f534c2d332e30","id":19332,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"297253:9:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_de7015bb4b2225dd9a8b6e33989f1e83884c31681e50fee582f4f4399a64ca81","typeString":"literal_string \"OSL-3.0\""},"value":"OSL-3.0"},"id":19333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"297263:7:0","memberName":"toSlice","nodeType":"MemberAccess","referencedDeclaration":14089,"src":"297253:17:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (struct Strings.slice memory)"}},"id":19334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"297253:19:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}],"expression":{"id":19330,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19206,"src":"297243:2:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":19331,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"297246:6:0","memberName":"equals","nodeType":"MemberAccess","referencedDeclaration":14572,"src":"297243:9:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$14014_memory_ptr_$_t_struct$_slice_$14014_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_slice_$14014_memory_ptr_$","typeString":"function (struct Strings.slice memory,struct Strings.slice memory) pure returns (bool)"}},"id":19335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"297243:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"hexValue":"4170616368652d322e30","id":19341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"297336:12:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e32b8c90b4cabb542939f18f741a4b99c0255dbd2cada7c66600830416713189","typeString":"literal_string \"Apache-2.0\""},"value":"Apache-2.0"},"id":19342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"297349:7:0","memberName":"toSlice","nodeType":"MemberAccess","referencedDeclaration":14089,"src":"297336:20:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (struct Strings.slice memory)"}},"id":19343,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"297336:22:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}],"expression":{"id":19339,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19206,"src":"297326:2:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":19340,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"297329:6:0","memberName":"equals","nodeType":"MemberAccess","referencedDeclaration":14572,"src":"297326:9:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$14014_memory_ptr_$_t_struct$_slice_$14014_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_slice_$14014_memory_ptr_$","typeString":"function (struct Strings.slice memory,struct Strings.slice memory) pure returns (bool)"}},"id":19344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"297326:33:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":19360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"hexValue":"4147504c2d332e302d6f6e6c79","id":19350,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"297425:15:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_8788ba86cdeb00aa066261cb00ebb5b317d4ca8df993e86da4ca13c3b5062975","typeString":"literal_string \"AGPL-3.0-only\""},"value":"AGPL-3.0-only"},"id":19351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"297441:7:0","memberName":"toSlice","nodeType":"MemberAccess","referencedDeclaration":14089,"src":"297425:23:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (struct Strings.slice memory)"}},"id":19352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"297425:25:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}],"expression":{"id":19348,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19206,"src":"297415:2:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":19349,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"297418:6:0","memberName":"equals","nodeType":"MemberAccess","referencedDeclaration":14572,"src":"297415:9:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$14014_memory_ptr_$_t_struct$_slice_$14014_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_slice_$14014_memory_ptr_$","typeString":"function (struct Strings.slice memory,struct Strings.slice memory) pure returns (bool)"}},"id":19353,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"297415:36:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"hexValue":"4147504c2d332e302d6f722d6c61746572","id":19356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"297465:19:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_474ce0716782ab5bef72a22606d9fc92f153d4a7d9548a2890957fc7a9d71d0b","typeString":"literal_string \"AGPL-3.0-or-later\""},"value":"AGPL-3.0-or-later"},"id":19357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"297485:7:0","memberName":"toSlice","nodeType":"MemberAccess","referencedDeclaration":14089,"src":"297465:27:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (struct Strings.slice memory)"}},"id":19358,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"297465:29:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}],"expression":{"id":19354,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19206,"src":"297455:2:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":19355,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"297458:6:0","memberName":"equals","nodeType":"MemberAccess","referencedDeclaration":14572,"src":"297455:9:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$14014_memory_ptr_$_t_struct$_slice_$14014_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_slice_$14014_memory_ptr_$","typeString":"function (struct Strings.slice memory,struct Strings.slice memory) pure returns (bool)"}},"id":19359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"297455:40:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"297415:80:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"hexValue":"4255534c2d312e31","id":19366,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"297561:10:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_ac1ccfc3a481fa4c41f441a8f28029332c64a5eaaea441b78e30b6e7b1a7a34b","typeString":"literal_string \"BUSL-1.1\""},"value":"BUSL-1.1"},"id":19367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"297572:7:0","memberName":"toSlice","nodeType":"MemberAccess","referencedDeclaration":14089,"src":"297561:18:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (struct Strings.slice memory)"}},"id":19368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"297561:20:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}],"expression":{"id":19364,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19206,"src":"297551:2:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":19365,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"297554:6:0","memberName":"equals","nodeType":"MemberAccess","referencedDeclaration":14572,"src":"297551:9:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$14014_memory_ptr_$_t_struct$_slice_$14014_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_slice_$14014_memory_ptr_$","typeString":"function (struct Strings.slice memory,struct Strings.slice memory) pure returns (bool)"}},"id":19369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"297551:31:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":19389,"nodeType":"Block","src":"297631:539:0","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"53504458206c6963656e7365206964656e74696669657220","id":19378,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"297739:26:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_a70b4d22eeee20f8bb7a39d4040bcf9ebd66e88382efee55cf50875396c44658","typeString":"literal_string \"SPDX license identifier \""},"value":"SPDX license identifier "},{"expression":{"id":19379,"name":"contractInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19197,"src":"297791:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_ContractInfo_$16467_memory_ptr","typeString":"struct ContractInfo memory"}},"id":19380,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"297804:7:0","memberName":"license","nodeType":"MemberAccess","referencedDeclaration":16462,"src":"297791:20:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"20696e20","id":19381,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"297837:6:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_7a5a2e05f2bc8368a75d6eecdcd03c3949dfdb0c1c10cca4a5feac5e5b4cc170","typeString":"literal_string \" in \""},"value":" in "},{"expression":{"id":19382,"name":"contractInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19197,"src":"297869:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_ContractInfo_$16467_memory_ptr","typeString":"struct ContractInfo memory"}},"id":19383,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"297882:12:0","memberName":"contractPath","nodeType":"MemberAccess","referencedDeclaration":16458,"src":"297869:25:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"20646f6573206e6f74206c6f6f6b206c696b65206120737570706f72746564206c6963656e736520666f7220626c6f636b206578706c6f72657220766572696669636174696f6e2e205573652074686520606c6963656e73655479706560206f7074696f6e20746f20737065636966792061206c6963656e736520747970652c206f7220736574207468652060736b69704c6963656e73655479706560206f7074696f6e20746f2060747275656020746f20736b69702e","id":19384,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"297920:185:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_eac7c85eba44d81e2f5546a595c99c2433fd28fa81a701d817ae87beaa906f14","typeString":"literal_string \" does not look like a supported license for block explorer verification. Use the `licenseType` option to specify a license type, or set the `skipLicenseType` option to `true` to skip.\""},"value":" does not look like a supported license for block explorer verification. Use the `licenseType` option to specify a license type, or set the `skipLicenseType` option to `true` to skip."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a70b4d22eeee20f8bb7a39d4040bcf9ebd66e88382efee55cf50875396c44658","typeString":"literal_string \"SPDX license identifier \""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_7a5a2e05f2bc8368a75d6eecdcd03c3949dfdb0c1c10cca4a5feac5e5b4cc170","typeString":"literal_string \" in \""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_eac7c85eba44d81e2f5546a595c99c2433fd28fa81a701d817ae87beaa906f14","typeString":"literal_string \" does not look like a supported license for block explorer verification. Use the `licenseType` option to specify a license type, or set the `skipLicenseType` option to `true` to skip.\""}],"expression":{"id":19376,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"297697:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19377,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"297701:12:0","memberName":"encodePacked","nodeType":"MemberAccess","src":"297697:16:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":19385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"297697:430:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19375,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"297669:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":19374,"name":"string","nodeType":"ElementaryTypeName","src":"297669:6:0","typeDescriptions":{}}},"id":19386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"297669:476:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":19373,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"297645:6:0","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":19387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"297645:514:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19388,"nodeType":"ExpressionStatement","src":"297645:514:0"}]},"id":19390,"nodeType":"IfStatement","src":"297547:623:0","trueBody":{"id":19372,"nodeType":"Block","src":"297584:41:0","statements":[{"expression":{"hexValue":"42534c20312e31","id":19370,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"297605:9:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_6cbb89f5ad65d217e42b88b04e410a6bee681b7b8a6b4c5190cf77c3d6f69686","typeString":"literal_string \"BSL 1.1\""},"value":"BSL 1.1"},"functionReturnParameters":19201,"id":19371,"nodeType":"Return","src":"297598:16:0"}]}},"id":19391,"nodeType":"IfStatement","src":"297411:759:0","trueBody":{"id":19363,"nodeType":"Block","src":"297497:44:0","statements":[{"expression":{"hexValue":"474e55204147504c7633","id":19361,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"297518:12:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_0d129ad6deb8091ca9ac4e8aa2b4939c06b779589bb1f9c7ded5405f2118050d","typeString":"literal_string \"GNU AGPLv3\""},"value":"GNU AGPLv3"},"functionReturnParameters":19201,"id":19362,"nodeType":"Return","src":"297511:19:0"}]}},"id":19392,"nodeType":"IfStatement","src":"297322:848:0","trueBody":{"id":19347,"nodeType":"Block","src":"297361:44:0","statements":[{"expression":{"hexValue":"4170616368652d322e30","id":19345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"297382:12:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e32b8c90b4cabb542939f18f741a4b99c0255dbd2cada7c66600830416713189","typeString":"literal_string \"Apache-2.0\""},"value":"Apache-2.0"},"functionReturnParameters":19201,"id":19346,"nodeType":"Return","src":"297375:19:0"}]}},"id":19393,"nodeType":"IfStatement","src":"297239:931:0","trueBody":{"id":19338,"nodeType":"Block","src":"297275:41:0","statements":[{"expression":{"hexValue":"4f534c2d332e30","id":19336,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"297296:9:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_de7015bb4b2225dd9a8b6e33989f1e83884c31681e50fee582f4f4399a64ca81","typeString":"literal_string \"OSL-3.0\""},"value":"OSL-3.0"},"functionReturnParameters":19201,"id":19337,"nodeType":"Return","src":"297289:16:0"}]}},"id":19394,"nodeType":"IfStatement","src":"297156:1014:0","trueBody":{"id":19329,"nodeType":"Block","src":"297192:41:0","statements":[{"expression":{"hexValue":"4d504c2d322e30","id":19327,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"297213:9:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_721f1e0b54554f67458321368fd80d606994a3a1a0d2faf5667cd937b12dd3fa","typeString":"literal_string \"MPL-2.0\""},"value":"MPL-2.0"},"functionReturnParameters":19201,"id":19328,"nodeType":"Return","src":"297206:16:0"}]}},"id":19395,"nodeType":"IfStatement","src":"297063:1107:0","trueBody":{"id":19320,"nodeType":"Block","src":"297104:46:0","statements":[{"expression":{"hexValue":"4253442d332d436c61757365","id":19318,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"297125:14:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_198e08064a4fd730abb7ed15262d82119316da8693c4bf2925e52fc5ab8eee21","typeString":"literal_string \"BSD-3-Clause\""},"value":"BSD-3-Clause"},"functionReturnParameters":19201,"id":19319,"nodeType":"Return","src":"297118:21:0"}]}},"id":19396,"nodeType":"IfStatement","src":"296970:1200:0","trueBody":{"id":19311,"nodeType":"Block","src":"297011:46:0","statements":[{"expression":{"hexValue":"4253442d322d436c61757365","id":19309,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"297032:14:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e6d11c5a6d1c83a88809ae578925668ead0069f1b68f5aaf8d2f9206fb7df667","typeString":"literal_string \"BSD-2-Clause\""},"value":"BSD-2-Clause"},"functionReturnParameters":19201,"id":19310,"nodeType":"Return","src":"297025:21:0"}]}},"id":19397,"nodeType":"IfStatement","src":"296834:1336:0","trueBody":{"id":19302,"nodeType":"Block","src":"296920:44:0","statements":[{"expression":{"hexValue":"474e55204c47504c7633","id":19300,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"296941:12:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_de7a9b38e3e1feb08b1478bfb2bb20d0333455090cbfd7d3784bbcb6c17b43ab","typeString":"literal_string \"GNU LGPLv3\""},"value":"GNU LGPLv3"},"functionReturnParameters":19201,"id":19301,"nodeType":"Return","src":"296934:19:0"}]}},"id":19398,"nodeType":"IfStatement","src":"296696:1474:0","trueBody":{"id":19286,"nodeType":"Block","src":"296782:46:0","statements":[{"expression":{"hexValue":"474e55204c47504c76322e31","id":19284,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"296803:14:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_50cfd91480e1a098d136f78963d86851628f854f3f1137756f1c4c6b760e4e78","typeString":"literal_string \"GNU LGPLv2.1\""},"value":"GNU LGPLv2.1"},"functionReturnParameters":19201,"id":19285,"nodeType":"Return","src":"296796:21:0"}]}},"id":19399,"nodeType":"IfStatement","src":"296563:1607:0","trueBody":{"id":19270,"nodeType":"Block","src":"296647:43:0","statements":[{"expression":{"hexValue":"474e552047504c7633","id":19268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"296668:11:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_6e9c42eff9db5a550d44169edcac322f9ea2624f99d17ee2975339b6207f578d","typeString":"literal_string \"GNU GPLv3\""},"value":"GNU GPLv3"},"functionReturnParameters":19201,"id":19269,"nodeType":"Return","src":"296661:18:0"}]}},"id":19400,"nodeType":"IfStatement","src":"296430:1740:0","trueBody":{"id":19254,"nodeType":"Block","src":"296514:43:0","statements":[{"expression":{"hexValue":"474e552047504c7632","id":19252,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"296535:11:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_5c4d16ba3b0c71e8f7dcf796103b1cc241dbbed06127acb7505aa07a5bbdc770","typeString":"literal_string \"GNU GPLv2\""},"value":"GNU GPLv2"},"functionReturnParameters":19201,"id":19253,"nodeType":"Return","src":"296528:18:0"}]}},"id":19401,"nodeType":"IfStatement","src":"296355:1815:0","trueBody":{"id":19238,"nodeType":"Block","src":"296387:37:0","statements":[{"expression":{"hexValue":"4d4954","id":19236,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"296408:5:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_57d9801c55e30f9ed106172452b6033ad49a2d64397b3598dc4d8adb512cf2bb","typeString":"literal_string \"MIT\""},"value":"MIT"},"functionReturnParameters":19201,"id":19237,"nodeType":"Return","src":"296401:12:0"}]}},"id":19402,"nodeType":"IfStatement","src":"296268:1902:0","trueBody":{"id":19229,"nodeType":"Block","src":"296306:43:0","statements":[{"expression":{"hexValue":"556e6c6963656e7365","id":19227,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"296327:11:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_41cbbb06f69125edb6b6c42ae792bc28b17589a30724a5350c744a651cfdc571","typeString":"literal_string \"Unlicense\""},"value":"Unlicense"},"functionReturnParameters":19201,"id":19228,"nodeType":"Return","src":"296320:18:0"}]}},"id":19403,"nodeType":"IfStatement","src":"296185:1985:0","trueBody":{"id":19220,"nodeType":"Block","src":"296224:38:0","statements":[{"expression":{"hexValue":"4e6f6e65","id":19218,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"296245:6:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_8dfce459feaf97691d19cf3eb6893df6359803fdb7503df5d8cce17ab890999d","typeString":"literal_string \"None\""},"value":"None"},"functionReturnParameters":19201,"id":19219,"nodeType":"Return","src":"296238:13:0"}]}}]},"id":19405,"implemented":true,"kind":"function","modifiers":[],"name":"_toLicenseType","nameLocation":"296023:14:0","nodeType":"FunctionDefinition","parameters":{"id":19198,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19197,"mutability":"mutable","name":"contractInfo","nameLocation":"296058:12:0","nodeType":"VariableDeclaration","scope":19405,"src":"296038:32:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ContractInfo_$16467_memory_ptr","typeString":"struct ContractInfo"},"typeName":{"id":19196,"nodeType":"UserDefinedTypeName","pathNode":{"id":19195,"name":"ContractInfo","nameLocations":["296038:12:0"],"nodeType":"IdentifierPath","referencedDeclaration":16467,"src":"296038:12:0"},"referencedDeclaration":16467,"src":"296038:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_ContractInfo_$16467_storage_ptr","typeString":"struct ContractInfo"}},"visibility":"internal"}],"src":"296037:34:0"},"returnParameters":{"id":19201,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19200,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19405,"src":"296094:13:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19199,"name":"string","nodeType":"ElementaryTypeName","src":"296094:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"296093:15:0"},"scope":20094,"src":"296014:2162:0","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":19506,"nodeType":"Block","src":"298450:975:0","statements":[{"assignments":[19424],"declarations":[{"constant":false,"id":19424,"mutability":"mutable","name":"vm","nameLocation":"298463:2:0","nodeType":"VariableDeclaration","scope":19506,"src":"298460:5:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$4037","typeString":"contract Vm"},"typeName":{"id":19423,"nodeType":"UserDefinedTypeName","pathNode":{"id":19422,"name":"Vm","nameLocations":["298460:2:0"],"nodeType":"IdentifierPath","referencedDeclaration":4037,"src":"298460:2:0"},"referencedDeclaration":4037,"src":"298460:2:0","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$4037","typeString":"contract Vm"}},"visibility":"internal"}],"id":19429,"initialValue":{"arguments":[{"expression":{"id":19426,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17211,"src":"298471:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Utils_$17211_$","typeString":"type(library Utils)"}},"id":19427,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"298477:17:0","memberName":"CHEATCODE_ADDRESS","nodeType":"MemberAccess","referencedDeclaration":16471,"src":"298471:23:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":19425,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4037,"src":"298468:2:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Vm_$4037_$","typeString":"type(contract Vm)"}},"id":19428,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"298468:27:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$4037","typeString":"contract Vm"}},"nodeType":"VariableDeclarationStatement","src":"298460:35:0"},{"assignments":[19431],"declarations":[{"constant":false,"id":19431,"mutability":"mutable","name":"outDir","nameLocation":"298520:6:0","nodeType":"VariableDeclaration","scope":19506,"src":"298506:20:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19430,"name":"string","nodeType":"ElementaryTypeName","src":"298506:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":19435,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":19432,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17211,"src":"298529:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Utils_$17211_$","typeString":"type(library Utils)"}},"id":19433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"298535:9:0","memberName":"getOutDir","nodeType":"MemberAccess","referencedDeclaration":16770,"src":"298529:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view returns (string memory)"}},"id":19434,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"298529:17:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"298506:40:0"},{"assignments":[19438],"declarations":[{"constant":false,"id":19438,"mutability":"mutable","name":"contractInfo","nameLocation":"298576:12:0","nodeType":"VariableDeclaration","scope":19506,"src":"298556:32:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ContractInfo_$16467_memory_ptr","typeString":"struct ContractInfo"},"typeName":{"id":19437,"nodeType":"UserDefinedTypeName","pathNode":{"id":19436,"name":"ContractInfo","nameLocations":["298556:12:0"],"nodeType":"IdentifierPath","referencedDeclaration":16467,"src":"298556:12:0"},"referencedDeclaration":16467,"src":"298556:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_ContractInfo_$16467_storage_ptr","typeString":"struct ContractInfo"}},"visibility":"internal"}],"id":19444,"initialValue":{"arguments":[{"id":19441,"name":"newImplementationContractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19413,"src":"298613:29:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19442,"name":"outDir","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19431,"src":"298644:6:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":19439,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17211,"src":"298591:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Utils_$17211_$","typeString":"type(library Utils)"}},"id":19440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"298597:15:0","memberName":"getContractInfo","nodeType":"MemberAccess","referencedDeclaration":16640,"src":"298591:21:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_struct$_ContractInfo_$16467_memory_ptr_$","typeString":"function (string memory,string memory) view returns (struct ContractInfo memory)"}},"id":19443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"298591:60:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ContractInfo_$16467_memory_ptr","typeString":"struct ContractInfo memory"}},"nodeType":"VariableDeclarationStatement","src":"298556:95:0"},{"assignments":[19449],"declarations":[{"constant":false,"id":19449,"mutability":"mutable","name":"inputs","nameLocation":"298678:6:0","nodeType":"VariableDeclaration","scope":19506,"src":"298662:22:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":19447,"name":"string","nodeType":"ElementaryTypeName","src":"298662:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":19448,"nodeType":"ArrayTypeName","src":"298662:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"id":19457,"initialValue":{"arguments":[{"id":19451,"name":"proxyAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19407,"src":"298727:12:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19452,"name":"proxyAdminAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19409,"src":"298753:17:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19453,"name":"newImplementationAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19411,"src":"298784:24:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19454,"name":"contractInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19438,"src":"298822:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_ContractInfo_$16467_memory_ptr","typeString":"struct ContractInfo memory"}},{"id":19455,"name":"opts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19416,"src":"298848:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_ContractInfo_$16467_memory_ptr","typeString":"struct ContractInfo memory"},{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}],"id":19450,"name":"buildProposeUpgradeCommand","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19859,"src":"298687:26:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$_t_address_$_t_struct$_ContractInfo_$16467_memory_ptr_$_t_struct$_Options_$13779_memory_ptr_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$","typeString":"function (address,address,address,struct ContractInfo memory,struct Options memory) view returns (string memory[] memory)"}},"id":19456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"298687:175:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"298662:200:0"},{"assignments":[19462],"declarations":[{"constant":false,"id":19462,"mutability":"mutable","name":"result","nameLocation":"298897:6:0","nodeType":"VariableDeclaration","scope":19506,"src":"298873:30:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FfiResult_$116_memory_ptr","typeString":"struct VmSafe.FfiResult"},"typeName":{"id":19461,"nodeType":"UserDefinedTypeName","pathNode":{"id":19460,"name":"VmSafe.FfiResult","nameLocations":["298873:6:0","298880:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":116,"src":"298873:16:0"},"referencedDeclaration":116,"src":"298873:16:0","typeDescriptions":{"typeIdentifier":"t_struct$_FfiResult_$116_storage_ptr","typeString":"struct VmSafe.FfiResult"}},"visibility":"internal"}],"id":19467,"initialValue":{"arguments":[{"id":19465,"name":"inputs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19449,"src":"298929:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}],"expression":{"id":19463,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17211,"src":"298906:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Utils_$17211_$","typeString":"type(library Utils)"}},"id":19464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"298912:16:0","memberName":"runAsBashCommand","nodeType":"MemberAccess","referencedDeclaration":17210,"src":"298906:22:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$returns$_t_struct$_FfiResult_$116_memory_ptr_$","typeString":"function (string memory[] memory) returns (struct VmSafe.FfiResult memory)"}},"id":19466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"298906:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FfiResult_$116_memory_ptr","typeString":"struct VmSafe.FfiResult memory"}},"nodeType":"VariableDeclarationStatement","src":"298873:63:0"},{"assignments":[19469],"declarations":[{"constant":false,"id":19469,"mutability":"mutable","name":"stdout","nameLocation":"298960:6:0","nodeType":"VariableDeclaration","scope":19506,"src":"298946:20:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19468,"name":"string","nodeType":"ElementaryTypeName","src":"298946:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":19475,"initialValue":{"arguments":[{"expression":{"id":19472,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19462,"src":"298976:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_FfiResult_$116_memory_ptr","typeString":"struct VmSafe.FfiResult memory"}},"id":19473,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"298983:6:0","memberName":"stdout","nodeType":"MemberAccess","referencedDeclaration":113,"src":"298976:13:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19471,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"298969:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":19470,"name":"string","nodeType":"ElementaryTypeName","src":"298969:6:0","typeDescriptions":{}}},"id":19474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"298969:21:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"298946:44:0"},{"condition":{"commonType":{"typeIdentifier":"t_int32","typeString":"int32"},"id":19479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19476,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19462,"src":"299005:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_FfiResult_$116_memory_ptr","typeString":"struct VmSafe.FfiResult memory"}},"id":19477,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"299012:8:0","memberName":"exitCode","nodeType":"MemberAccess","referencedDeclaration":111,"src":"299005:15:0","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":19478,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"299024:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"299005:20:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19501,"nodeType":"IfStatement","src":"299001:365:0","trueBody":{"id":19500,"nodeType":"Block","src":"299027:339:0","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"4661696c656420746f2070726f706f7365207570677261646520666f722070726f787920","id":19485,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"299135:38:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_062fa8c7e1d098eb11e784615129ff6d5e6fe64546a785ae0597988caf406e9a","typeString":"literal_string \"Failed to propose upgrade for proxy \""},"value":"Failed to propose upgrade for proxy "},{"arguments":[{"id":19488,"name":"proxyAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19407,"src":"299211:12:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":19486,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19424,"src":"299199:2:0","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$4037","typeString":"contract Vm"}},"id":19487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"299202:8:0","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":1772,"src":"299199:11:0","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_address_$returns$_t_string_memory_ptr_$","typeString":"function (address) pure external returns (string memory)"}},"id":19489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"299199:25:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"3a20","id":19490,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"299250:4:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e64009107d042bdc478cc69a5433e4573ea2e8a23a46646c0ee241e30c888e73","typeString":"literal_string \": \""},"value":": "},{"arguments":[{"expression":{"id":19493,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19462,"src":"299287:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_FfiResult_$116_memory_ptr","typeString":"struct VmSafe.FfiResult memory"}},"id":19494,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"299294:6:0","memberName":"stderr","nodeType":"MemberAccess","referencedDeclaration":115,"src":"299287:13:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19492,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"299280:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":19491,"name":"string","nodeType":"ElementaryTypeName","src":"299280:6:0","typeDescriptions":{}}},"id":19495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"299280:21:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_062fa8c7e1d098eb11e784615129ff6d5e6fe64546a785ae0597988caf406e9a","typeString":"literal_string \"Failed to propose upgrade for proxy \""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_e64009107d042bdc478cc69a5433e4573ea2e8a23a46646c0ee241e30c888e73","typeString":"literal_string \": \""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":19483,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"299093:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19484,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"299097:12:0","memberName":"encodePacked","nodeType":"MemberAccess","src":"299093:16:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":19496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"299093:230:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19482,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"299065:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":19481,"name":"string","nodeType":"ElementaryTypeName","src":"299065:6:0","typeDescriptions":{}}},"id":19497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"299065:276:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":19480,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"299041:6:0","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":19498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"299041:314:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19499,"nodeType":"ExpressionStatement","src":"299041:314:0"}]}},{"expression":{"arguments":[{"id":19503,"name":"stdout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19469,"src":"299411:6:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":19502,"name":"parseProposeUpgradeResponse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19542,"src":"299383:27:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_ProposeUpgradeResponse_$17614_memory_ptr_$","typeString":"function (string memory) pure returns (struct ProposeUpgradeResponse memory)"}},"id":19504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"299383:35:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ProposeUpgradeResponse_$17614_memory_ptr","typeString":"struct ProposeUpgradeResponse memory"}},"functionReturnParameters":19421,"id":19505,"nodeType":"Return","src":"299376:42:0"}]},"id":19507,"implemented":true,"kind":"function","modifiers":[],"name":"proposeUpgrade","nameLocation":"298191:14:0","nodeType":"FunctionDefinition","parameters":{"id":19417,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19407,"mutability":"mutable","name":"proxyAddress","nameLocation":"298223:12:0","nodeType":"VariableDeclaration","scope":19507,"src":"298215:20:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19406,"name":"address","nodeType":"ElementaryTypeName","src":"298215:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19409,"mutability":"mutable","name":"proxyAdminAddress","nameLocation":"298253:17:0","nodeType":"VariableDeclaration","scope":19507,"src":"298245:25:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19408,"name":"address","nodeType":"ElementaryTypeName","src":"298245:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19411,"mutability":"mutable","name":"newImplementationAddress","nameLocation":"298288:24:0","nodeType":"VariableDeclaration","scope":19507,"src":"298280:32:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19410,"name":"address","nodeType":"ElementaryTypeName","src":"298280:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19413,"mutability":"mutable","name":"newImplementationContractName","nameLocation":"298336:29:0","nodeType":"VariableDeclaration","scope":19507,"src":"298322:43:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19412,"name":"string","nodeType":"ElementaryTypeName","src":"298322:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19416,"mutability":"mutable","name":"opts","nameLocation":"298390:4:0","nodeType":"VariableDeclaration","scope":19507,"src":"298375:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options"},"typeName":{"id":19415,"nodeType":"UserDefinedTypeName","pathNode":{"id":19414,"name":"Options","nameLocations":["298375:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":13779,"src":"298375:7:0"},"referencedDeclaration":13779,"src":"298375:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_storage_ptr","typeString":"struct Options"}},"visibility":"internal"}],"src":"298205:195:0"},"returnParameters":{"id":19421,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19420,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19507,"src":"298419:29:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ProposeUpgradeResponse_$17614_memory_ptr","typeString":"struct ProposeUpgradeResponse"},"typeName":{"id":19419,"nodeType":"UserDefinedTypeName","pathNode":{"id":19418,"name":"ProposeUpgradeResponse","nameLocations":["298419:22:0"],"nodeType":"IdentifierPath","referencedDeclaration":17614,"src":"298419:22:0"},"referencedDeclaration":17614,"src":"298419:22:0","typeDescriptions":{"typeIdentifier":"t_struct$_ProposeUpgradeResponse_$17614_storage_ptr","typeString":"struct ProposeUpgradeResponse"}},"visibility":"internal"}],"src":"298418:31:0"},"scope":20094,"src":"298182:1243:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":19541,"nodeType":"Block","src":"299544:221:0","statements":[{"assignments":[19517],"declarations":[{"constant":false,"id":19517,"mutability":"mutable","name":"response","nameLocation":"299584:8:0","nodeType":"VariableDeclaration","scope":19541,"src":"299554:38:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ProposeUpgradeResponse_$17614_memory_ptr","typeString":"struct ProposeUpgradeResponse"},"typeName":{"id":19516,"nodeType":"UserDefinedTypeName","pathNode":{"id":19515,"name":"ProposeUpgradeResponse","nameLocations":["299554:22:0"],"nodeType":"IdentifierPath","referencedDeclaration":17614,"src":"299554:22:0"},"referencedDeclaration":17614,"src":"299554:22:0","typeDescriptions":{"typeIdentifier":"t_struct$_ProposeUpgradeResponse_$17614_storage_ptr","typeString":"struct ProposeUpgradeResponse"}},"visibility":"internal"}],"id":19518,"nodeType":"VariableDeclarationStatement","src":"299554:38:0"},{"expression":{"id":19527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19519,"name":"response","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19517,"src":"299602:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_ProposeUpgradeResponse_$17614_memory_ptr","typeString":"struct ProposeUpgradeResponse memory"}},"id":19521,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"299611:10:0","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":17611,"src":"299602:19:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"50726f706f73616c2049443a20","id":19523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"299635:15:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_596a246c7789d9ea0082b3c6603f1466440714c97c288d2ca0347a41f768e313","typeString":"literal_string \"Proposal ID: \""},"value":"Proposal ID: "},{"id":19524,"name":"stdout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19509,"src":"299652:6:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"74727565","id":19525,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"299660:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_596a246c7789d9ea0082b3c6603f1466440714c97c288d2ca0347a41f768e313","typeString":"literal_string \"Proposal ID: \""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":19522,"name":"_parseLine","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19628,"src":"299624:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_bool_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory,bool) pure returns (string memory)"}},"id":19526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"299624:41:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"299602:63:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":19528,"nodeType":"ExpressionStatement","src":"299602:63:0"},{"expression":{"id":19537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19529,"name":"response","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19517,"src":"299675:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_ProposeUpgradeResponse_$17614_memory_ptr","typeString":"struct ProposeUpgradeResponse memory"}},"id":19531,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"299684:3:0","memberName":"url","nodeType":"MemberAccess","referencedDeclaration":17613,"src":"299675:12:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"50726f706f73616c2055524c3a20","id":19533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"299701:16:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_00b8fdcdfc825787543b48558b2616258f51d3fdb16cf811cb79eb1fbaa08f80","typeString":"literal_string \"Proposal URL: \""},"value":"Proposal URL: "},{"id":19534,"name":"stdout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19509,"src":"299719:6:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"66616c7365","id":19535,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"299727:5:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_00b8fdcdfc825787543b48558b2616258f51d3fdb16cf811cb79eb1fbaa08f80","typeString":"literal_string \"Proposal URL: \""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":19532,"name":"_parseLine","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19628,"src":"299690:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_bool_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory,bool) pure returns (string memory)"}},"id":19536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"299690:43:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"299675:58:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":19538,"nodeType":"ExpressionStatement","src":"299675:58:0"},{"expression":{"id":19539,"name":"response","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19517,"src":"299750:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_ProposeUpgradeResponse_$17614_memory_ptr","typeString":"struct ProposeUpgradeResponse memory"}},"functionReturnParameters":19514,"id":19540,"nodeType":"Return","src":"299743:15:0"}]},"id":19542,"implemented":true,"kind":"function","modifiers":[],"name":"parseProposeUpgradeResponse","nameLocation":"299440:27:0","nodeType":"FunctionDefinition","parameters":{"id":19510,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19509,"mutability":"mutable","name":"stdout","nameLocation":"299482:6:0","nodeType":"VariableDeclaration","scope":19542,"src":"299468:20:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19508,"name":"string","nodeType":"ElementaryTypeName","src":"299468:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"299467:22:0"},"returnParameters":{"id":19514,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19513,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19542,"src":"299513:29:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ProposeUpgradeResponse_$17614_memory_ptr","typeString":"struct ProposeUpgradeResponse"},"typeName":{"id":19512,"nodeType":"UserDefinedTypeName","pathNode":{"id":19511,"name":"ProposeUpgradeResponse","nameLocations":["299513:22:0"],"nodeType":"IdentifierPath","referencedDeclaration":17614,"src":"299513:22:0"},"referencedDeclaration":17614,"src":"299513:22:0","typeDescriptions":{"typeIdentifier":"t_struct$_ProposeUpgradeResponse_$17614_storage_ptr","typeString":"struct ProposeUpgradeResponse"}},"visibility":"internal"}],"src":"299512:31:0"},"scope":20094,"src":"299431:334:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":19627,"nodeType":"Block","src":"299925:641:0","statements":[{"assignments":[19557],"declarations":[{"constant":false,"id":19557,"mutability":"mutable","name":"delim","nameLocation":"299956:5:0","nodeType":"VariableDeclaration","scope":19627,"src":"299935:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice"},"typeName":{"id":19556,"nodeType":"UserDefinedTypeName","pathNode":{"id":19555,"name":"Strings.slice","nameLocations":["299935:7:0","299943:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"299935:13:0"},"referencedDeclaration":14014,"src":"299935:13:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"visibility":"internal"}],"id":19561,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":19558,"name":"expectedPrefix","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19544,"src":"299964:14:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":19559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"299979:7:0","memberName":"toSlice","nodeType":"MemberAccess","referencedDeclaration":14089,"src":"299964:22:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (struct Strings.slice memory)"}},"id":19560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"299964:24:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"nodeType":"VariableDeclarationStatement","src":"299935:53:0"},{"condition":{"arguments":[{"id":19566,"name":"delim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19557,"src":"300028:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":19562,"name":"stdout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19546,"src":"300002:6:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":19563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"300009:7:0","memberName":"toSlice","nodeType":"MemberAccess","referencedDeclaration":14089,"src":"300002:14:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (struct Strings.slice memory)"}},"id":19564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"300002:16:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":19565,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"300019:8:0","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":15673,"src":"300002:25:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$14014_memory_ptr_$_t_struct$_slice_$14014_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_slice_$14014_memory_ptr_$","typeString":"function (struct Strings.slice memory,struct Strings.slice memory) pure returns (bool)"}},"id":19567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"300002:32:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"id":19607,"name":"required","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19548,"src":"300345:8:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":19624,"nodeType":"Block","src":"300526:34:0","statements":[{"expression":{"hexValue":"","id":19622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"300547:2:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"functionReturnParameters":19552,"id":19623,"nodeType":"Return","src":"300540:9:0"}]},"id":19625,"nodeType":"IfStatement","src":"300341:219:0","trueBody":{"id":19621,"nodeType":"Block","src":"300355:165:0","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"4661696c656420746f2066696e64206c696e652077697468207072656669782027","id":19613,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"300417:35:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_47a92f1f2e2401ec3324f84072908fea4ea6788425ad1f8f366b1db3c55810d9","typeString":"literal_string \"Failed to find line with prefix '\""},"value":"Failed to find line with prefix '"},{"id":19614,"name":"expectedPrefix","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19544,"src":"300454:14:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"2720696e206f75747075743a20","id":19615,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"300470:15:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_93bcd8f909ee99a96370a8190ddeafae0a627cb872c93cfdab495c157ddc6c8f","typeString":"literal_string \"' in output: \""},"value":"' in output: "},{"id":19616,"name":"stdout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19546,"src":"300487:6:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_47a92f1f2e2401ec3324f84072908fea4ea6788425ad1f8f366b1db3c55810d9","typeString":"literal_string \"Failed to find line with prefix '\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_93bcd8f909ee99a96370a8190ddeafae0a627cb872c93cfdab495c157ddc6c8f","typeString":"literal_string \"' in output: \""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":19611,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"300400:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19612,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"300404:12:0","memberName":"encodePacked","nodeType":"MemberAccess","src":"300400:16:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":19617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"300400:94:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19610,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"300393:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":19609,"name":"string","nodeType":"ElementaryTypeName","src":"300393:6:0","typeDescriptions":{}}},"id":19618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"300393:102:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":19608,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"300369:6:0","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":19619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"300369:140:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19620,"nodeType":"ExpressionStatement","src":"300369:140:0"}]}},"id":19626,"nodeType":"IfStatement","src":"299998:562:0","trueBody":{"id":19606,"nodeType":"Block","src":"300036:299:0","statements":[{"assignments":[19572],"declarations":[{"constant":false,"id":19572,"mutability":"mutable","name":"slice","nameLocation":"300071:5:0","nodeType":"VariableDeclaration","scope":19606,"src":"300050:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice"},"typeName":{"id":19571,"nodeType":"UserDefinedTypeName","pathNode":{"id":19570,"name":"Strings.slice","nameLocations":["300050:7:0","300058:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":14014,"src":"300050:13:0"},"referencedDeclaration":14014,"src":"300050:13:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_storage_ptr","typeString":"struct Strings.slice"}},"visibility":"internal"}],"id":19584,"initialValue":{"arguments":[{"id":19582,"name":"delim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19557,"src":"300122:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}],"expression":{"arguments":[{"id":19579,"name":"delim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19557,"src":"300108:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":19573,"name":"stdout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19546,"src":"300079:6:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":19574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"300086:7:0","memberName":"toSlice","nodeType":"MemberAccess","referencedDeclaration":14089,"src":"300079:14:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (struct Strings.slice memory)"}},"id":19575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"300079:16:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":19576,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"300096:4:0","memberName":"copy","nodeType":"MemberAccess","referencedDeclaration":14283,"src":"300079:21:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$14014_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_struct$_slice_$14014_memory_ptr_$","typeString":"function (struct Strings.slice memory) pure returns (struct Strings.slice memory)"}},"id":19577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"300079:23:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":19578,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"300103:4:0","memberName":"find","nodeType":"MemberAccess","referencedDeclaration":15356,"src":"300079:28:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$14014_memory_ptr_$_t_struct$_slice_$14014_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_struct$_slice_$14014_memory_ptr_$","typeString":"function (struct Strings.slice memory,struct Strings.slice memory) pure returns (struct Strings.slice memory)"}},"id":19580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"300079:35:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":19581,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"300115:6:0","memberName":"beyond","nodeType":"MemberAccess","referencedDeclaration":14955,"src":"300079:42:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$14014_memory_ptr_$_t_struct$_slice_$14014_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_struct$_slice_$14014_memory_ptr_$","typeString":"function (struct Strings.slice memory,struct Strings.slice memory) pure returns (struct Strings.slice memory)"}},"id":19583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"300079:49:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"nodeType":"VariableDeclarationStatement","src":"300050:78:0"},{"condition":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"hexValue":"0a","id":19587,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"300203:4:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_0ef9d8f8804d174666011a394cab7901679a8944d24249fd148a6a36071151f8","typeString":"literal_string hex\"0a\""},"value":"\n"},"id":19588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"300208:7:0","memberName":"toSlice","nodeType":"MemberAccess","referencedDeclaration":14089,"src":"300203:12:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (struct Strings.slice memory)"}},"id":19589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"300203:14:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}],"expression":{"id":19585,"name":"slice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19572,"src":"300188:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":19586,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"300194:8:0","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":15673,"src":"300188:14:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$14014_memory_ptr_$_t_struct$_slice_$14014_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_slice_$14014_memory_ptr_$","typeString":"function (struct Strings.slice memory,struct Strings.slice memory) pure returns (bool)"}},"id":19590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"300188:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19601,"nodeType":"IfStatement","src":"300184:104:0","trueBody":{"id":19600,"nodeType":"Block","src":"300220:68:0","statements":[{"expression":{"id":19598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":19591,"name":"slice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19572,"src":"300238:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"hexValue":"0a","id":19594,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"300258:4:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_0ef9d8f8804d174666011a394cab7901679a8944d24249fd148a6a36071151f8","typeString":"literal_string hex\"0a\""},"value":"\n"},"id":19595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"300263:7:0","memberName":"toSlice","nodeType":"MemberAccess","referencedDeclaration":14089,"src":"300258:12:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (struct Strings.slice memory)"}},"id":19596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"300258:14:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}],"expression":{"id":19592,"name":"slice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19572,"src":"300246:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":19593,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"300252:5:0","memberName":"split","nodeType":"MemberAccess","referencedDeclaration":15494,"src":"300246:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$14014_memory_ptr_$_t_struct$_slice_$14014_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_struct$_slice_$14014_memory_ptr_$","typeString":"function (struct Strings.slice memory,struct Strings.slice memory) pure returns (struct Strings.slice memory)"}},"id":19597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"300246:27:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"src":"300238:35:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":19599,"nodeType":"ExpressionStatement","src":"300238:35:0"}]}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":19602,"name":"slice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19572,"src":"300308:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":19603,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"300314:8:0","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":14314,"src":"300308:14:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$14014_memory_ptr_$returns$_t_string_memory_ptr_$attached_to$_t_struct$_slice_$14014_memory_ptr_$","typeString":"function (struct Strings.slice memory) pure returns (string memory)"}},"id":19604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"300308:16:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":19552,"id":19605,"nodeType":"Return","src":"300301:23:0"}]}}]},"id":19628,"implemented":true,"kind":"function","modifiers":[],"name":"_parseLine","nameLocation":"299780:10:0","nodeType":"FunctionDefinition","parameters":{"id":19549,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19544,"mutability":"mutable","name":"expectedPrefix","nameLocation":"299814:14:0","nodeType":"VariableDeclaration","scope":19628,"src":"299800:28:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19543,"name":"string","nodeType":"ElementaryTypeName","src":"299800:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19546,"mutability":"mutable","name":"stdout","nameLocation":"299852:6:0","nodeType":"VariableDeclaration","scope":19628,"src":"299838:20:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19545,"name":"string","nodeType":"ElementaryTypeName","src":"299838:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19548,"mutability":"mutable","name":"required","nameLocation":"299873:8:0","nodeType":"VariableDeclaration","scope":19628,"src":"299868:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19547,"name":"bool","nodeType":"ElementaryTypeName","src":"299868:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"299790:97:0"},"returnParameters":{"id":19552,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19551,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19628,"src":"299910:13:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19550,"name":"string","nodeType":"ElementaryTypeName","src":"299910:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"299909:15:0"},"scope":20094,"src":"299771:795:0","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":19858,"nodeType":"Block","src":"300832:1463:0","statements":[{"assignments":[19648],"declarations":[{"constant":false,"id":19648,"mutability":"mutable","name":"vm","nameLocation":"300845:2:0","nodeType":"VariableDeclaration","scope":19858,"src":"300842:5:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$4037","typeString":"contract Vm"},"typeName":{"id":19647,"nodeType":"UserDefinedTypeName","pathNode":{"id":19646,"name":"Vm","nameLocations":["300842:2:0"],"nodeType":"IdentifierPath","referencedDeclaration":4037,"src":"300842:2:0"},"referencedDeclaration":4037,"src":"300842:2:0","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$4037","typeString":"contract Vm"}},"visibility":"internal"}],"id":19653,"initialValue":{"arguments":[{"expression":{"id":19650,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17211,"src":"300853:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Utils_$17211_$","typeString":"type(library Utils)"}},"id":19651,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"300859:17:0","memberName":"CHEATCODE_ADDRESS","nodeType":"MemberAccess","referencedDeclaration":16471,"src":"300853:23:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":19649,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4037,"src":"300850:2:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Vm_$4037_$","typeString":"type(contract Vm)"}},"id":19652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"300850:27:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$4037","typeString":"contract Vm"}},"nodeType":"VariableDeclarationStatement","src":"300842:35:0"},{"assignments":[19658],"declarations":[{"constant":false,"id":19658,"mutability":"mutable","name":"inputBuilder","nameLocation":"300904:12:0","nodeType":"VariableDeclaration","scope":19858,"src":"300888:28:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":19656,"name":"string","nodeType":"ElementaryTypeName","src":"300888:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":19657,"nodeType":"ArrayTypeName","src":"300888:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"id":19664,"initialValue":{"arguments":[{"hexValue":"323535","id":19662,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"300932:3:0","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"}],"id":19661,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"300919:12:0","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (string memory[] memory)"},"typeName":{"baseType":{"id":19659,"name":"string","nodeType":"ElementaryTypeName","src":"300923:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":19660,"nodeType":"ArrayTypeName","src":"300923:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}}},"id":19663,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"300919:17:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"300888:48:0"},{"assignments":[19666],"declarations":[{"constant":false,"id":19666,"mutability":"mutable","name":"i","nameLocation":"300953:1:0","nodeType":"VariableDeclaration","scope":19858,"src":"300947:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":19665,"name":"uint8","nodeType":"ElementaryTypeName","src":"300947:5:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":19668,"initialValue":{"hexValue":"30","id":19667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"300957:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"300947:11:0"},{"expression":{"id":19674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":19669,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19658,"src":"300969:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":19672,"indexExpression":{"id":19671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"300982:3:0","subExpression":{"id":19670,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19666,"src":"300982:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"300969:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"6e7078","id":19673,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"300989:5:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_169a1000665635df106bbe8ab6519d10dd57f5c196b68846e9722c94b7bf89aa","typeString":"literal_string \"npx\""},"value":"npx"},"src":"300969:25:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":19675,"nodeType":"ExpressionStatement","src":"300969:25:0"},{"expression":{"id":19689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":19676,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19658,"src":"301004:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":19679,"indexExpression":{"id":19678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"301017:3:0","subExpression":{"id":19677,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19666,"src":"301017:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"301004:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"406f70656e7a657070656c696e2f646566656e6465722d6465706c6f792d636c69656e742d636c6940","id":19684,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"301061:43:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_911dd02035025c2cb695e87f546c8657a33a4f437472b320b67efab6662a5c76","typeString":"literal_string \"@openzeppelin/defender-deploy-client-cli@\""},"value":"@openzeppelin/defender-deploy-client-cli@"},{"expression":{"id":19685,"name":"Versions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13817,"src":"301106:8:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Versions_$13817_$","typeString":"type(library Versions)"}},"id":19686,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"301115:26:0","memberName":"DEFENDER_DEPLOY_CLIENT_CLI","nodeType":"MemberAccess","referencedDeclaration":13816,"src":"301106:35:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_911dd02035025c2cb695e87f546c8657a33a4f437472b320b67efab6662a5c76","typeString":"literal_string \"@openzeppelin/defender-deploy-client-cli@\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":19682,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"301044:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19683,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"301048:12:0","memberName":"encodePacked","nodeType":"MemberAccess","src":"301044:16:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":19687,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"301044:98:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19681,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"301024:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":19680,"name":"string","nodeType":"ElementaryTypeName","src":"301024:6:0","typeDescriptions":{}}},"id":19688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"301024:128:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"301004:148:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":19690,"nodeType":"ExpressionStatement","src":"301004:148:0"},{"expression":{"id":19696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":19691,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19658,"src":"301162:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":19694,"indexExpression":{"id":19693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"301175:3:0","subExpression":{"id":19692,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19666,"src":"301175:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"301162:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"70726f706f736555706772616465","id":19695,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"301182:16:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_2084b571c6cfea8f75dd2c4aca8244efce8a8d33c9e17cb3b6e8689761a80d3c","typeString":"literal_string \"proposeUpgrade\""},"value":"proposeUpgrade"},"src":"301162:36:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":19697,"nodeType":"ExpressionStatement","src":"301162:36:0"},{"expression":{"id":19703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":19698,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19658,"src":"301208:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":19701,"indexExpression":{"id":19700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"301221:3:0","subExpression":{"id":19699,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19666,"src":"301221:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"301208:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"2d2d70726f787941646472657373","id":19702,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"301228:16:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_c767c4d946f3ced63eff81f7148a0ba5bb5e11ae66c3054a8453eb79088187fe","typeString":"literal_string \"--proxyAddress\""},"value":"--proxyAddress"},"src":"301208:36:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":19704,"nodeType":"ExpressionStatement","src":"301208:36:0"},{"expression":{"id":19713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":19705,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19658,"src":"301254:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":19708,"indexExpression":{"id":19707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"301267:3:0","subExpression":{"id":19706,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19666,"src":"301267:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"301254:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":19711,"name":"proxyAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19630,"src":"301286:12:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":19709,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19648,"src":"301274:2:0","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$4037","typeString":"contract Vm"}},"id":19710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"301277:8:0","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":1772,"src":"301274:11:0","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_address_$returns$_t_string_memory_ptr_$","typeString":"function (address) pure external returns (string memory)"}},"id":19712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"301274:25:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"301254:45:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":19714,"nodeType":"ExpressionStatement","src":"301254:45:0"},{"expression":{"id":19720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":19715,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19658,"src":"301309:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":19718,"indexExpression":{"id":19717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"301322:3:0","subExpression":{"id":19716,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19666,"src":"301322:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"301309:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"2d2d6e6577496d706c656d656e746174696f6e41646472657373","id":19719,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"301329:28:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_68bd93e37c88704892cc6fb2367b9009a1b71d4112276788b41e9cc522f5497d","typeString":"literal_string \"--newImplementationAddress\""},"value":"--newImplementationAddress"},"src":"301309:48:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":19721,"nodeType":"ExpressionStatement","src":"301309:48:0"},{"expression":{"id":19730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":19722,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19658,"src":"301367:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":19725,"indexExpression":{"id":19724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"301380:3:0","subExpression":{"id":19723,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19666,"src":"301380:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"301367:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":19728,"name":"newImplementationAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19634,"src":"301399:24:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":19726,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19648,"src":"301387:2:0","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$4037","typeString":"contract Vm"}},"id":19727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"301390:8:0","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":1772,"src":"301387:11:0","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_address_$returns$_t_string_memory_ptr_$","typeString":"function (address) pure external returns (string memory)"}},"id":19729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"301387:37:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"301367:57:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":19731,"nodeType":"ExpressionStatement","src":"301367:57:0"},{"expression":{"id":19737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":19732,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19658,"src":"301434:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":19735,"indexExpression":{"id":19734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"301447:3:0","subExpression":{"id":19733,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19666,"src":"301447:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"301434:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"2d2d636861696e4964","id":19736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"301454:11:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_7dc1dd87cae13f62dd44618a6634d1f58d1404fce96d0ca0e06289f8ceea6bae","typeString":"literal_string \"--chainId\""},"value":"--chainId"},"src":"301434:31:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":19738,"nodeType":"ExpressionStatement","src":"301434:31:0"},{"expression":{"id":19748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":19739,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19658,"src":"301475:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":19742,"indexExpression":{"id":19741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"301488:3:0","subExpression":{"id":19740,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19666,"src":"301488:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"301475:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":19745,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"301512:5:0","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":19746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"301518:7:0","memberName":"chainid","nodeType":"MemberAccess","src":"301512:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":19743,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16079,"src":"301495:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Strings_$16079_$","typeString":"type(library Strings)"}},"id":19744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"301503:8:0","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":15892,"src":"301495:16:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":19747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"301495:31:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"301475:51:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":19749,"nodeType":"ExpressionStatement","src":"301475:51:0"},{"expression":{"id":19755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":19750,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19658,"src":"301536:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":19753,"indexExpression":{"id":19752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"301549:3:0","subExpression":{"id":19751,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19666,"src":"301549:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"301536:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"2d2d636f6e7472616374417274696661637446696c65","id":19754,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"301556:24:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_1eec5d2afa9aac3e7c421978012f6cdc39a2d6c21e4dfe47310835a6e1d7400f","typeString":"literal_string \"--contractArtifactFile\""},"value":"--contractArtifactFile"},"src":"301536:44:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":19756,"nodeType":"ExpressionStatement","src":"301536:44:0"},{"expression":{"id":19771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":19757,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19658,"src":"301590:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":19760,"indexExpression":{"id":19759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"301603:3:0","subExpression":{"id":19758,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19666,"src":"301603:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"301590:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"22","id":19765,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"301634:3:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_6e9f33448a4153023cdaf3eb759f1afdc24aba433a3e18b683f8c04a6eaa69f0","typeString":"literal_string \"\"\""},"value":"\""},{"expression":{"id":19766,"name":"contractInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19637,"src":"301639:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_ContractInfo_$16467_memory_ptr","typeString":"struct ContractInfo memory"}},"id":19767,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"301652:12:0","memberName":"artifactPath","nodeType":"MemberAccess","referencedDeclaration":16466,"src":"301639:25:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"22","id":19768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"301666:3:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_6e9f33448a4153023cdaf3eb759f1afdc24aba433a3e18b683f8c04a6eaa69f0","typeString":"literal_string \"\"\""},"value":"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6e9f33448a4153023cdaf3eb759f1afdc24aba433a3e18b683f8c04a6eaa69f0","typeString":"literal_string \"\"\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_6e9f33448a4153023cdaf3eb759f1afdc24aba433a3e18b683f8c04a6eaa69f0","typeString":"literal_string \"\"\""}],"expression":{"id":19763,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"301617:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19764,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"301621:12:0","memberName":"encodePacked","nodeType":"MemberAccess","src":"301617:16:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":19769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"301617:53:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19762,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"301610:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":19761,"name":"string","nodeType":"ElementaryTypeName","src":"301610:6:0","typeDescriptions":{}}},"id":19770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"301610:61:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"301590:81:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":19772,"nodeType":"ExpressionStatement","src":"301590:81:0"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":19778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":19773,"name":"proxyAdminAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19632,"src":"301685:17:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":19776,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"301714:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":19775,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"301706:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":19774,"name":"address","nodeType":"ElementaryTypeName","src":"301706:7:0","typeDescriptions":{}}},"id":19777,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"301706:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"301685:31:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19797,"nodeType":"IfStatement","src":"301681:167:0","trueBody":{"id":19796,"nodeType":"Block","src":"301718:130:0","statements":[{"expression":{"id":19784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":19779,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19658,"src":"301732:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":19782,"indexExpression":{"id":19781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"301745:3:0","subExpression":{"id":19780,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19666,"src":"301745:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"301732:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"2d2d70726f787941646d696e41646472657373","id":19783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"301752:21:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_0fdebf718c07bfc7c84f90014f8c1a9b9bd9bae57b5b63c22aa7f461236982f4","typeString":"literal_string \"--proxyAdminAddress\""},"value":"--proxyAdminAddress"},"src":"301732:41:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":19785,"nodeType":"ExpressionStatement","src":"301732:41:0"},{"expression":{"id":19794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":19786,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19658,"src":"301787:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":19789,"indexExpression":{"id":19788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"301800:3:0","subExpression":{"id":19787,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19666,"src":"301800:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"301787:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":19792,"name":"proxyAdminAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19632,"src":"301819:17:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":19790,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19648,"src":"301807:2:0","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$4037","typeString":"contract Vm"}},"id":19791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"301810:8:0","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":1772,"src":"301807:11:0","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_address_$returns$_t_string_memory_ptr_$","typeString":"function (address) pure external returns (string memory)"}},"id":19793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"301807:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"301787:50:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":19795,"nodeType":"ExpressionStatement","src":"301787:50:0"}]}},{"condition":{"id":19806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"301861:59:0","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"components":[{"expression":{"expression":{"id":19798,"name":"opts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19640,"src":"301863:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}},"id":19799,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"301868:8:0","memberName":"defender","nodeType":"MemberAccess","referencedDeclaration":13778,"src":"301863:13:0","typeDescriptions":{"typeIdentifier":"t_struct$_DefenderOptions_$13800_memory_ptr","typeString":"struct DefenderOptions memory"}},"id":19800,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"301877:24:0","memberName":"upgradeApprovalProcessId","nodeType":"MemberAccess","referencedDeclaration":13790,"src":"301863:38:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":19801,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"301862:40:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":19802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"301903:7:0","memberName":"toSlice","nodeType":"MemberAccess","referencedDeclaration":14089,"src":"301862:48:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (struct Strings.slice memory)"}},"id":19803,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"301862:50:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":19804,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"301913:5:0","memberName":"empty","nodeType":"MemberAccess","referencedDeclaration":14417,"src":"301862:56:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$14014_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_slice_$14014_memory_ptr_$","typeString":"function (struct Strings.slice memory) pure returns (bool)"}},"id":19805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"301862:58:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19824,"nodeType":"IfStatement","src":"301857:203:0","trueBody":{"id":19823,"nodeType":"Block","src":"301922:138:0","statements":[{"expression":{"id":19812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":19807,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19658,"src":"301936:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":19810,"indexExpression":{"id":19809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"301949:3:0","subExpression":{"id":19808,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19666,"src":"301949:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"301936:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"2d2d617070726f76616c50726f636573734964","id":19811,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"301956:21:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_c819a901a97b9836a609900e319b78145dc00cc6f3fe2ed01cfc9e8145a20132","typeString":"literal_string \"--approvalProcessId\""},"value":"--approvalProcessId"},"src":"301936:41:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":19813,"nodeType":"ExpressionStatement","src":"301936:41:0"},{"expression":{"id":19821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":19814,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19658,"src":"301991:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":19817,"indexExpression":{"id":19816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"302004:3:0","subExpression":{"id":19815,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19666,"src":"302004:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"301991:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":19818,"name":"opts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19640,"src":"302011:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}},"id":19819,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"302016:8:0","memberName":"defender","nodeType":"MemberAccess","referencedDeclaration":13778,"src":"302011:13:0","typeDescriptions":{"typeIdentifier":"t_struct$_DefenderOptions_$13800_memory_ptr","typeString":"struct DefenderOptions memory"}},"id":19820,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"302025:24:0","memberName":"upgradeApprovalProcessId","nodeType":"MemberAccess","referencedDeclaration":13790,"src":"302011:38:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"301991:58:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":19822,"nodeType":"ExpressionStatement","src":"301991:58:0"}]}},{"assignments":[19829],"declarations":[{"constant":false,"id":19829,"mutability":"mutable","name":"inputs","nameLocation":"302149:6:0","nodeType":"VariableDeclaration","scope":19858,"src":"302133:22:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":19827,"name":"string","nodeType":"ElementaryTypeName","src":"302133:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":19828,"nodeType":"ArrayTypeName","src":"302133:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"id":19835,"initialValue":{"arguments":[{"id":19833,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19666,"src":"302171:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":19832,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"302158:12:0","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (string memory[] memory)"},"typeName":{"baseType":{"id":19830,"name":"string","nodeType":"ElementaryTypeName","src":"302162:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":19831,"nodeType":"ArrayTypeName","src":"302162:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}}},"id":19834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"302158:15:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"302133:40:0"},{"body":{"id":19854,"nodeType":"Block","src":"302213:52:0","statements":[{"expression":{"id":19852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":19846,"name":"inputs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19829,"src":"302227:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":19848,"indexExpression":{"id":19847,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19837,"src":"302234:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"302227:9:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":19849,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19658,"src":"302239:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":19851,"indexExpression":{"id":19850,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19837,"src":"302252:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"302239:15:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"302227:27:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":19853,"nodeType":"ExpressionStatement","src":"302227:27:0"}]},"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":19842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":19840,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19837,"src":"302201:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":19841,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19666,"src":"302205:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"302201:5:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19855,"initializationExpression":{"assignments":[19837],"declarations":[{"constant":false,"id":19837,"mutability":"mutable","name":"j","nameLocation":"302194:1:0","nodeType":"VariableDeclaration","scope":19855,"src":"302188:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":19836,"name":"uint8","nodeType":"ElementaryTypeName","src":"302188:5:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":19839,"initialValue":{"hexValue":"30","id":19838,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"302198:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"302188:11:0"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":19844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"302208:3:0","subExpression":{"id":19843,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19837,"src":"302208:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":19845,"nodeType":"ExpressionStatement","src":"302208:3:0"},"nodeType":"ForStatement","src":"302183:82:0"},{"expression":{"id":19856,"name":"inputs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19829,"src":"302282:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"functionReturnParameters":19645,"id":19857,"nodeType":"Return","src":"302275:13:0"}]},"id":19859,"implemented":true,"kind":"function","modifiers":[],"name":"buildProposeUpgradeCommand","nameLocation":"300581:26:0","nodeType":"FunctionDefinition","parameters":{"id":19641,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19630,"mutability":"mutable","name":"proxyAddress","nameLocation":"300625:12:0","nodeType":"VariableDeclaration","scope":19859,"src":"300617:20:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19629,"name":"address","nodeType":"ElementaryTypeName","src":"300617:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19632,"mutability":"mutable","name":"proxyAdminAddress","nameLocation":"300655:17:0","nodeType":"VariableDeclaration","scope":19859,"src":"300647:25:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19631,"name":"address","nodeType":"ElementaryTypeName","src":"300647:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19634,"mutability":"mutable","name":"newImplementationAddress","nameLocation":"300690:24:0","nodeType":"VariableDeclaration","scope":19859,"src":"300682:32:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19633,"name":"address","nodeType":"ElementaryTypeName","src":"300682:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19637,"mutability":"mutable","name":"contractInfo","nameLocation":"300744:12:0","nodeType":"VariableDeclaration","scope":19859,"src":"300724:32:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ContractInfo_$16467_memory_ptr","typeString":"struct ContractInfo"},"typeName":{"id":19636,"nodeType":"UserDefinedTypeName","pathNode":{"id":19635,"name":"ContractInfo","nameLocations":["300724:12:0"],"nodeType":"IdentifierPath","referencedDeclaration":16467,"src":"300724:12:0"},"referencedDeclaration":16467,"src":"300724:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_ContractInfo_$16467_storage_ptr","typeString":"struct ContractInfo"}},"visibility":"internal"},{"constant":false,"id":19640,"mutability":"mutable","name":"opts","nameLocation":"300781:4:0","nodeType":"VariableDeclaration","scope":19859,"src":"300766:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options"},"typeName":{"id":19639,"nodeType":"UserDefinedTypeName","pathNode":{"id":19638,"name":"Options","nameLocations":["300766:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":13779,"src":"300766:7:0"},"referencedDeclaration":13779,"src":"300766:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_storage_ptr","typeString":"struct Options"}},"visibility":"internal"}],"src":"300607:184:0"},"returnParameters":{"id":19645,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19644,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19859,"src":"300815:15:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":19642,"name":"string","nodeType":"ElementaryTypeName","src":"300815:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":19643,"nodeType":"ArrayTypeName","src":"300815:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"300814:17:0"},"scope":20094,"src":"300572:1723:0","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":19919,"nodeType":"Block","src":"302402:415:0","statements":[{"assignments":[19871],"declarations":[{"constant":false,"id":19871,"mutability":"mutable","name":"inputs","nameLocation":"302428:6:0","nodeType":"VariableDeclaration","scope":19919,"src":"302412:22:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":19869,"name":"string","nodeType":"ElementaryTypeName","src":"302412:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":19870,"nodeType":"ArrayTypeName","src":"302412:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"id":19875,"initialValue":{"arguments":[{"id":19873,"name":"command","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19861,"src":"302468:7:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":19872,"name":"buildGetApprovalProcessCommand","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20093,"src":"302437:30:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$","typeString":"function (string memory) view returns (string memory[] memory)"}},"id":19874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"302437:39:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"302412:64:0"},{"assignments":[19880],"declarations":[{"constant":false,"id":19880,"mutability":"mutable","name":"result","nameLocation":"302511:6:0","nodeType":"VariableDeclaration","scope":19919,"src":"302487:30:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FfiResult_$116_memory_ptr","typeString":"struct VmSafe.FfiResult"},"typeName":{"id":19879,"nodeType":"UserDefinedTypeName","pathNode":{"id":19878,"name":"VmSafe.FfiResult","nameLocations":["302487:6:0","302494:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":116,"src":"302487:16:0"},"referencedDeclaration":116,"src":"302487:16:0","typeDescriptions":{"typeIdentifier":"t_struct$_FfiResult_$116_storage_ptr","typeString":"struct VmSafe.FfiResult"}},"visibility":"internal"}],"id":19885,"initialValue":{"arguments":[{"id":19883,"name":"inputs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19871,"src":"302543:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}],"expression":{"id":19881,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17211,"src":"302520:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Utils_$17211_$","typeString":"type(library Utils)"}},"id":19882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"302526:16:0","memberName":"runAsBashCommand","nodeType":"MemberAccess","referencedDeclaration":17210,"src":"302520:22:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$returns$_t_struct$_FfiResult_$116_memory_ptr_$","typeString":"function (string memory[] memory) returns (struct VmSafe.FfiResult memory)"}},"id":19884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"302520:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FfiResult_$116_memory_ptr","typeString":"struct VmSafe.FfiResult memory"}},"nodeType":"VariableDeclarationStatement","src":"302487:63:0"},{"assignments":[19887],"declarations":[{"constant":false,"id":19887,"mutability":"mutable","name":"stdout","nameLocation":"302574:6:0","nodeType":"VariableDeclaration","scope":19919,"src":"302560:20:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19886,"name":"string","nodeType":"ElementaryTypeName","src":"302560:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":19893,"initialValue":{"arguments":[{"expression":{"id":19890,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19880,"src":"302590:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_FfiResult_$116_memory_ptr","typeString":"struct VmSafe.FfiResult memory"}},"id":19891,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"302597:6:0","memberName":"stdout","nodeType":"MemberAccess","referencedDeclaration":113,"src":"302590:13:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19889,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"302583:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":19888,"name":"string","nodeType":"ElementaryTypeName","src":"302583:6:0","typeDescriptions":{}}},"id":19892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"302583:21:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"302560:44:0"},{"condition":{"commonType":{"typeIdentifier":"t_int32","typeString":"int32"},"id":19897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19894,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19880,"src":"302619:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_FfiResult_$116_memory_ptr","typeString":"struct VmSafe.FfiResult memory"}},"id":19895,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"302626:8:0","memberName":"exitCode","nodeType":"MemberAccess","referencedDeclaration":111,"src":"302619:15:0","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":19896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"302638:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"302619:20:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19914,"nodeType":"IfStatement","src":"302615:142:0","trueBody":{"id":19913,"nodeType":"Block","src":"302641:116:0","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"4661696c656420746f2067657420617070726f76616c2070726f636573733a20","id":19903,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"302686:34:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_65483eee9f542aa2dcc6d706d85cc4cf015d6bfa221a6e803f41e63bd712fc95","typeString":"literal_string \"Failed to get approval process: \""},"value":"Failed to get approval process: "},{"arguments":[{"expression":{"id":19906,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19880,"src":"302729:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_FfiResult_$116_memory_ptr","typeString":"struct VmSafe.FfiResult memory"}},"id":19907,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"302736:6:0","memberName":"stderr","nodeType":"MemberAccess","referencedDeclaration":115,"src":"302729:13:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19905,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"302722:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":19904,"name":"string","nodeType":"ElementaryTypeName","src":"302722:6:0","typeDescriptions":{}}},"id":19908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"302722:21:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_65483eee9f542aa2dcc6d706d85cc4cf015d6bfa221a6e803f41e63bd712fc95","typeString":"literal_string \"Failed to get approval process: \""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":19901,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"302669:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19902,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"302673:12:0","memberName":"encodePacked","nodeType":"MemberAccess","src":"302669:16:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":19909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"302669:75:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19900,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"302662:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":19899,"name":"string","nodeType":"ElementaryTypeName","src":"302662:6:0","typeDescriptions":{}}},"id":19910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"302662:83:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":19898,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"302655:6:0","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":19911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"302655:91:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19912,"nodeType":"ExpressionStatement","src":"302655:91:0"}]}},{"expression":{"arguments":[{"id":19916,"name":"stdout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19887,"src":"302803:6:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":19915,"name":"parseApprovalProcessResponse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19989,"src":"302774:28:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_ApprovalProcessResponse_$17621_memory_ptr_$","typeString":"function (string memory) pure returns (struct ApprovalProcessResponse memory)"}},"id":19917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"302774:36:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ApprovalProcessResponse_$17621_memory_ptr","typeString":"struct ApprovalProcessResponse memory"}},"functionReturnParameters":19866,"id":19918,"nodeType":"Return","src":"302767:43:0"}]},"id":19920,"implemented":true,"kind":"function","modifiers":[],"name":"getApprovalProcess","nameLocation":"302310:18:0","nodeType":"FunctionDefinition","parameters":{"id":19862,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19861,"mutability":"mutable","name":"command","nameLocation":"302343:7:0","nodeType":"VariableDeclaration","scope":19920,"src":"302329:21:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19860,"name":"string","nodeType":"ElementaryTypeName","src":"302329:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"302328:23:0"},"returnParameters":{"id":19866,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19865,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19920,"src":"302370:30:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ApprovalProcessResponse_$17621_memory_ptr","typeString":"struct ApprovalProcessResponse"},"typeName":{"id":19864,"nodeType":"UserDefinedTypeName","pathNode":{"id":19863,"name":"ApprovalProcessResponse","nameLocations":["302370:23:0"],"nodeType":"IdentifierPath","referencedDeclaration":17621,"src":"302370:23:0"},"referencedDeclaration":17621,"src":"302370:23:0","typeDescriptions":{"typeIdentifier":"t_struct$_ApprovalProcessResponse_$17621_storage_ptr","typeString":"struct ApprovalProcessResponse"}},"visibility":"internal"}],"src":"302369:32:0"},"scope":20094,"src":"302301:516:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":19988,"nodeType":"Block","src":"302938:468:0","statements":[{"assignments":[19930],"declarations":[{"constant":false,"id":19930,"mutability":"mutable","name":"vm","nameLocation":"302951:2:0","nodeType":"VariableDeclaration","scope":19988,"src":"302948:5:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$4037","typeString":"contract Vm"},"typeName":{"id":19929,"nodeType":"UserDefinedTypeName","pathNode":{"id":19928,"name":"Vm","nameLocations":["302948:2:0"],"nodeType":"IdentifierPath","referencedDeclaration":4037,"src":"302948:2:0"},"referencedDeclaration":4037,"src":"302948:2:0","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$4037","typeString":"contract Vm"}},"visibility":"internal"}],"id":19935,"initialValue":{"arguments":[{"expression":{"id":19932,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17211,"src":"302959:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Utils_$17211_$","typeString":"type(library Utils)"}},"id":19933,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"302965:17:0","memberName":"CHEATCODE_ADDRESS","nodeType":"MemberAccess","referencedDeclaration":16471,"src":"302959:23:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":19931,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4037,"src":"302956:2:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Vm_$4037_$","typeString":"type(contract Vm)"}},"id":19934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"302956:27:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$4037","typeString":"contract Vm"}},"nodeType":"VariableDeclarationStatement","src":"302948:35:0"},{"assignments":[19938],"declarations":[{"constant":false,"id":19938,"mutability":"mutable","name":"response","nameLocation":"303025:8:0","nodeType":"VariableDeclaration","scope":19988,"src":"302994:39:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ApprovalProcessResponse_$17621_memory_ptr","typeString":"struct ApprovalProcessResponse"},"typeName":{"id":19937,"nodeType":"UserDefinedTypeName","pathNode":{"id":19936,"name":"ApprovalProcessResponse","nameLocations":["302994:23:0"],"nodeType":"IdentifierPath","referencedDeclaration":17621,"src":"302994:23:0"},"referencedDeclaration":17621,"src":"302994:23:0","typeDescriptions":{"typeIdentifier":"t_struct$_ApprovalProcessResponse_$17621_storage_ptr","typeString":"struct ApprovalProcessResponse"}},"visibility":"internal"}],"id":19939,"nodeType":"VariableDeclarationStatement","src":"302994:39:0"},{"expression":{"id":19948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19940,"name":"response","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19938,"src":"303044:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_ApprovalProcessResponse_$17621_memory_ptr","typeString":"struct ApprovalProcessResponse memory"}},"id":19942,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"303053:17:0","memberName":"approvalProcessId","nodeType":"MemberAccess","referencedDeclaration":17616,"src":"303044:26:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"417070726f76616c2070726f636573732049443a20","id":19944,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"303084:23:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_cb9b9eea03ed34a6561e120fec3ac5ec212d83a85e37489894ad8b60fecdba95","typeString":"literal_string \"Approval process ID: \""},"value":"Approval process ID: "},{"id":19945,"name":"stdout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19922,"src":"303109:6:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"74727565","id":19946,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"303117:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cb9b9eea03ed34a6561e120fec3ac5ec212d83a85e37489894ad8b60fecdba95","typeString":"literal_string \"Approval process ID: \""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":19943,"name":"_parseLine","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19628,"src":"303073:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_bool_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory,bool) pure returns (string memory)"}},"id":19947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"303073:49:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"303044:78:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":19949,"nodeType":"ExpressionStatement","src":"303044:78:0"},{"assignments":[19951],"declarations":[{"constant":false,"id":19951,"mutability":"mutable","name":"viaString","nameLocation":"303147:9:0","nodeType":"VariableDeclaration","scope":19988,"src":"303133:23:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19950,"name":"string","nodeType":"ElementaryTypeName","src":"303133:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":19957,"initialValue":{"arguments":[{"hexValue":"5669613a20","id":19953,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"303170:7:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_490394eaf0918f9d26b447978ad5a35e8f401410124d6d40c531a65986f667d4","typeString":"literal_string \"Via: \""},"value":"Via: "},{"id":19954,"name":"stdout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19922,"src":"303179:6:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"66616c7365","id":19955,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"303187:5:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_490394eaf0918f9d26b447978ad5a35e8f401410124d6d40c531a65986f667d4","typeString":"literal_string \"Via: \""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":19952,"name":"_parseLine","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19628,"src":"303159:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_bool_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory,bool) pure returns (string memory)"}},"id":19956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"303159:34:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"303133:60:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":19958,"name":"viaString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19951,"src":"303207:9:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":19959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"303217:7:0","memberName":"toSlice","nodeType":"MemberAccess","referencedDeclaration":14089,"src":"303207:17:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$14014_memory_ptr_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (struct Strings.slice memory)"}},"id":19960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"303207:19:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14014_memory_ptr","typeString":"struct Strings.slice memory"}},"id":19961,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"303227:3:0","memberName":"len","nodeType":"MemberAccess","referencedDeclaration":14403,"src":"303207:23:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$14014_memory_ptr_$returns$_t_uint256_$attached_to$_t_struct$_slice_$14014_memory_ptr_$","typeString":"function (struct Strings.slice memory) pure returns (uint256)"}},"id":19962,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"303207:25:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":19963,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"303236:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"303207:30:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19975,"nodeType":"IfStatement","src":"303203:102:0","trueBody":{"id":19974,"nodeType":"Block","src":"303239:66:0","statements":[{"expression":{"id":19972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19965,"name":"response","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19938,"src":"303253:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_ApprovalProcessResponse_$17621_memory_ptr","typeString":"struct ApprovalProcessResponse memory"}},"id":19967,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"303262:3:0","memberName":"via","nodeType":"MemberAccess","referencedDeclaration":17618,"src":"303253:12:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":19970,"name":"viaString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19951,"src":"303284:9:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":19968,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19930,"src":"303268:2:0","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$4037","typeString":"contract Vm"}},"id":19969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"303271:12:0","memberName":"parseAddress","nodeType":"MemberAccess","referencedDeclaration":1693,"src":"303268:15:0","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$returns$_t_address_$","typeString":"function (string memory) pure external returns (address)"}},"id":19971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"303268:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"303253:41:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":19973,"nodeType":"ExpressionStatement","src":"303253:41:0"}]}},{"expression":{"id":19984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19976,"name":"response","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19938,"src":"303315:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_ApprovalProcessResponse_$17621_memory_ptr","typeString":"struct ApprovalProcessResponse memory"}},"id":19978,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"303324:7:0","memberName":"viaType","nodeType":"MemberAccess","referencedDeclaration":17620,"src":"303315:16:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"56696120747970653a20","id":19980,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"303345:12:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_d8d05ae1e34eff0c8d1c21f28d4a38ae9eba146dbd61b962922deba3af172536","typeString":"literal_string \"Via type: \""},"value":"Via type: "},{"id":19981,"name":"stdout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19922,"src":"303359:6:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"66616c7365","id":19982,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"303367:5:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d8d05ae1e34eff0c8d1c21f28d4a38ae9eba146dbd61b962922deba3af172536","typeString":"literal_string \"Via type: \""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":19979,"name":"_parseLine","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19628,"src":"303334:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_bool_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory,bool) pure returns (string memory)"}},"id":19983,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"303334:39:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"303315:58:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":19985,"nodeType":"ExpressionStatement","src":"303315:58:0"},{"expression":{"id":19986,"name":"response","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19938,"src":"303391:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_ApprovalProcessResponse_$17621_memory_ptr","typeString":"struct ApprovalProcessResponse memory"}},"functionReturnParameters":19927,"id":19987,"nodeType":"Return","src":"303384:15:0"}]},"id":19989,"implemented":true,"kind":"function","modifiers":[],"name":"parseApprovalProcessResponse","nameLocation":"302832:28:0","nodeType":"FunctionDefinition","parameters":{"id":19923,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19922,"mutability":"mutable","name":"stdout","nameLocation":"302875:6:0","nodeType":"VariableDeclaration","scope":19989,"src":"302861:20:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19921,"name":"string","nodeType":"ElementaryTypeName","src":"302861:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"302860:22:0"},"returnParameters":{"id":19927,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19926,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19989,"src":"302906:30:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ApprovalProcessResponse_$17621_memory_ptr","typeString":"struct ApprovalProcessResponse"},"typeName":{"id":19925,"nodeType":"UserDefinedTypeName","pathNode":{"id":19924,"name":"ApprovalProcessResponse","nameLocations":["302906:23:0"],"nodeType":"IdentifierPath","referencedDeclaration":17621,"src":"302906:23:0"},"referencedDeclaration":17621,"src":"302906:23:0","typeDescriptions":{"typeIdentifier":"t_struct$_ApprovalProcessResponse_$17621_storage_ptr","typeString":"struct ApprovalProcessResponse"}},"visibility":"internal"}],"src":"302905:32:0"},"scope":20094,"src":"302823:583:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":20092,"nodeType":"Block","src":"303515:649:0","statements":[{"assignments":[20001],"declarations":[{"constant":false,"id":20001,"mutability":"mutable","name":"inputBuilder","nameLocation":"303541:12:0","nodeType":"VariableDeclaration","scope":20092,"src":"303525:28:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":19999,"name":"string","nodeType":"ElementaryTypeName","src":"303525:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":20000,"nodeType":"ArrayTypeName","src":"303525:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"id":20007,"initialValue":{"arguments":[{"hexValue":"323535","id":20005,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"303569:3:0","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"}],"id":20004,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"303556:12:0","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (string memory[] memory)"},"typeName":{"baseType":{"id":20002,"name":"string","nodeType":"ElementaryTypeName","src":"303560:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":20003,"nodeType":"ArrayTypeName","src":"303560:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}}},"id":20006,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"303556:17:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"303525:48:0"},{"assignments":[20009],"declarations":[{"constant":false,"id":20009,"mutability":"mutable","name":"i","nameLocation":"303590:1:0","nodeType":"VariableDeclaration","scope":20092,"src":"303584:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":20008,"name":"uint8","nodeType":"ElementaryTypeName","src":"303584:5:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":20011,"initialValue":{"hexValue":"30","id":20010,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"303594:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"303584:11:0"},{"expression":{"id":20017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":20012,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20001,"src":"303606:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":20015,"indexExpression":{"id":20014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"303619:3:0","subExpression":{"id":20013,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20009,"src":"303619:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"303606:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"6e7078","id":20016,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"303626:5:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_169a1000665635df106bbe8ab6519d10dd57f5c196b68846e9722c94b7bf89aa","typeString":"literal_string \"npx\""},"value":"npx"},"src":"303606:25:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":20018,"nodeType":"ExpressionStatement","src":"303606:25:0"},{"expression":{"id":20032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":20019,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20001,"src":"303641:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":20022,"indexExpression":{"id":20021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"303654:3:0","subExpression":{"id":20020,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20009,"src":"303654:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"303641:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"406f70656e7a657070656c696e2f646566656e6465722d6465706c6f792d636c69656e742d636c6940","id":20027,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"303698:43:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_911dd02035025c2cb695e87f546c8657a33a4f437472b320b67efab6662a5c76","typeString":"literal_string \"@openzeppelin/defender-deploy-client-cli@\""},"value":"@openzeppelin/defender-deploy-client-cli@"},{"expression":{"id":20028,"name":"Versions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13817,"src":"303743:8:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Versions_$13817_$","typeString":"type(library Versions)"}},"id":20029,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"303752:26:0","memberName":"DEFENDER_DEPLOY_CLIENT_CLI","nodeType":"MemberAccess","referencedDeclaration":13816,"src":"303743:35:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_911dd02035025c2cb695e87f546c8657a33a4f437472b320b67efab6662a5c76","typeString":"literal_string \"@openzeppelin/defender-deploy-client-cli@\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":20025,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"303681:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20026,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"303685:12:0","memberName":"encodePacked","nodeType":"MemberAccess","src":"303681:16:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":20030,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"303681:98:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20024,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"303661:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":20023,"name":"string","nodeType":"ElementaryTypeName","src":"303661:6:0","typeDescriptions":{}}},"id":20031,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"303661:128:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"303641:148:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":20033,"nodeType":"ExpressionStatement","src":"303641:148:0"},{"expression":{"id":20039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":20034,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20001,"src":"303799:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":20037,"indexExpression":{"id":20036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"303812:3:0","subExpression":{"id":20035,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20009,"src":"303812:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"303799:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":20038,"name":"command","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19991,"src":"303819:7:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"303799:27:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":20040,"nodeType":"ExpressionStatement","src":"303799:27:0"},{"expression":{"id":20046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":20041,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20001,"src":"303836:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":20044,"indexExpression":{"id":20043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"303849:3:0","subExpression":{"id":20042,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20009,"src":"303849:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"303836:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"2d2d636861696e4964","id":20045,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"303856:11:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_7dc1dd87cae13f62dd44618a6634d1f58d1404fce96d0ca0e06289f8ceea6bae","typeString":"literal_string \"--chainId\""},"value":"--chainId"},"src":"303836:31:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":20047,"nodeType":"ExpressionStatement","src":"303836:31:0"},{"expression":{"id":20057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":20048,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20001,"src":"303877:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":20051,"indexExpression":{"id":20050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"303890:3:0","subExpression":{"id":20049,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20009,"src":"303890:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"303877:17:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":20054,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"303914:5:0","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":20055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"303920:7:0","memberName":"chainid","nodeType":"MemberAccess","src":"303914:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20052,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16079,"src":"303897:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Strings_$16079_$","typeString":"type(library Strings)"}},"id":20053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"303905:8:0","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":15892,"src":"303897:16:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":20056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"303897:31:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"303877:51:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":20058,"nodeType":"ExpressionStatement","src":"303877:51:0"},{"assignments":[20063],"declarations":[{"constant":false,"id":20063,"mutability":"mutable","name":"inputs","nameLocation":"304018:6:0","nodeType":"VariableDeclaration","scope":20092,"src":"304002:22:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":20061,"name":"string","nodeType":"ElementaryTypeName","src":"304002:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":20062,"nodeType":"ArrayTypeName","src":"304002:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"id":20069,"initialValue":{"arguments":[{"id":20067,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20009,"src":"304040:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":20066,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"304027:12:0","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (string memory[] memory)"},"typeName":{"baseType":{"id":20064,"name":"string","nodeType":"ElementaryTypeName","src":"304031:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":20065,"nodeType":"ArrayTypeName","src":"304031:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}}},"id":20068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"304027:15:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"304002:40:0"},{"body":{"id":20088,"nodeType":"Block","src":"304082:52:0","statements":[{"expression":{"id":20086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":20080,"name":"inputs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20063,"src":"304096:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":20082,"indexExpression":{"id":20081,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20071,"src":"304103:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"304096:9:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":20083,"name":"inputBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20001,"src":"304108:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":20085,"indexExpression":{"id":20084,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20071,"src":"304121:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"304108:15:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"304096:27:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":20087,"nodeType":"ExpressionStatement","src":"304096:27:0"}]},"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":20076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20074,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20071,"src":"304070:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":20075,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20009,"src":"304074:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"304070:5:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20089,"initializationExpression":{"assignments":[20071],"declarations":[{"constant":false,"id":20071,"mutability":"mutable","name":"j","nameLocation":"304063:1:0","nodeType":"VariableDeclaration","scope":20089,"src":"304057:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":20070,"name":"uint8","nodeType":"ElementaryTypeName","src":"304057:5:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":20073,"initialValue":{"hexValue":"30","id":20072,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"304067:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"304057:11:0"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":20078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"304077:3:0","subExpression":{"id":20077,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20071,"src":"304077:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":20079,"nodeType":"ExpressionStatement","src":"304077:3:0"},"nodeType":"ForStatement","src":"304052:82:0"},{"expression":{"id":20090,"name":"inputs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20063,"src":"304151:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"functionReturnParameters":19996,"id":20091,"nodeType":"Return","src":"304144:13:0"}]},"id":20093,"implemented":true,"kind":"function","modifiers":[],"name":"buildGetApprovalProcessCommand","nameLocation":"303421:30:0","nodeType":"FunctionDefinition","parameters":{"id":19992,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19991,"mutability":"mutable","name":"command","nameLocation":"303466:7:0","nodeType":"VariableDeclaration","scope":20093,"src":"303452:21:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19990,"name":"string","nodeType":"ElementaryTypeName","src":"303452:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"303451:23:0"},"returnParameters":{"id":19996,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19995,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20093,"src":"303498:15:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":19993,"name":"string","nodeType":"ElementaryTypeName","src":"303498:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":19994,"nodeType":"ArrayTypeName","src":"303498:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"303497:17:0"},"scope":20094,"src":"303412:752:0","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":20815,"src":"291086:13080:0","usedErrors":[],"usedEvents":[]},{"abstract":false,"baseContracts":[],"canonicalName":"Upgrades","contractDependencies":[],"contractKind":"library","documentation":{"id":20095,"nodeType":"StructuredDocumentation","src":"304223:159:0","text":" @dev Library for deploying and managing upgradeable contracts from Forge scripts or tests.\n NOTE: Requires OpenZeppelin Contracts v5 or higher."},"fullyImplemented":true,"id":20607,"linearizedBaseContracts":[20607],"name":"Upgrades","nameLocation":"304391:8:0","nodeType":"ContractDefinition","nodes":[{"body":{"id":20126,"nodeType":"Block","src":"305077:175:0","statements":[{"assignments":[20109],"declarations":[{"constant":false,"id":20109,"mutability":"mutable","name":"impl","nameLocation":"305095:4:0","nodeType":"VariableDeclaration","scope":20126,"src":"305087:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20108,"name":"address","nodeType":"ElementaryTypeName","src":"305087:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":20114,"initialValue":{"arguments":[{"id":20111,"name":"contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20098,"src":"305123:12:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20112,"name":"opts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20103,"src":"305137:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}],"id":20110,"name":"deployImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20529,"src":"305102:20:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_Options_$13779_memory_ptr_$returns$_t_address_$","typeString":"function (string memory,struct Options memory) returns (address)"}},"id":20113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"305102:40:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"305087:55:0"},{"expression":{"arguments":[{"hexValue":"4552433139363750726f78792e736f6c3a4552433139363750726f7879","id":20117,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"305172:31:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_740cf149c9b5cf2973fa460829dc6f3d37c62cee6767c8b2a4aacda435a59250","typeString":"literal_string \"ERC1967Proxy.sol:ERC1967Proxy\""},"value":"ERC1967Proxy.sol:ERC1967Proxy"},{"arguments":[{"id":20120,"name":"impl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20109,"src":"305216:4:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20121,"name":"initializerData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20100,"src":"305222:15:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":20118,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"305205:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20119,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"305209:6:0","memberName":"encode","nodeType":"MemberAccess","src":"305205:10:0","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":20122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"305205:33:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":20123,"name":"opts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20103,"src":"305240:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_740cf149c9b5cf2973fa460829dc6f3d37c62cee6767c8b2a4aacda435a59250","typeString":"literal_string \"ERC1967Proxy.sol:ERC1967Proxy\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}],"expression":{"id":20115,"name":"Core","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18590,"src":"305160:4:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Core_$18590_$","typeString":"type(library Core)"}},"id":20116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"305165:6:0","memberName":"deploy","nodeType":"MemberAccess","referencedDeclaration":18518,"src":"305160:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_struct$_Options_$13779_memory_ptr_$returns$_t_address_$","typeString":"function (string memory,bytes memory,struct Options memory) returns (address)"}},"id":20124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"305160:85:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":20107,"id":20125,"nodeType":"Return","src":"305153:92:0"}]},"documentation":{"id":20096,"nodeType":"StructuredDocumentation","src":"304406:505:0","text":" @dev Deploys a UUPS proxy using the given contract as the implementation.\n @param contractName Name of the contract to use as the implementation, e.g. \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n @param initializerData Encoded call data of the initializer function to call during creation of the proxy, or empty if no initialization is required\n @param opts Common options\n @return Proxy address"},"id":20127,"implemented":true,"kind":"function","modifiers":[],"name":"deployUUPSProxy","nameLocation":"304925:15:0","nodeType":"FunctionDefinition","parameters":{"id":20104,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20098,"mutability":"mutable","name":"contractName","nameLocation":"304964:12:0","nodeType":"VariableDeclaration","scope":20127,"src":"304950:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20097,"name":"string","nodeType":"ElementaryTypeName","src":"304950:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20100,"mutability":"mutable","name":"initializerData","nameLocation":"304999:15:0","nodeType":"VariableDeclaration","scope":20127,"src":"304986:28:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":20099,"name":"bytes","nodeType":"ElementaryTypeName","src":"304986:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":20103,"mutability":"mutable","name":"opts","nameLocation":"305039:4:0","nodeType":"VariableDeclaration","scope":20127,"src":"305024:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options"},"typeName":{"id":20102,"nodeType":"UserDefinedTypeName","pathNode":{"id":20101,"name":"Options","nameLocations":["305024:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":13779,"src":"305024:7:0"},"referencedDeclaration":13779,"src":"305024:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_storage_ptr","typeString":"struct Options"}},"visibility":"internal"}],"src":"304940:109:0"},"returnParameters":{"id":20107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20106,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20127,"src":"305068:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20105,"name":"address","nodeType":"ElementaryTypeName","src":"305068:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"305067:9:0"},"scope":20607,"src":"304916:336:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":20147,"nodeType":"Block","src":"305844:105:0","statements":[{"assignments":[20139],"declarations":[{"constant":false,"id":20139,"mutability":"mutable","name":"opts","nameLocation":"305869:4:0","nodeType":"VariableDeclaration","scope":20147,"src":"305854:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options"},"typeName":{"id":20138,"nodeType":"UserDefinedTypeName","pathNode":{"id":20137,"name":"Options","nameLocations":["305854:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":13779,"src":"305854:7:0"},"referencedDeclaration":13779,"src":"305854:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_storage_ptr","typeString":"struct Options"}},"visibility":"internal"}],"id":20140,"nodeType":"VariableDeclarationStatement","src":"305854:19:0"},{"expression":{"arguments":[{"id":20142,"name":"contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20130,"src":"305906:12:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20143,"name":"initializerData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20132,"src":"305920:15:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":20144,"name":"opts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20139,"src":"305937:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}],"id":20141,"name":"deployUUPSProxy","nodeType":"Identifier","overloadedDeclarations":[20127,20148],"referencedDeclaration":20127,"src":"305890:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_struct$_Options_$13779_memory_ptr_$returns$_t_address_$","typeString":"function (string memory,bytes memory,struct Options memory) returns (address)"}},"id":20145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"305890:52:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":20136,"id":20146,"nodeType":"Return","src":"305883:59:0"}]},"documentation":{"id":20128,"nodeType":"StructuredDocumentation","src":"305258:471:0","text":" @dev Deploys a UUPS proxy using the given contract as the implementation.\n @param contractName Name of the contract to use as the implementation, e.g. \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n @param initializerData Encoded call data of the initializer function to call during creation of the proxy, or empty if no initialization is required\n @return Proxy address"},"id":20148,"implemented":true,"kind":"function","modifiers":[],"name":"deployUUPSProxy","nameLocation":"305743:15:0","nodeType":"FunctionDefinition","parameters":{"id":20133,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20130,"mutability":"mutable","name":"contractName","nameLocation":"305773:12:0","nodeType":"VariableDeclaration","scope":20148,"src":"305759:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20129,"name":"string","nodeType":"ElementaryTypeName","src":"305759:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20132,"mutability":"mutable","name":"initializerData","nameLocation":"305800:15:0","nodeType":"VariableDeclaration","scope":20148,"src":"305787:28:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":20131,"name":"bytes","nodeType":"ElementaryTypeName","src":"305787:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"305758:58:0"},"returnParameters":{"id":20136,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20135,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20148,"src":"305835:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20134,"name":"address","nodeType":"ElementaryTypeName","src":"305835:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"305834:9:0"},"scope":20607,"src":"305734:215:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":20182,"nodeType":"Block","src":"306785:293:0","statements":[{"assignments":[20164],"declarations":[{"constant":false,"id":20164,"mutability":"mutable","name":"impl","nameLocation":"306803:4:0","nodeType":"VariableDeclaration","scope":20182,"src":"306795:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20163,"name":"address","nodeType":"ElementaryTypeName","src":"306795:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":20169,"initialValue":{"arguments":[{"id":20166,"name":"contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20151,"src":"306831:12:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20167,"name":"opts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20158,"src":"306845:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}],"id":20165,"name":"deployImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20529,"src":"306810:20:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_Options_$13779_memory_ptr_$returns$_t_address_$","typeString":"function (string memory,struct Options memory) returns (address)"}},"id":20168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"306810:40:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"306795:55:0"},{"expression":{"arguments":[{"hexValue":"5472616e73706172656e745570677261646561626c6550726f78792e736f6c3a5472616e73706172656e745570677261646561626c6550726f7879","id":20172,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"306909:61:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_53b1f648833703f557b01187d2ba788e54a41f7ca0524fd42966d81ff1271eee","typeString":"literal_string \"TransparentUpgradeableProxy.sol:TransparentUpgradeableProxy\""},"value":"TransparentUpgradeableProxy.sol:TransparentUpgradeableProxy"},{"arguments":[{"id":20175,"name":"impl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20164,"src":"306999:4:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20176,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20153,"src":"307005:12:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20177,"name":"initializerData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20155,"src":"307019:15:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":20173,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"306988:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20174,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"306992:6:0","memberName":"encode","nodeType":"MemberAccess","src":"306988:10:0","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":20178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"306988:47:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":20179,"name":"opts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20158,"src":"307053:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_53b1f648833703f557b01187d2ba788e54a41f7ca0524fd42966d81ff1271eee","typeString":"literal_string \"TransparentUpgradeableProxy.sol:TransparentUpgradeableProxy\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}],"expression":{"id":20170,"name":"Core","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18590,"src":"306880:4:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Core_$18590_$","typeString":"type(library Core)"}},"id":20171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"306885:6:0","memberName":"deploy","nodeType":"MemberAccess","referencedDeclaration":18518,"src":"306880:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_struct$_Options_$13779_memory_ptr_$returns$_t_address_$","typeString":"function (string memory,bytes memory,struct Options memory) returns (address)"}},"id":20180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"306880:191:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":20162,"id":20181,"nodeType":"Return","src":"306861:210:0"}]},"documentation":{"id":20149,"nodeType":"StructuredDocumentation","src":"305955:627:0","text":" @dev Deploys a transparent proxy using the given contract as the implementation.\n @param contractName Name of the contract to use as the implementation, e.g. \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n @param initialOwner Address to set as the owner of the ProxyAdmin contract which gets deployed by the proxy\n @param initializerData Encoded call data of the initializer function to call during creation of the proxy, or empty if no initialization is required\n @param opts Common options\n @return Proxy address"},"id":20183,"implemented":true,"kind":"function","modifiers":[],"name":"deployTransparentProxy","nameLocation":"306596:22:0","nodeType":"FunctionDefinition","parameters":{"id":20159,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20151,"mutability":"mutable","name":"contractName","nameLocation":"306642:12:0","nodeType":"VariableDeclaration","scope":20183,"src":"306628:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20150,"name":"string","nodeType":"ElementaryTypeName","src":"306628:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20153,"mutability":"mutable","name":"initialOwner","nameLocation":"306672:12:0","nodeType":"VariableDeclaration","scope":20183,"src":"306664:20:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20152,"name":"address","nodeType":"ElementaryTypeName","src":"306664:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20155,"mutability":"mutable","name":"initializerData","nameLocation":"306707:15:0","nodeType":"VariableDeclaration","scope":20183,"src":"306694:28:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":20154,"name":"bytes","nodeType":"ElementaryTypeName","src":"306694:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":20158,"mutability":"mutable","name":"opts","nameLocation":"306747:4:0","nodeType":"VariableDeclaration","scope":20183,"src":"306732:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options"},"typeName":{"id":20157,"nodeType":"UserDefinedTypeName","pathNode":{"id":20156,"name":"Options","nameLocations":["306732:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":13779,"src":"306732:7:0"},"referencedDeclaration":13779,"src":"306732:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_storage_ptr","typeString":"struct Options"}},"visibility":"internal"}],"src":"306618:139:0"},"returnParameters":{"id":20162,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20161,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20183,"src":"306776:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20160,"name":"address","nodeType":"ElementaryTypeName","src":"306776:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"306775:9:0"},"scope":20607,"src":"306587:491:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":20206,"nodeType":"Block","src":"307851:126:0","statements":[{"assignments":[20197],"declarations":[{"constant":false,"id":20197,"mutability":"mutable","name":"opts","nameLocation":"307876:4:0","nodeType":"VariableDeclaration","scope":20206,"src":"307861:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options"},"typeName":{"id":20196,"nodeType":"UserDefinedTypeName","pathNode":{"id":20195,"name":"Options","nameLocations":["307861:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":13779,"src":"307861:7:0"},"referencedDeclaration":13779,"src":"307861:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_storage_ptr","typeString":"struct Options"}},"visibility":"internal"}],"id":20198,"nodeType":"VariableDeclarationStatement","src":"307861:19:0"},{"expression":{"arguments":[{"id":20200,"name":"contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20186,"src":"307920:12:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20201,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20188,"src":"307934:12:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20202,"name":"initializerData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20190,"src":"307948:15:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":20203,"name":"opts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20197,"src":"307965:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}],"id":20199,"name":"deployTransparentProxy","nodeType":"Identifier","overloadedDeclarations":[20183,20207],"referencedDeclaration":20183,"src":"307897:22:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_address_$_t_bytes_memory_ptr_$_t_struct$_Options_$13779_memory_ptr_$returns$_t_address_$","typeString":"function (string memory,address,bytes memory,struct Options memory) returns (address)"}},"id":20204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"307897:73:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":20194,"id":20205,"nodeType":"Return","src":"307890:80:0"}]},"documentation":{"id":20184,"nodeType":"StructuredDocumentation","src":"307084:593:0","text":" @dev Deploys a transparent proxy using the given contract as the implementation.\n @param contractName Name of the contract to use as the implementation, e.g. \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n @param initialOwner Address to set as the owner of the ProxyAdmin contract which gets deployed by the proxy\n @param initializerData Encoded call data of the initializer function to call during creation of the proxy, or empty if no initialization is required\n @return Proxy address"},"id":20207,"implemented":true,"kind":"function","modifiers":[],"name":"deployTransparentProxy","nameLocation":"307691:22:0","nodeType":"FunctionDefinition","parameters":{"id":20191,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20186,"mutability":"mutable","name":"contractName","nameLocation":"307737:12:0","nodeType":"VariableDeclaration","scope":20207,"src":"307723:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20185,"name":"string","nodeType":"ElementaryTypeName","src":"307723:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20188,"mutability":"mutable","name":"initialOwner","nameLocation":"307767:12:0","nodeType":"VariableDeclaration","scope":20207,"src":"307759:20:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20187,"name":"address","nodeType":"ElementaryTypeName","src":"307759:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20190,"mutability":"mutable","name":"initializerData","nameLocation":"307802:15:0","nodeType":"VariableDeclaration","scope":20207,"src":"307789:28:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":20189,"name":"bytes","nodeType":"ElementaryTypeName","src":"307789:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"307713:110:0"},"returnParameters":{"id":20194,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20193,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20207,"src":"307842:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20192,"name":"address","nodeType":"ElementaryTypeName","src":"307842:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"307841:9:0"},"scope":20607,"src":"307682:295:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":20229,"nodeType":"Block","src":"308834:67:0","statements":[{"expression":{"arguments":[{"id":20223,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20210,"src":"308862:5:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20224,"name":"contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20212,"src":"308869:12:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20225,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20214,"src":"308883:4:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":20226,"name":"opts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20217,"src":"308889:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}],"expression":{"id":20220,"name":"Core","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18590,"src":"308844:4:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Core_$18590_$","typeString":"type(library Core)"}},"id":20222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"308849:12:0","memberName":"upgradeProxy","nodeType":"MemberAccess","referencedDeclaration":17649,"src":"308844:17:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_struct$_Options_$13779_memory_ptr_$returns$__$","typeString":"function (address,string memory,bytes memory,struct Options memory)"}},"id":20227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"308844:50:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20228,"nodeType":"ExpressionStatement","src":"308844:50:0"}]},"documentation":{"id":20208,"nodeType":"StructuredDocumentation","src":"307983:732:0","text":" @dev Upgrades a proxy to a new implementation contract. Only supported for UUPS or transparent proxies.\n Requires that either the `referenceContract` option is set, or the new implementation contract has a `@custom:oz-upgrades-from ` annotation.\n @param proxy Address of the proxy to upgrade\n @param contractName Name of the new implementation contract to upgrade to, e.g. \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n @param data Encoded call data of an arbitrary function to call during the upgrade process, or empty if no function needs to be called during the upgrade\n @param opts Common options"},"id":20230,"implemented":true,"kind":"function","modifiers":[],"name":"upgradeProxy","nameLocation":"308729:12:0","nodeType":"FunctionDefinition","parameters":{"id":20218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20210,"mutability":"mutable","name":"proxy","nameLocation":"308750:5:0","nodeType":"VariableDeclaration","scope":20230,"src":"308742:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20209,"name":"address","nodeType":"ElementaryTypeName","src":"308742:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20212,"mutability":"mutable","name":"contractName","nameLocation":"308771:12:0","nodeType":"VariableDeclaration","scope":20230,"src":"308757:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20211,"name":"string","nodeType":"ElementaryTypeName","src":"308757:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20214,"mutability":"mutable","name":"data","nameLocation":"308798:4:0","nodeType":"VariableDeclaration","scope":20230,"src":"308785:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":20213,"name":"bytes","nodeType":"ElementaryTypeName","src":"308785:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":20217,"mutability":"mutable","name":"opts","nameLocation":"308819:4:0","nodeType":"VariableDeclaration","scope":20230,"src":"308804:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options"},"typeName":{"id":20216,"nodeType":"UserDefinedTypeName","pathNode":{"id":20215,"name":"Options","nameLocations":["308804:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":13779,"src":"308804:7:0"},"referencedDeclaration":13779,"src":"308804:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_storage_ptr","typeString":"struct Options"}},"visibility":"internal"}],"src":"308741:83:0"},"returnParameters":{"id":20219,"nodeType":"ParameterList","parameters":[],"src":"308834:0:0"},"scope":20607,"src":"308720:181:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":20253,"nodeType":"Block","src":"309703:96:0","statements":[{"assignments":[20242],"declarations":[{"constant":false,"id":20242,"mutability":"mutable","name":"opts","nameLocation":"309728:4:0","nodeType":"VariableDeclaration","scope":20253,"src":"309713:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options"},"typeName":{"id":20241,"nodeType":"UserDefinedTypeName","pathNode":{"id":20240,"name":"Options","nameLocations":["309713:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":13779,"src":"309713:7:0"},"referencedDeclaration":13779,"src":"309713:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_storage_ptr","typeString":"struct Options"}},"visibility":"internal"}],"id":20243,"nodeType":"VariableDeclarationStatement","src":"309713:19:0"},{"expression":{"arguments":[{"id":20247,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20233,"src":"309760:5:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20248,"name":"contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20235,"src":"309767:12:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20249,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20237,"src":"309781:4:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":20250,"name":"opts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20242,"src":"309787:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}],"expression":{"id":20244,"name":"Core","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18590,"src":"309742:4:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Core_$18590_$","typeString":"type(library Core)"}},"id":20246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"309747:12:0","memberName":"upgradeProxy","nodeType":"MemberAccess","referencedDeclaration":17649,"src":"309742:17:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_struct$_Options_$13779_memory_ptr_$returns$__$","typeString":"function (address,string memory,bytes memory,struct Options memory)"}},"id":20251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"309742:50:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20252,"nodeType":"ExpressionStatement","src":"309742:50:0"}]},"documentation":{"id":20231,"nodeType":"StructuredDocumentation","src":"308907:698:0","text":" @dev Upgrades a proxy to a new implementation contract. Only supported for UUPS or transparent proxies.\n Requires that either the `referenceContract` option is set, or the new implementation contract has a `@custom:oz-upgrades-from ` annotation.\n @param proxy Address of the proxy to upgrade\n @param contractName Name of the new implementation contract to upgrade to, e.g. \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n @param data Encoded call data of an arbitrary function to call during the upgrade process, or empty if no function needs to be called during the upgrade"},"id":20254,"implemented":true,"kind":"function","modifiers":[],"name":"upgradeProxy","nameLocation":"309619:12:0","nodeType":"FunctionDefinition","parameters":{"id":20238,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20233,"mutability":"mutable","name":"proxy","nameLocation":"309640:5:0","nodeType":"VariableDeclaration","scope":20254,"src":"309632:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20232,"name":"address","nodeType":"ElementaryTypeName","src":"309632:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20235,"mutability":"mutable","name":"contractName","nameLocation":"309661:12:0","nodeType":"VariableDeclaration","scope":20254,"src":"309647:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20234,"name":"string","nodeType":"ElementaryTypeName","src":"309647:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20237,"mutability":"mutable","name":"data","nameLocation":"309688:4:0","nodeType":"VariableDeclaration","scope":20254,"src":"309675:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":20236,"name":"bytes","nodeType":"ElementaryTypeName","src":"309675:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"309631:62:0"},"returnParameters":{"id":20239,"nodeType":"ParameterList","parameters":[],"src":"309703:0:0"},"scope":20607,"src":"309610:189:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":20279,"nodeType":"Block","src":"311205:78:0","statements":[{"expression":{"arguments":[{"id":20272,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20257,"src":"311233:5:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20273,"name":"contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20259,"src":"311240:12:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20274,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20261,"src":"311254:4:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":20275,"name":"opts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20264,"src":"311260:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}},{"id":20276,"name":"tryCaller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20266,"src":"311266:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":20269,"name":"Core","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18590,"src":"311215:4:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Core_$18590_$","typeString":"type(library Core)"}},"id":20271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"311220:12:0","memberName":"upgradeProxy","nodeType":"MemberAccess","referencedDeclaration":17675,"src":"311215:17:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_struct$_Options_$13779_memory_ptr_$_t_address_$returns$__$","typeString":"function (address,string memory,bytes memory,struct Options memory,address)"}},"id":20277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"311215:61:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20278,"nodeType":"ExpressionStatement","src":"311215:61:0"}]},"documentation":{"id":20255,"nodeType":"StructuredDocumentation","src":"309805:1216:0","text":" @notice For tests only. If broadcasting in scripts, use the `--sender
` option with `forge script` instead.\n @dev Upgrades a proxy to a new implementation contract. Only supported for UUPS or transparent proxies.\n Requires that either the `referenceContract` option is set, or the new implementation contract has a `@custom:oz-upgrades-from ` annotation.\n This function provides an additional `tryCaller` parameter to test an upgrade using a specific caller address.\n Use this if you encounter `OwnableUnauthorizedAccount` errors in your tests.\n @param proxy Address of the proxy to upgrade\n @param contractName Name of the new implementation contract to upgrade to, e.g. \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n @param data Encoded call data of an arbitrary function to call during the upgrade process, or empty if no function needs to be called during the upgrade\n @param opts Common options\n @param tryCaller Address to use as the caller of the upgrade function. This should be the address that owns the proxy or its ProxyAdmin."},"id":20280,"implemented":true,"kind":"function","modifiers":[],"name":"upgradeProxy","nameLocation":"311035:12:0","nodeType":"FunctionDefinition","parameters":{"id":20267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20257,"mutability":"mutable","name":"proxy","nameLocation":"311065:5:0","nodeType":"VariableDeclaration","scope":20280,"src":"311057:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20256,"name":"address","nodeType":"ElementaryTypeName","src":"311057:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20259,"mutability":"mutable","name":"contractName","nameLocation":"311094:12:0","nodeType":"VariableDeclaration","scope":20280,"src":"311080:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20258,"name":"string","nodeType":"ElementaryTypeName","src":"311080:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20261,"mutability":"mutable","name":"data","nameLocation":"311129:4:0","nodeType":"VariableDeclaration","scope":20280,"src":"311116:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":20260,"name":"bytes","nodeType":"ElementaryTypeName","src":"311116:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":20264,"mutability":"mutable","name":"opts","nameLocation":"311158:4:0","nodeType":"VariableDeclaration","scope":20280,"src":"311143:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options"},"typeName":{"id":20263,"nodeType":"UserDefinedTypeName","pathNode":{"id":20262,"name":"Options","nameLocations":["311143:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":13779,"src":"311143:7:0"},"referencedDeclaration":13779,"src":"311143:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_storage_ptr","typeString":"struct Options"}},"visibility":"internal"},{"constant":false,"id":20266,"mutability":"mutable","name":"tryCaller","nameLocation":"311180:9:0","nodeType":"VariableDeclaration","scope":20280,"src":"311172:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20265,"name":"address","nodeType":"ElementaryTypeName","src":"311172:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"311047:148:0"},"returnParameters":{"id":20268,"nodeType":"ParameterList","parameters":[],"src":"311205:0:0"},"scope":20607,"src":"311026:257:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":20306,"nodeType":"Block","src":"312588:107:0","statements":[{"assignments":[20294],"declarations":[{"constant":false,"id":20294,"mutability":"mutable","name":"opts","nameLocation":"312613:4:0","nodeType":"VariableDeclaration","scope":20306,"src":"312598:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options"},"typeName":{"id":20293,"nodeType":"UserDefinedTypeName","pathNode":{"id":20292,"name":"Options","nameLocations":["312598:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":13779,"src":"312598:7:0"},"referencedDeclaration":13779,"src":"312598:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_storage_ptr","typeString":"struct Options"}},"visibility":"internal"}],"id":20295,"nodeType":"VariableDeclarationStatement","src":"312598:19:0"},{"expression":{"arguments":[{"id":20299,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20283,"src":"312645:5:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20300,"name":"contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20285,"src":"312652:12:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20301,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20287,"src":"312666:4:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":20302,"name":"opts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20294,"src":"312672:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}},{"id":20303,"name":"tryCaller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20289,"src":"312678:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":20296,"name":"Core","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18590,"src":"312627:4:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Core_$18590_$","typeString":"type(library Core)"}},"id":20298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"312632:12:0","memberName":"upgradeProxy","nodeType":"MemberAccess","referencedDeclaration":17675,"src":"312627:17:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_struct$_Options_$13779_memory_ptr_$_t_address_$returns$__$","typeString":"function (address,string memory,bytes memory,struct Options memory,address)"}},"id":20304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"312627:61:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20305,"nodeType":"ExpressionStatement","src":"312627:61:0"}]},"documentation":{"id":20281,"nodeType":"StructuredDocumentation","src":"311289:1182:0","text":" @notice For tests only. If broadcasting in scripts, use the `--sender
` option with `forge script` instead.\n @dev Upgrades a proxy to a new implementation contract. Only supported for UUPS or transparent proxies.\n Requires that either the `referenceContract` option is set, or the new implementation contract has a `@custom:oz-upgrades-from ` annotation.\n This function provides an additional `tryCaller` parameter to test an upgrade using a specific caller address.\n Use this if you encounter `OwnableUnauthorizedAccount` errors in your tests.\n @param proxy Address of the proxy to upgrade\n @param contractName Name of the new implementation contract to upgrade to, e.g. \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n @param data Encoded call data of an arbitrary function to call during the upgrade process, or empty if no function needs to be called during the upgrade\n @param tryCaller Address to use as the caller of the upgrade function. This should be the address that owns the proxy or its ProxyAdmin."},"id":20307,"implemented":true,"kind":"function","modifiers":[],"name":"upgradeProxy","nameLocation":"312485:12:0","nodeType":"FunctionDefinition","parameters":{"id":20290,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20283,"mutability":"mutable","name":"proxy","nameLocation":"312506:5:0","nodeType":"VariableDeclaration","scope":20307,"src":"312498:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20282,"name":"address","nodeType":"ElementaryTypeName","src":"312498:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20285,"mutability":"mutable","name":"contractName","nameLocation":"312527:12:0","nodeType":"VariableDeclaration","scope":20307,"src":"312513:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20284,"name":"string","nodeType":"ElementaryTypeName","src":"312513:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20287,"mutability":"mutable","name":"data","nameLocation":"312554:4:0","nodeType":"VariableDeclaration","scope":20307,"src":"312541:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":20286,"name":"bytes","nodeType":"ElementaryTypeName","src":"312541:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":20289,"mutability":"mutable","name":"tryCaller","nameLocation":"312568:9:0","nodeType":"VariableDeclaration","scope":20307,"src":"312560:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20288,"name":"address","nodeType":"ElementaryTypeName","src":"312560:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"312497:81:0"},"returnParameters":{"id":20291,"nodeType":"ParameterList","parameters":[],"src":"312588:0:0"},"scope":20607,"src":"312476:219:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":20338,"nodeType":"Block","src":"313324:182:0","statements":[{"assignments":[20321],"declarations":[{"constant":false,"id":20321,"mutability":"mutable","name":"impl","nameLocation":"313342:4:0","nodeType":"VariableDeclaration","scope":20338,"src":"313334:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20320,"name":"address","nodeType":"ElementaryTypeName","src":"313334:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":20326,"initialValue":{"arguments":[{"id":20323,"name":"contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20310,"src":"313370:12:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20324,"name":"opts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20315,"src":"313384:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}],"id":20322,"name":"deployImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20529,"src":"313349:20:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_Options_$13779_memory_ptr_$returns$_t_address_$","typeString":"function (string memory,struct Options memory) returns (address)"}},"id":20325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"313349:40:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"313334:55:0"},{"expression":{"arguments":[{"hexValue":"5570677261646561626c65426561636f6e2e736f6c3a5570677261646561626c65426561636f6e","id":20329,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"313419:41:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_a4bcf04f17569868fe8016abd1ddf8a52286c54ebb0bb3c426d2793aee6de69c","typeString":"literal_string \"UpgradeableBeacon.sol:UpgradeableBeacon\""},"value":"UpgradeableBeacon.sol:UpgradeableBeacon"},{"arguments":[{"id":20332,"name":"impl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20321,"src":"313473:4:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20333,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20312,"src":"313479:12:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":20330,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"313462:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20331,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"313466:6:0","memberName":"encode","nodeType":"MemberAccess","src":"313462:10:0","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":20334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"313462:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":20335,"name":"opts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20315,"src":"313494:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a4bcf04f17569868fe8016abd1ddf8a52286c54ebb0bb3c426d2793aee6de69c","typeString":"literal_string \"UpgradeableBeacon.sol:UpgradeableBeacon\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}],"expression":{"id":20327,"name":"Core","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18590,"src":"313407:4:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Core_$18590_$","typeString":"type(library Core)"}},"id":20328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"313412:6:0","memberName":"deploy","nodeType":"MemberAccess","referencedDeclaration":18518,"src":"313407:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_struct$_Options_$13779_memory_ptr_$returns$_t_address_$","typeString":"function (string memory,bytes memory,struct Options memory) returns (address)"}},"id":20336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"313407:92:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":20319,"id":20337,"nodeType":"Return","src":"313400:99:0"}]},"documentation":{"id":20308,"nodeType":"StructuredDocumentation","src":"312701:468:0","text":" @dev Deploys an upgradeable beacon using the given contract as the implementation.\n @param contractName Name of the contract to use as the implementation, e.g. \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n @param initialOwner Address to set as the owner of the UpgradeableBeacon contract which gets deployed\n @param opts Common options\n @return Beacon address"},"id":20339,"implemented":true,"kind":"function","modifiers":[],"name":"deployBeacon","nameLocation":"313183:12:0","nodeType":"FunctionDefinition","parameters":{"id":20316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20310,"mutability":"mutable","name":"contractName","nameLocation":"313219:12:0","nodeType":"VariableDeclaration","scope":20339,"src":"313205:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20309,"name":"string","nodeType":"ElementaryTypeName","src":"313205:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20312,"mutability":"mutable","name":"initialOwner","nameLocation":"313249:12:0","nodeType":"VariableDeclaration","scope":20339,"src":"313241:20:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20311,"name":"address","nodeType":"ElementaryTypeName","src":"313241:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20315,"mutability":"mutable","name":"opts","nameLocation":"313286:4:0","nodeType":"VariableDeclaration","scope":20339,"src":"313271:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options"},"typeName":{"id":20314,"nodeType":"UserDefinedTypeName","pathNode":{"id":20313,"name":"Options","nameLocations":["313271:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":13779,"src":"313271:7:0"},"referencedDeclaration":13779,"src":"313271:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_storage_ptr","typeString":"struct Options"}},"visibility":"internal"}],"src":"313195:101:0"},"returnParameters":{"id":20319,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20318,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20339,"src":"313315:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20317,"name":"address","nodeType":"ElementaryTypeName","src":"313315:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"313314:9:0"},"scope":20607,"src":"313174:332:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":20359,"nodeType":"Block","src":"314050:99:0","statements":[{"assignments":[20351],"declarations":[{"constant":false,"id":20351,"mutability":"mutable","name":"opts","nameLocation":"314075:4:0","nodeType":"VariableDeclaration","scope":20359,"src":"314060:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options"},"typeName":{"id":20350,"nodeType":"UserDefinedTypeName","pathNode":{"id":20349,"name":"Options","nameLocations":["314060:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":13779,"src":"314060:7:0"},"referencedDeclaration":13779,"src":"314060:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_storage_ptr","typeString":"struct Options"}},"visibility":"internal"}],"id":20352,"nodeType":"VariableDeclarationStatement","src":"314060:19:0"},{"expression":{"arguments":[{"id":20354,"name":"contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20342,"src":"314109:12:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20355,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20344,"src":"314123:12:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20356,"name":"opts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20351,"src":"314137:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}],"id":20353,"name":"deployBeacon","nodeType":"Identifier","overloadedDeclarations":[20339,20360],"referencedDeclaration":20339,"src":"314096:12:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_address_$_t_struct$_Options_$13779_memory_ptr_$returns$_t_address_$","typeString":"function (string memory,address,struct Options memory) returns (address)"}},"id":20357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"314096:46:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":20348,"id":20358,"nodeType":"Return","src":"314089:53:0"}]},"documentation":{"id":20340,"nodeType":"StructuredDocumentation","src":"313512:434:0","text":" @dev Deploys an upgradeable beacon using the given contract as the implementation.\n @param contractName Name of the contract to use as the implementation, e.g. \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n @param initialOwner Address to set as the owner of the UpgradeableBeacon contract which gets deployed\n @return Beacon address"},"id":20360,"implemented":true,"kind":"function","modifiers":[],"name":"deployBeacon","nameLocation":"313960:12:0","nodeType":"FunctionDefinition","parameters":{"id":20345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20342,"mutability":"mutable","name":"contractName","nameLocation":"313987:12:0","nodeType":"VariableDeclaration","scope":20360,"src":"313973:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20341,"name":"string","nodeType":"ElementaryTypeName","src":"313973:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20344,"mutability":"mutable","name":"initialOwner","nameLocation":"314009:12:0","nodeType":"VariableDeclaration","scope":20360,"src":"314001:20:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20343,"name":"address","nodeType":"ElementaryTypeName","src":"314001:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"313972:50:0"},"returnParameters":{"id":20348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20347,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20360,"src":"314041:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20346,"name":"address","nodeType":"ElementaryTypeName","src":"314041:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"314040:9:0"},"scope":20607,"src":"313951:198:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":20379,"nodeType":"Block","src":"314784:63:0","statements":[{"expression":{"arguments":[{"id":20374,"name":"beacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20363,"src":"314813:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20375,"name":"contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20365,"src":"314821:12:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20376,"name":"opts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20368,"src":"314835:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}],"expression":{"id":20371,"name":"Core","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18590,"src":"314794:4:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Core_$18590_$","typeString":"type(library Core)"}},"id":20373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"314799:13:0","memberName":"upgradeBeacon","nodeType":"MemberAccess","referencedDeclaration":17846,"src":"314794:18:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_string_memory_ptr_$_t_struct$_Options_$13779_memory_ptr_$returns$__$","typeString":"function (address,string memory,struct Options memory)"}},"id":20377,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"314794:46:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20378,"nodeType":"ExpressionStatement","src":"314794:46:0"}]},"documentation":{"id":20361,"nodeType":"StructuredDocumentation","src":"314155:527:0","text":" @dev Upgrades a beacon to a new implementation contract.\n Requires that either the `referenceContract` option is set, or the new implementation contract has a `@custom:oz-upgrades-from ` annotation.\n @param beacon Address of the beacon to upgrade\n @param contractName Name of the new implementation contract to upgrade to, e.g. \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n @param opts Common options"},"id":20380,"implemented":true,"kind":"function","modifiers":[],"name":"upgradeBeacon","nameLocation":"314696:13:0","nodeType":"FunctionDefinition","parameters":{"id":20369,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20363,"mutability":"mutable","name":"beacon","nameLocation":"314718:6:0","nodeType":"VariableDeclaration","scope":20380,"src":"314710:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20362,"name":"address","nodeType":"ElementaryTypeName","src":"314710:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20365,"mutability":"mutable","name":"contractName","nameLocation":"314740:12:0","nodeType":"VariableDeclaration","scope":20380,"src":"314726:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20364,"name":"string","nodeType":"ElementaryTypeName","src":"314726:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20368,"mutability":"mutable","name":"opts","nameLocation":"314769:4:0","nodeType":"VariableDeclaration","scope":20380,"src":"314754:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options"},"typeName":{"id":20367,"nodeType":"UserDefinedTypeName","pathNode":{"id":20366,"name":"Options","nameLocations":["314754:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":13779,"src":"314754:7:0"},"referencedDeclaration":13779,"src":"314754:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_storage_ptr","typeString":"struct Options"}},"visibility":"internal"}],"src":"314709:65:0"},"returnParameters":{"id":20370,"nodeType":"ParameterList","parameters":[],"src":"314784:0:0"},"scope":20607,"src":"314687:160:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":20400,"nodeType":"Block","src":"315427:92:0","statements":[{"assignments":[20390],"declarations":[{"constant":false,"id":20390,"mutability":"mutable","name":"opts","nameLocation":"315452:4:0","nodeType":"VariableDeclaration","scope":20400,"src":"315437:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options"},"typeName":{"id":20389,"nodeType":"UserDefinedTypeName","pathNode":{"id":20388,"name":"Options","nameLocations":["315437:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":13779,"src":"315437:7:0"},"referencedDeclaration":13779,"src":"315437:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_storage_ptr","typeString":"struct Options"}},"visibility":"internal"}],"id":20391,"nodeType":"VariableDeclarationStatement","src":"315437:19:0"},{"expression":{"arguments":[{"id":20395,"name":"beacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20383,"src":"315485:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20396,"name":"contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20385,"src":"315493:12:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20397,"name":"opts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20390,"src":"315507:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}],"expression":{"id":20392,"name":"Core","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18590,"src":"315466:4:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Core_$18590_$","typeString":"type(library Core)"}},"id":20394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"315471:13:0","memberName":"upgradeBeacon","nodeType":"MemberAccess","referencedDeclaration":17846,"src":"315466:18:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_string_memory_ptr_$_t_struct$_Options_$13779_memory_ptr_$returns$__$","typeString":"function (address,string memory,struct Options memory)"}},"id":20398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"315466:46:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20399,"nodeType":"ExpressionStatement","src":"315466:46:0"}]},"documentation":{"id":20381,"nodeType":"StructuredDocumentation","src":"314853:493:0","text":" @dev Upgrades a beacon to a new implementation contract.\n Requires that either the `referenceContract` option is set, or the new implementation contract has a `@custom:oz-upgrades-from ` annotation.\n @param beacon Address of the beacon to upgrade\n @param contractName Name of the new implementation contract to upgrade to, e.g. \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory"},"id":20401,"implemented":true,"kind":"function","modifiers":[],"name":"upgradeBeacon","nameLocation":"315360:13:0","nodeType":"FunctionDefinition","parameters":{"id":20386,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20383,"mutability":"mutable","name":"beacon","nameLocation":"315382:6:0","nodeType":"VariableDeclaration","scope":20401,"src":"315374:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20382,"name":"address","nodeType":"ElementaryTypeName","src":"315374:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20385,"mutability":"mutable","name":"contractName","nameLocation":"315404:12:0","nodeType":"VariableDeclaration","scope":20401,"src":"315390:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20384,"name":"string","nodeType":"ElementaryTypeName","src":"315390:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"315373:44:0"},"returnParameters":{"id":20387,"nodeType":"ParameterList","parameters":[],"src":"315427:0:0"},"scope":20607,"src":"315351:168:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":20423,"nodeType":"Block","src":"316678:74:0","statements":[{"expression":{"arguments":[{"id":20417,"name":"beacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20404,"src":"316707:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20418,"name":"contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20406,"src":"316715:12:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20419,"name":"opts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20409,"src":"316729:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}},{"id":20420,"name":"tryCaller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20411,"src":"316735:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":20414,"name":"Core","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18590,"src":"316688:4:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Core_$18590_$","typeString":"type(library Core)"}},"id":20416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"316693:13:0","memberName":"upgradeBeacon","nodeType":"MemberAccess","referencedDeclaration":17869,"src":"316688:18:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_string_memory_ptr_$_t_struct$_Options_$13779_memory_ptr_$_t_address_$returns$__$","typeString":"function (address,string memory,struct Options memory,address)"}},"id":20421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"316688:57:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20422,"nodeType":"ExpressionStatement","src":"316688:57:0"}]},"documentation":{"id":20402,"nodeType":"StructuredDocumentation","src":"315525:994:0","text":" @notice For tests only. If broadcasting in scripts, use the `--sender
` option with `forge script` instead.\n @dev Upgrades a beacon to a new implementation contract.\n Requires that either the `referenceContract` option is set, or the new implementation contract has a `@custom:oz-upgrades-from ` annotation.\n This function provides an additional `tryCaller` parameter to test an upgrade using a specific caller address.\n Use this if you encounter `OwnableUnauthorizedAccount` errors in your tests.\n @param beacon Address of the beacon to upgrade\n @param contractName Name of the new implementation contract to upgrade to, e.g. \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n @param opts Common options\n @param tryCaller Address to use as the caller of the upgrade function. This should be the address that owns the beacon."},"id":20424,"implemented":true,"kind":"function","modifiers":[],"name":"upgradeBeacon","nameLocation":"316533:13:0","nodeType":"FunctionDefinition","parameters":{"id":20412,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20404,"mutability":"mutable","name":"beacon","nameLocation":"316564:6:0","nodeType":"VariableDeclaration","scope":20424,"src":"316556:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20403,"name":"address","nodeType":"ElementaryTypeName","src":"316556:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20406,"mutability":"mutable","name":"contractName","nameLocation":"316594:12:0","nodeType":"VariableDeclaration","scope":20424,"src":"316580:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20405,"name":"string","nodeType":"ElementaryTypeName","src":"316580:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20409,"mutability":"mutable","name":"opts","nameLocation":"316631:4:0","nodeType":"VariableDeclaration","scope":20424,"src":"316616:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options"},"typeName":{"id":20408,"nodeType":"UserDefinedTypeName","pathNode":{"id":20407,"name":"Options","nameLocations":["316616:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":13779,"src":"316616:7:0"},"referencedDeclaration":13779,"src":"316616:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_storage_ptr","typeString":"struct Options"}},"visibility":"internal"},{"constant":false,"id":20411,"mutability":"mutable","name":"tryCaller","nameLocation":"316653:9:0","nodeType":"VariableDeclaration","scope":20424,"src":"316645:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20410,"name":"address","nodeType":"ElementaryTypeName","src":"316645:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"316546:122:0"},"returnParameters":{"id":20413,"nodeType":"ParameterList","parameters":[],"src":"316678:0:0"},"scope":20607,"src":"316524:228:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":20447,"nodeType":"Block","src":"317818:103:0","statements":[{"assignments":[20436],"declarations":[{"constant":false,"id":20436,"mutability":"mutable","name":"opts","nameLocation":"317843:4:0","nodeType":"VariableDeclaration","scope":20447,"src":"317828:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options"},"typeName":{"id":20435,"nodeType":"UserDefinedTypeName","pathNode":{"id":20434,"name":"Options","nameLocations":["317828:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":13779,"src":"317828:7:0"},"referencedDeclaration":13779,"src":"317828:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_storage_ptr","typeString":"struct Options"}},"visibility":"internal"}],"id":20437,"nodeType":"VariableDeclarationStatement","src":"317828:19:0"},{"expression":{"arguments":[{"id":20441,"name":"beacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20427,"src":"317876:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20442,"name":"contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20429,"src":"317884:12:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20443,"name":"opts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20436,"src":"317898:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}},{"id":20444,"name":"tryCaller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20431,"src":"317904:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":20438,"name":"Core","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18590,"src":"317857:4:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Core_$18590_$","typeString":"type(library Core)"}},"id":20440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"317862:13:0","memberName":"upgradeBeacon","nodeType":"MemberAccess","referencedDeclaration":17869,"src":"317857:18:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_string_memory_ptr_$_t_struct$_Options_$13779_memory_ptr_$_t_address_$returns$__$","typeString":"function (address,string memory,struct Options memory,address)"}},"id":20445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"317857:57:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20446,"nodeType":"ExpressionStatement","src":"317857:57:0"}]},"documentation":{"id":20425,"nodeType":"StructuredDocumentation","src":"316758:960:0","text":" @notice For tests only. If broadcasting in scripts, use the `--sender
` option with `forge script` instead.\n @dev Upgrades a beacon to a new implementation contract.\n Requires that either the `referenceContract` option is set, or the new implementation contract has a `@custom:oz-upgrades-from ` annotation.\n This function provides an additional `tryCaller` parameter to test an upgrade using a specific caller address.\n Use this if you encounter `OwnableUnauthorizedAccount` errors in your tests.\n @param beacon Address of the beacon to upgrade\n @param contractName Name of the new implementation contract to upgrade to, e.g. \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n @param tryCaller Address to use as the caller of the upgrade function. This should be the address that owns the beacon."},"id":20448,"implemented":true,"kind":"function","modifiers":[],"name":"upgradeBeacon","nameLocation":"317732:13:0","nodeType":"FunctionDefinition","parameters":{"id":20432,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20427,"mutability":"mutable","name":"beacon","nameLocation":"317754:6:0","nodeType":"VariableDeclaration","scope":20448,"src":"317746:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20426,"name":"address","nodeType":"ElementaryTypeName","src":"317746:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20429,"mutability":"mutable","name":"contractName","nameLocation":"317776:12:0","nodeType":"VariableDeclaration","scope":20448,"src":"317762:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20428,"name":"string","nodeType":"ElementaryTypeName","src":"317762:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20431,"mutability":"mutable","name":"tryCaller","nameLocation":"317798:9:0","nodeType":"VariableDeclaration","scope":20448,"src":"317790:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20430,"name":"address","nodeType":"ElementaryTypeName","src":"317790:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"317745:63:0"},"returnParameters":{"id":20433,"nodeType":"ParameterList","parameters":[],"src":"317818:0:0"},"scope":20607,"src":"317723:198:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":20468,"nodeType":"Block","src":"318336:90:0","statements":[{"assignments":[20460],"declarations":[{"constant":false,"id":20460,"mutability":"mutable","name":"opts","nameLocation":"318361:4:0","nodeType":"VariableDeclaration","scope":20468,"src":"318346:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options"},"typeName":{"id":20459,"nodeType":"UserDefinedTypeName","pathNode":{"id":20458,"name":"Options","nameLocations":["318346:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":13779,"src":"318346:7:0"},"referencedDeclaration":13779,"src":"318346:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_storage_ptr","typeString":"struct Options"}},"visibility":"internal"}],"id":20461,"nodeType":"VariableDeclarationStatement","src":"318346:19:0"},{"expression":{"arguments":[{"id":20463,"name":"beacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20451,"src":"318400:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20464,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20453,"src":"318408:4:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":20465,"name":"opts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20460,"src":"318414:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}],"id":20462,"name":"deployBeaconProxy","nodeType":"Identifier","overloadedDeclarations":[20469,20494],"referencedDeclaration":20494,"src":"318382:17:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_struct$_Options_$13779_memory_ptr_$returns$_t_address_$","typeString":"function (address,bytes memory,struct Options memory) returns (address)"}},"id":20466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"318382:37:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":20457,"id":20467,"nodeType":"Return","src":"318375:44:0"}]},"documentation":{"id":20449,"nodeType":"StructuredDocumentation","src":"317927:315:0","text":" @dev Deploys a beacon proxy using the given beacon and call data.\n @param beacon Address of the beacon to use\n @param data Encoded call data of the initializer function to call during creation of the proxy, or empty if no initialization is required\n @return Proxy address"},"id":20469,"implemented":true,"kind":"function","modifiers":[],"name":"deployBeaconProxy","nameLocation":"318256:17:0","nodeType":"FunctionDefinition","parameters":{"id":20454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20451,"mutability":"mutable","name":"beacon","nameLocation":"318282:6:0","nodeType":"VariableDeclaration","scope":20469,"src":"318274:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20450,"name":"address","nodeType":"ElementaryTypeName","src":"318274:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20453,"mutability":"mutable","name":"data","nameLocation":"318303:4:0","nodeType":"VariableDeclaration","scope":20469,"src":"318290:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":20452,"name":"bytes","nodeType":"ElementaryTypeName","src":"318290:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"318273:35:0"},"returnParameters":{"id":20457,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20456,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20469,"src":"318327:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20455,"name":"address","nodeType":"ElementaryTypeName","src":"318327:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"318326:9:0"},"scope":20607,"src":"318247:179:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":20493,"nodeType":"Block","src":"318896:98:0","statements":[{"expression":{"arguments":[{"hexValue":"426561636f6e50726f78792e736f6c3a426561636f6e50726f7879","id":20484,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"318925:29:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_542524bc795f47ccffc050af375f5dc6da21a91d2c9840da85fbcd43dcffd3b9","typeString":"literal_string \"BeaconProxy.sol:BeaconProxy\""},"value":"BeaconProxy.sol:BeaconProxy"},{"arguments":[{"id":20487,"name":"beacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20472,"src":"318967:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20488,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20474,"src":"318975:4:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":20485,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"318956:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20486,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"318960:6:0","memberName":"encode","nodeType":"MemberAccess","src":"318956:10:0","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":20489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"318956:24:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":20490,"name":"opts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20477,"src":"318982:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_542524bc795f47ccffc050af375f5dc6da21a91d2c9840da85fbcd43dcffd3b9","typeString":"literal_string \"BeaconProxy.sol:BeaconProxy\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}],"expression":{"id":20482,"name":"Core","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18590,"src":"318913:4:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Core_$18590_$","typeString":"type(library Core)"}},"id":20483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"318918:6:0","memberName":"deploy","nodeType":"MemberAccess","referencedDeclaration":18518,"src":"318913:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_struct$_Options_$13779_memory_ptr_$returns$_t_address_$","typeString":"function (string memory,bytes memory,struct Options memory) returns (address)"}},"id":20491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"318913:74:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":20481,"id":20492,"nodeType":"Return","src":"318906:81:0"}]},"documentation":{"id":20470,"nodeType":"StructuredDocumentation","src":"318432:349:0","text":" @dev Deploys a beacon proxy using the given beacon and call data.\n @param beacon Address of the beacon to use\n @param data Encoded call data of the initializer function to call during creation of the proxy, or empty if no initialization is required\n @param opts Common options\n @return Proxy address"},"id":20494,"implemented":true,"kind":"function","modifiers":[],"name":"deployBeaconProxy","nameLocation":"318795:17:0","nodeType":"FunctionDefinition","parameters":{"id":20478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20472,"mutability":"mutable","name":"beacon","nameLocation":"318821:6:0","nodeType":"VariableDeclaration","scope":20494,"src":"318813:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20471,"name":"address","nodeType":"ElementaryTypeName","src":"318813:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20474,"mutability":"mutable","name":"data","nameLocation":"318842:4:0","nodeType":"VariableDeclaration","scope":20494,"src":"318829:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":20473,"name":"bytes","nodeType":"ElementaryTypeName","src":"318829:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":20477,"mutability":"mutable","name":"opts","nameLocation":"318863:4:0","nodeType":"VariableDeclaration","scope":20494,"src":"318848:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options"},"typeName":{"id":20476,"nodeType":"UserDefinedTypeName","pathNode":{"id":20475,"name":"Options","nameLocations":["318848:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":13779,"src":"318848:7:0"},"referencedDeclaration":13779,"src":"318848:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_storage_ptr","typeString":"struct Options"}},"visibility":"internal"}],"src":"318812:56:0"},"returnParameters":{"id":20481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20480,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20494,"src":"318887:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20479,"name":"address","nodeType":"ElementaryTypeName","src":"318887:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"318886:9:0"},"scope":20607,"src":"318786:208:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":20510,"nodeType":"Block","src":"319391:64:0","statements":[{"expression":{"arguments":[{"id":20506,"name":"contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20497,"src":"319429:12:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20507,"name":"opts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20500,"src":"319443:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}],"expression":{"id":20503,"name":"Core","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18590,"src":"319401:4:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Core_$18590_$","typeString":"type(library Core)"}},"id":20505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"319406:22:0","memberName":"validateImplementation","nodeType":"MemberAccess","referencedDeclaration":17920,"src":"319401:27:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_Options_$13779_memory_ptr_$returns$__$","typeString":"function (string memory,struct Options memory)"}},"id":20508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"319401:47:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20509,"nodeType":"ExpressionStatement","src":"319401:47:0"}]},"documentation":{"id":20495,"nodeType":"StructuredDocumentation","src":"319000:296:0","text":" @dev Validates an implementation contract, but does not deploy it.\n @param contractName Name of the contract to validate, e.g. \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n @param opts Common options"},"id":20511,"implemented":true,"kind":"function","modifiers":[],"name":"validateImplementation","nameLocation":"319310:22:0","nodeType":"FunctionDefinition","parameters":{"id":20501,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20497,"mutability":"mutable","name":"contractName","nameLocation":"319347:12:0","nodeType":"VariableDeclaration","scope":20511,"src":"319333:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20496,"name":"string","nodeType":"ElementaryTypeName","src":"319333:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20500,"mutability":"mutable","name":"opts","nameLocation":"319376:4:0","nodeType":"VariableDeclaration","scope":20511,"src":"319361:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options"},"typeName":{"id":20499,"nodeType":"UserDefinedTypeName","pathNode":{"id":20498,"name":"Options","nameLocations":["319361:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":13779,"src":"319361:7:0"},"referencedDeclaration":13779,"src":"319361:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_storage_ptr","typeString":"struct Options"}},"visibility":"internal"}],"src":"319332:49:0"},"returnParameters":{"id":20502,"nodeType":"ParameterList","parameters":[],"src":"319391:0:0"},"scope":20607,"src":"319301:154:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":20528,"nodeType":"Block","src":"319933:69:0","statements":[{"expression":{"arguments":[{"id":20524,"name":"contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20514,"src":"319976:12:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20525,"name":"opts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20517,"src":"319990:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}],"expression":{"id":20522,"name":"Core","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18590,"src":"319950:4:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Core_$18590_$","typeString":"type(library Core)"}},"id":20523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"319955:20:0","memberName":"deployImplementation","nodeType":"MemberAccess","referencedDeclaration":17944,"src":"319950:25:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_Options_$13779_memory_ptr_$returns$_t_address_$","typeString":"function (string memory,struct Options memory) returns (address)"}},"id":20526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"319950:45:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":20521,"id":20527,"nodeType":"Return","src":"319943:52:0"}]},"documentation":{"id":20512,"nodeType":"StructuredDocumentation","src":"319461:361:0","text":" @dev Validates and deploys an implementation contract, and returns its address.\n @param contractName Name of the contract to deploy, e.g. \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n @param opts Common options\n @return Address of the implementation contract"},"id":20529,"implemented":true,"kind":"function","modifiers":[],"name":"deployImplementation","nameLocation":"319836:20:0","nodeType":"FunctionDefinition","parameters":{"id":20518,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20514,"mutability":"mutable","name":"contractName","nameLocation":"319871:12:0","nodeType":"VariableDeclaration","scope":20529,"src":"319857:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20513,"name":"string","nodeType":"ElementaryTypeName","src":"319857:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20517,"mutability":"mutable","name":"opts","nameLocation":"319900:4:0","nodeType":"VariableDeclaration","scope":20529,"src":"319885:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options"},"typeName":{"id":20516,"nodeType":"UserDefinedTypeName","pathNode":{"id":20515,"name":"Options","nameLocations":["319885:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":13779,"src":"319885:7:0"},"referencedDeclaration":13779,"src":"319885:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_storage_ptr","typeString":"struct Options"}},"visibility":"internal"}],"src":"319856:49:0"},"returnParameters":{"id":20521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20520,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20529,"src":"319924:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20519,"name":"address","nodeType":"ElementaryTypeName","src":"319924:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"319923:9:0"},"scope":20607,"src":"319827:175:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":20545,"nodeType":"Block","src":"320582:57:0","statements":[{"expression":{"arguments":[{"id":20541,"name":"contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20532,"src":"320613:12:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20542,"name":"opts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20535,"src":"320627:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}],"expression":{"id":20538,"name":"Core","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18590,"src":"320592:4:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Core_$18590_$","typeString":"type(library Core)"}},"id":20540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"320597:15:0","memberName":"validateUpgrade","nodeType":"MemberAccess","referencedDeclaration":17960,"src":"320592:20:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_Options_$13779_memory_ptr_$returns$__$","typeString":"function (string memory,struct Options memory)"}},"id":20543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"320592:40:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20544,"nodeType":"ExpressionStatement","src":"320592:40:0"}]},"documentation":{"id":20530,"nodeType":"StructuredDocumentation","src":"320008:486:0","text":" @dev Validates a new implementation contract in comparison with a reference contract, but does not deploy it.\n Requires that either the `referenceContract` option is set, or the contract has a `@custom:oz-upgrades-from ` annotation.\n @param contractName Name of the contract to validate, e.g. \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n @param opts Common options"},"id":20546,"implemented":true,"kind":"function","modifiers":[],"name":"validateUpgrade","nameLocation":"320508:15:0","nodeType":"FunctionDefinition","parameters":{"id":20536,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20532,"mutability":"mutable","name":"contractName","nameLocation":"320538:12:0","nodeType":"VariableDeclaration","scope":20546,"src":"320524:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20531,"name":"string","nodeType":"ElementaryTypeName","src":"320524:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20535,"mutability":"mutable","name":"opts","nameLocation":"320567:4:0","nodeType":"VariableDeclaration","scope":20546,"src":"320552:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options"},"typeName":{"id":20534,"nodeType":"UserDefinedTypeName","pathNode":{"id":20533,"name":"Options","nameLocations":["320552:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":13779,"src":"320552:7:0"},"referencedDeclaration":13779,"src":"320552:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_storage_ptr","typeString":"struct Options"}},"visibility":"internal"}],"src":"320523:49:0"},"returnParameters":{"id":20537,"nodeType":"ParameterList","parameters":[],"src":"320582:0:0"},"scope":20607,"src":"320499:140:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":20563,"nodeType":"Block","src":"321501:63:0","statements":[{"expression":{"arguments":[{"id":20559,"name":"contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20549,"src":"321538:12:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20560,"name":"opts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20552,"src":"321552:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options memory"}],"expression":{"id":20557,"name":"Core","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18590,"src":"321518:4:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Core_$18590_$","typeString":"type(library Core)"}},"id":20558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"321523:14:0","memberName":"prepareUpgrade","nodeType":"MemberAccess","referencedDeclaration":17984,"src":"321518:19:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_Options_$13779_memory_ptr_$returns$_t_address_$","typeString":"function (string memory,struct Options memory) returns (address)"}},"id":20561,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"321518:39:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":20556,"id":20562,"nodeType":"Return","src":"321511:46:0"}]},"documentation":{"id":20547,"nodeType":"StructuredDocumentation","src":"320645:751:0","text":" @dev Validates a new implementation contract in comparison with a reference contract, deploys the new implementation contract,\n and returns its address.\n Requires that either the `referenceContract` option is set, or the contract has a `@custom:oz-upgrades-from ` annotation.\n Use this method to prepare an upgrade to be run from an admin address you do not control directly or cannot use from your deployment environment.\n @param contractName Name of the contract to deploy, e.g. \"MyContract.sol\" or \"MyContract.sol:MyContract\" or artifact path relative to the project root directory\n @param opts Common options\n @return Address of the new implementation contract"},"id":20564,"implemented":true,"kind":"function","modifiers":[],"name":"prepareUpgrade","nameLocation":"321410:14:0","nodeType":"FunctionDefinition","parameters":{"id":20553,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20549,"mutability":"mutable","name":"contractName","nameLocation":"321439:12:0","nodeType":"VariableDeclaration","scope":20564,"src":"321425:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20548,"name":"string","nodeType":"ElementaryTypeName","src":"321425:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20552,"mutability":"mutable","name":"opts","nameLocation":"321468:4:0","nodeType":"VariableDeclaration","scope":20564,"src":"321453:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_memory_ptr","typeString":"struct Options"},"typeName":{"id":20551,"nodeType":"UserDefinedTypeName","pathNode":{"id":20550,"name":"Options","nameLocations":["321453:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":13779,"src":"321453:7:0"},"referencedDeclaration":13779,"src":"321453:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Options_$13779_storage_ptr","typeString":"struct Options"}},"visibility":"internal"}],"src":"321424:49:0"},"returnParameters":{"id":20556,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20555,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20564,"src":"321492:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20554,"name":"address","nodeType":"ElementaryTypeName","src":"321492:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"321491:9:0"},"scope":20607,"src":"321401:163:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":20577,"nodeType":"Block","src":"321840:51:0","statements":[{"expression":{"arguments":[{"id":20574,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20567,"src":"321878:5:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":20572,"name":"Core","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18590,"src":"321857:4:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Core_$18590_$","typeString":"type(library Core)"}},"id":20573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"321862:15:0","memberName":"getAdminAddress","nodeType":"MemberAccess","referencedDeclaration":18020,"src":"321857:20:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":20575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"321857:27:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":20571,"id":20576,"nodeType":"Return","src":"321850:34:0"}]},"documentation":{"id":20565,"nodeType":"StructuredDocumentation","src":"321570:193:0","text":" @dev Gets the admin address of a transparent proxy from its ERC1967 admin storage slot.\n @param proxy Address of a transparent proxy\n @return Admin address"},"id":20578,"implemented":true,"kind":"function","modifiers":[],"name":"getAdminAddress","nameLocation":"321777:15:0","nodeType":"FunctionDefinition","parameters":{"id":20568,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20567,"mutability":"mutable","name":"proxy","nameLocation":"321801:5:0","nodeType":"VariableDeclaration","scope":20578,"src":"321793:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20566,"name":"address","nodeType":"ElementaryTypeName","src":"321793:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"321792:15:0"},"returnParameters":{"id":20571,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20570,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20578,"src":"321831:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20569,"name":"address","nodeType":"ElementaryTypeName","src":"321831:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"321830:9:0"},"scope":20607,"src":"321768:123:0","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":20591,"nodeType":"Block","src":"322219:60:0","statements":[{"expression":{"arguments":[{"id":20588,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20581,"src":"322266:5:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":20586,"name":"Core","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18590,"src":"322236:4:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Core_$18590_$","typeString":"type(library Core)"}},"id":20587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"322241:24:0","memberName":"getImplementationAddress","nodeType":"MemberAccess","referencedDeclaration":18056,"src":"322236:29:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":20589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"322236:36:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":20585,"id":20590,"nodeType":"Return","src":"322229:43:0"}]},"documentation":{"id":20579,"nodeType":"StructuredDocumentation","src":"321897:236:0","text":" @dev Gets the implementation address of a transparent or UUPS proxy from its ERC1967 implementation storage slot.\n @param proxy Address of a transparent or UUPS proxy\n @return Implementation address"},"id":20592,"implemented":true,"kind":"function","modifiers":[],"name":"getImplementationAddress","nameLocation":"322147:24:0","nodeType":"FunctionDefinition","parameters":{"id":20582,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20581,"mutability":"mutable","name":"proxy","nameLocation":"322180:5:0","nodeType":"VariableDeclaration","scope":20592,"src":"322172:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20580,"name":"address","nodeType":"ElementaryTypeName","src":"322172:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"322171:15:0"},"returnParameters":{"id":20585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20584,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20592,"src":"322210:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20583,"name":"address","nodeType":"ElementaryTypeName","src":"322210:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"322209:9:0"},"scope":20607,"src":"322138:141:0","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":20605,"nodeType":"Block","src":"322549:52:0","statements":[{"expression":{"arguments":[{"id":20602,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20595,"src":"322588:5:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":20600,"name":"Core","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18590,"src":"322566:4:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Core_$18590_$","typeString":"type(library Core)"}},"id":20601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"322571:16:0","memberName":"getBeaconAddress","nodeType":"MemberAccess","referencedDeclaration":18092,"src":"322566:21:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":20603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"322566:28:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":20599,"id":20604,"nodeType":"Return","src":"322559:35:0"}]},"documentation":{"id":20593,"nodeType":"StructuredDocumentation","src":"322285:186:0","text":" @dev Gets the beacon address of a beacon proxy from its ERC1967 beacon storage slot.\n @param proxy Address of a beacon proxy\n @return Beacon address"},"id":20606,"implemented":true,"kind":"function","modifiers":[],"name":"getBeaconAddress","nameLocation":"322485:16:0","nodeType":"FunctionDefinition","parameters":{"id":20596,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20595,"mutability":"mutable","name":"proxy","nameLocation":"322510:5:0","nodeType":"VariableDeclaration","scope":20606,"src":"322502:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20594,"name":"address","nodeType":"ElementaryTypeName","src":"322502:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"322501:15:0"},"returnParameters":{"id":20599,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20598,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20606,"src":"322540:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20597,"name":"address","nodeType":"ElementaryTypeName","src":"322540:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"322539:9:0"},"scope":20607,"src":"322476:125:0","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":20815,"src":"304383:18220:0","usedErrors":[],"usedEvents":[]},{"abstract":false,"baseContracts":[],"canonicalName":"UnsafeUpgrades","contractDependencies":[],"contractKind":"library","documentation":{"id":20608,"nodeType":"StructuredDocumentation","src":"322605:669:0","text":" @dev Library for deploying and managing upgradeable contracts from Forge tests, without validations.\n Can be used with `forge coverage`. Requires implementation contracts to be instantiated first.\n Does not require `--ffi` and does not require a clean compilation before each run.\n Not supported for OpenZeppelin Defender deployments.\n WARNING: Not recommended for use in Forge scripts.\n `UnsafeUpgrades` does not validate whether your contracts are upgrade safe or whether new implementations are compatible with previous ones.\n Use `Upgrades` if you want validations to be run.\n NOTE: Requires OpenZeppelin Contracts v5 or higher."},"fullyImplemented":true,"id":20814,"linearizedBaseContracts":[20814],"name":"UnsafeUpgrades","nameLocation":"323283:14:0","nodeType":"ContractDefinition","nodes":[{"body":{"id":20628,"nodeType":"Block","src":"323769:72:0","statements":[{"expression":{"arguments":[{"arguments":[{"id":20623,"name":"impl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20611,"src":"323811:4:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20624,"name":"initializerData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20613,"src":"323817:15:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"323794:16:0","typeDescriptions":{"typeIdentifier":"t_function_creation_payable$_t_address_$_t_bytes_memory_ptr_$returns$_t_contract$_ERC1967Proxy_$17243_$","typeString":"function (address,bytes memory) payable returns (contract ERC1967Proxy)"},"typeName":{"id":20621,"nodeType":"UserDefinedTypeName","pathNode":{"id":20620,"name":"ERC1967Proxy","nameLocations":["323798:12:0"],"nodeType":"IdentifierPath","referencedDeclaration":17243,"src":"323798:12:0"},"referencedDeclaration":17243,"src":"323798:12:0","typeDescriptions":{"typeIdentifier":"t_contract$_ERC1967Proxy_$17243","typeString":"contract ERC1967Proxy"}}},"id":20625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"323794:39:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC1967Proxy_$17243","typeString":"contract ERC1967Proxy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC1967Proxy_$17243","typeString":"contract ERC1967Proxy"}],"id":20619,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"323786:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":20618,"name":"address","nodeType":"ElementaryTypeName","src":"323786:7:0","typeDescriptions":{}}},"id":20626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"323786:48:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":20617,"id":20627,"nodeType":"Return","src":"323779:55:0"}]},"documentation":{"id":20609,"nodeType":"StructuredDocumentation","src":"323304:364:0","text":" @dev Deploys a UUPS proxy using the given contract address as the implementation.\n @param impl Address of the contract to use as the implementation\n @param initializerData Encoded call data of the initializer function to call during creation of the proxy, or empty if no initialization is required\n @return Proxy address"},"id":20629,"implemented":true,"kind":"function","modifiers":[],"name":"deployUUPSProxy","nameLocation":"323682:15:0","nodeType":"FunctionDefinition","parameters":{"id":20614,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20611,"mutability":"mutable","name":"impl","nameLocation":"323706:4:0","nodeType":"VariableDeclaration","scope":20629,"src":"323698:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20610,"name":"address","nodeType":"ElementaryTypeName","src":"323698:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20613,"mutability":"mutable","name":"initializerData","nameLocation":"323725:15:0","nodeType":"VariableDeclaration","scope":20629,"src":"323712:28:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":20612,"name":"bytes","nodeType":"ElementaryTypeName","src":"323712:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"323697:44:0"},"returnParameters":{"id":20617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20616,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20629,"src":"323760:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20615,"name":"address","nodeType":"ElementaryTypeName","src":"323760:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"323759:9:0"},"scope":20814,"src":"323673:168:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":20652,"nodeType":"Block","src":"324493:101:0","statements":[{"expression":{"arguments":[{"arguments":[{"id":20646,"name":"impl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20632,"src":"324550:4:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20647,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20634,"src":"324556:12:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20648,"name":"initializerData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20636,"src":"324570:15:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"324518:31:0","typeDescriptions":{"typeIdentifier":"t_function_creation_payable$_t_address_$_t_address_$_t_bytes_memory_ptr_$returns$_t_contract$_TransparentUpgradeableProxy_$17460_$","typeString":"function (address,address,bytes memory) payable returns (contract TransparentUpgradeableProxy)"},"typeName":{"id":20644,"nodeType":"UserDefinedTypeName","pathNode":{"id":20643,"name":"TransparentUpgradeableProxy","nameLocations":["324522:27:0"],"nodeType":"IdentifierPath","referencedDeclaration":17460,"src":"324522:27:0"},"referencedDeclaration":17460,"src":"324522:27:0","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$17460","typeString":"contract TransparentUpgradeableProxy"}}},"id":20649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"324518:68:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$17460","typeString":"contract TransparentUpgradeableProxy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$17460","typeString":"contract TransparentUpgradeableProxy"}],"id":20642,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"324510:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":20641,"name":"address","nodeType":"ElementaryTypeName","src":"324510:7:0","typeDescriptions":{}}},"id":20650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"324510:77:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":20640,"id":20651,"nodeType":"Return","src":"324503:84:0"}]},"documentation":{"id":20630,"nodeType":"StructuredDocumentation","src":"323847:486:0","text":" @dev Deploys a transparent proxy using the given contract address as the implementation.\n @param impl Address of the contract to use as the implementation\n @param initialOwner Address to set as the owner of the ProxyAdmin contract which gets deployed by the proxy\n @param initializerData Encoded call data of the initializer function to call during creation of the proxy, or empty if no initialization is required\n @return Proxy address"},"id":20653,"implemented":true,"kind":"function","modifiers":[],"name":"deployTransparentProxy","nameLocation":"324347:22:0","nodeType":"FunctionDefinition","parameters":{"id":20637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20632,"mutability":"mutable","name":"impl","nameLocation":"324387:4:0","nodeType":"VariableDeclaration","scope":20653,"src":"324379:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20631,"name":"address","nodeType":"ElementaryTypeName","src":"324379:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20634,"mutability":"mutable","name":"initialOwner","nameLocation":"324409:12:0","nodeType":"VariableDeclaration","scope":20653,"src":"324401:20:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20633,"name":"address","nodeType":"ElementaryTypeName","src":"324401:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20636,"mutability":"mutable","name":"initializerData","nameLocation":"324444:15:0","nodeType":"VariableDeclaration","scope":20653,"src":"324431:28:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":20635,"name":"bytes","nodeType":"ElementaryTypeName","src":"324431:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"324369:96:0"},"returnParameters":{"id":20640,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20639,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20653,"src":"324484:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20638,"name":"address","nodeType":"ElementaryTypeName","src":"324484:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"324483:9:0"},"scope":20814,"src":"324338:256:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":20671,"nodeType":"Block","src":"325115:58:0","statements":[{"expression":{"arguments":[{"id":20666,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20656,"src":"325145:5:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20667,"name":"newImpl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20658,"src":"325152:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20668,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20660,"src":"325161:4:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":20663,"name":"Core","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18590,"src":"325125:4:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Core_$18590_$","typeString":"type(library Core)"}},"id":20665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"325130:14:0","memberName":"upgradeProxyTo","nodeType":"MemberAccess","referencedDeclaration":17800,"src":"325125:19:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,bytes memory)"}},"id":20669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"325125:41:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20670,"nodeType":"ExpressionStatement","src":"325125:41:0"}]},"documentation":{"id":20654,"nodeType":"StructuredDocumentation","src":"324600:428:0","text":" @dev Upgrades a proxy to a new implementation contract address. Only supported for UUPS or transparent proxies.\n @param proxy Address of the proxy to upgrade\n @param newImpl Address of the new implementation contract to upgrade to\n @param data Encoded call data of an arbitrary function to call during the upgrade process, or empty if no function needs to be called during the upgrade"},"id":20672,"implemented":true,"kind":"function","modifiers":[],"name":"upgradeProxy","nameLocation":"325042:12:0","nodeType":"FunctionDefinition","parameters":{"id":20661,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20656,"mutability":"mutable","name":"proxy","nameLocation":"325063:5:0","nodeType":"VariableDeclaration","scope":20672,"src":"325055:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20655,"name":"address","nodeType":"ElementaryTypeName","src":"325055:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20658,"mutability":"mutable","name":"newImpl","nameLocation":"325078:7:0","nodeType":"VariableDeclaration","scope":20672,"src":"325070:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20657,"name":"address","nodeType":"ElementaryTypeName","src":"325070:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20660,"mutability":"mutable","name":"data","nameLocation":"325100:4:0","nodeType":"VariableDeclaration","scope":20672,"src":"325087:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":20659,"name":"bytes","nodeType":"ElementaryTypeName","src":"325087:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"325054:51:0"},"returnParameters":{"id":20662,"nodeType":"ParameterList","parameters":[],"src":"325115:0:0"},"scope":20814,"src":"325033:140:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":20693,"nodeType":"Block","src":"326197:69:0","statements":[{"expression":{"arguments":[{"id":20687,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20675,"src":"326227:5:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20688,"name":"newImpl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20677,"src":"326234:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20689,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20679,"src":"326243:4:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":20690,"name":"tryCaller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20681,"src":"326249:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":20684,"name":"Core","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18590,"src":"326207:4:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Core_$18590_$","typeString":"type(library Core)"}},"id":20686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"326212:14:0","memberName":"upgradeProxyTo","nodeType":"MemberAccess","referencedDeclaration":17822,"src":"326207:19:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_bytes_memory_ptr_$_t_address_$returns$__$","typeString":"function (address,address,bytes memory,address)"}},"id":20691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"326207:52:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20692,"nodeType":"ExpressionStatement","src":"326207:52:0"}]},"documentation":{"id":20673,"nodeType":"StructuredDocumentation","src":"325179:912:0","text":" @notice For tests only. If broadcasting in scripts, use the `--sender
` option with `forge script` instead.\n @dev Upgrades a proxy to a new implementation contract address. Only supported for UUPS or transparent proxies.\n This function provides an additional `tryCaller` parameter to test an upgrade using a specific caller address.\n Use this if you encounter `OwnableUnauthorizedAccount` errors in your tests.\n @param proxy Address of the proxy to upgrade\n @param newImpl Address of the new implementation contract to upgrade to\n @param data Encoded call data of an arbitrary function to call during the upgrade process, or empty if no function needs to be called during the upgrade\n @param tryCaller Address to use as the caller of the upgrade function. This should be the address that owns the proxy or its ProxyAdmin."},"id":20694,"implemented":true,"kind":"function","modifiers":[],"name":"upgradeProxy","nameLocation":"326105:12:0","nodeType":"FunctionDefinition","parameters":{"id":20682,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20675,"mutability":"mutable","name":"proxy","nameLocation":"326126:5:0","nodeType":"VariableDeclaration","scope":20694,"src":"326118:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20674,"name":"address","nodeType":"ElementaryTypeName","src":"326118:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20677,"mutability":"mutable","name":"newImpl","nameLocation":"326141:7:0","nodeType":"VariableDeclaration","scope":20694,"src":"326133:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20676,"name":"address","nodeType":"ElementaryTypeName","src":"326133:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20679,"mutability":"mutable","name":"data","nameLocation":"326163:4:0","nodeType":"VariableDeclaration","scope":20694,"src":"326150:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":20678,"name":"bytes","nodeType":"ElementaryTypeName","src":"326150:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":20681,"mutability":"mutable","name":"tryCaller","nameLocation":"326177:9:0","nodeType":"VariableDeclaration","scope":20694,"src":"326169:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20680,"name":"address","nodeType":"ElementaryTypeName","src":"326169:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"326117:70:0"},"returnParameters":{"id":20683,"nodeType":"ParameterList","parameters":[],"src":"326197:0:0"},"scope":20814,"src":"326096:170:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":20714,"nodeType":"Block","src":"326689:74:0","statements":[{"expression":{"arguments":[{"arguments":[{"id":20709,"name":"impl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20697,"src":"326736:4:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20710,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20699,"src":"326742:12:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":20708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"326714:21:0","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$_t_address_$returns$_t_contract$_UpgradeableBeacon_$16456_$","typeString":"function (address,address) returns (contract UpgradeableBeacon)"},"typeName":{"id":20707,"nodeType":"UserDefinedTypeName","pathNode":{"id":20706,"name":"UpgradeableBeacon","nameLocations":["326718:17:0"],"nodeType":"IdentifierPath","referencedDeclaration":16456,"src":"326718:17:0"},"referencedDeclaration":16456,"src":"326718:17:0","typeDescriptions":{"typeIdentifier":"t_contract$_UpgradeableBeacon_$16456","typeString":"contract UpgradeableBeacon"}}},"id":20711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"326714:41:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_UpgradeableBeacon_$16456","typeString":"contract UpgradeableBeacon"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_UpgradeableBeacon_$16456","typeString":"contract UpgradeableBeacon"}],"id":20705,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"326706:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":20704,"name":"address","nodeType":"ElementaryTypeName","src":"326706:7:0","typeDescriptions":{}}},"id":20712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"326706:50:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":20703,"id":20713,"nodeType":"Return","src":"326699:57:0"}]},"documentation":{"id":20695,"nodeType":"StructuredDocumentation","src":"326272:327:0","text":" @dev Deploys an upgradeable beacon using the given contract address as the implementation.\n @param impl Address of the contract to use as the implementation\n @param initialOwner Address to set as the owner of the UpgradeableBeacon contract which gets deployed\n @return Beacon address"},"id":20715,"implemented":true,"kind":"function","modifiers":[],"name":"deployBeacon","nameLocation":"326613:12:0","nodeType":"FunctionDefinition","parameters":{"id":20700,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20697,"mutability":"mutable","name":"impl","nameLocation":"326634:4:0","nodeType":"VariableDeclaration","scope":20715,"src":"326626:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20696,"name":"address","nodeType":"ElementaryTypeName","src":"326626:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20699,"mutability":"mutable","name":"initialOwner","nameLocation":"326648:12:0","nodeType":"VariableDeclaration","scope":20715,"src":"326640:20:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20698,"name":"address","nodeType":"ElementaryTypeName","src":"326640:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"326625:36:0"},"returnParameters":{"id":20703,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20702,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20715,"src":"326680:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20701,"name":"address","nodeType":"ElementaryTypeName","src":"326680:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"326679:9:0"},"scope":20814,"src":"326604:159:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":20730,"nodeType":"Block","src":"327062:54:0","statements":[{"expression":{"arguments":[{"id":20726,"name":"beacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20718,"src":"327093:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20727,"name":"newImpl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20720,"src":"327101:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":20723,"name":"Core","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18590,"src":"327072:4:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Core_$18590_$","typeString":"type(library Core)"}},"id":20725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"327077:15:0","memberName":"upgradeBeaconTo","nodeType":"MemberAccess","referencedDeclaration":17885,"src":"327072:20:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":20728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"327072:37:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20729,"nodeType":"ExpressionStatement","src":"327072:37:0"}]},"documentation":{"id":20716,"nodeType":"StructuredDocumentation","src":"326769:223:0","text":" @dev Upgrades a beacon to a new implementation contract address.\n @param beacon Address of the beacon to upgrade\n @param newImpl Address of the new implementation contract to upgrade to"},"id":20731,"implemented":true,"kind":"function","modifiers":[],"name":"upgradeBeacon","nameLocation":"327006:13:0","nodeType":"FunctionDefinition","parameters":{"id":20721,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20718,"mutability":"mutable","name":"beacon","nameLocation":"327028:6:0","nodeType":"VariableDeclaration","scope":20731,"src":"327020:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20717,"name":"address","nodeType":"ElementaryTypeName","src":"327020:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20720,"mutability":"mutable","name":"newImpl","nameLocation":"327044:7:0","nodeType":"VariableDeclaration","scope":20731,"src":"327036:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20719,"name":"address","nodeType":"ElementaryTypeName","src":"327036:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"327019:33:0"},"returnParameters":{"id":20722,"nodeType":"ParameterList","parameters":[],"src":"327062:0:0"},"scope":20814,"src":"326997:119:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":20749,"nodeType":"Block","src":"327901:65:0","statements":[{"expression":{"arguments":[{"id":20744,"name":"beacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20734,"src":"327932:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20745,"name":"newImpl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20736,"src":"327940:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20746,"name":"tryCaller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20738,"src":"327949:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":20741,"name":"Core","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18590,"src":"327911:4:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Core_$18590_$","typeString":"type(library Core)"}},"id":20743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"327916:15:0","memberName":"upgradeBeaconTo","nodeType":"MemberAccess","referencedDeclaration":17904,"src":"327911:20:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$","typeString":"function (address,address,address)"}},"id":20747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"327911:48:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20748,"nodeType":"ExpressionStatement","src":"327911:48:0"}]},"documentation":{"id":20732,"nodeType":"StructuredDocumentation","src":"327122:690:0","text":" @notice For tests only. If broadcasting in scripts, use the `--sender
` option with `forge script` instead.\n @dev Upgrades a beacon to a new implementation contract address.\n This function provides an additional `tryCaller` parameter to test an upgrade using a specific caller address.\n Use this if you encounter `OwnableUnauthorizedAccount` errors in your tests.\n @param beacon Address of the beacon to upgrade\n @param newImpl Address of the new implementation contract to upgrade to\n @param tryCaller Address to use as the caller of the upgrade function. This should be the address that owns the beacon."},"id":20750,"implemented":true,"kind":"function","modifiers":[],"name":"upgradeBeacon","nameLocation":"327826:13:0","nodeType":"FunctionDefinition","parameters":{"id":20739,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20734,"mutability":"mutable","name":"beacon","nameLocation":"327848:6:0","nodeType":"VariableDeclaration","scope":20750,"src":"327840:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20733,"name":"address","nodeType":"ElementaryTypeName","src":"327840:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20736,"mutability":"mutable","name":"newImpl","nameLocation":"327864:7:0","nodeType":"VariableDeclaration","scope":20750,"src":"327856:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20735,"name":"address","nodeType":"ElementaryTypeName","src":"327856:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20738,"mutability":"mutable","name":"tryCaller","nameLocation":"327881:9:0","nodeType":"VariableDeclaration","scope":20750,"src":"327873:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20737,"name":"address","nodeType":"ElementaryTypeName","src":"327873:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"327839:52:0"},"returnParameters":{"id":20740,"nodeType":"ParameterList","parameters":[],"src":"327901:0:0"},"scope":20814,"src":"327817:149:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":20770,"nodeType":"Block","src":"328381:62:0","statements":[{"expression":{"arguments":[{"arguments":[{"id":20765,"name":"beacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20753,"src":"328422:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20766,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20755,"src":"328430:4:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"328406:15:0","typeDescriptions":{"typeIdentifier":"t_function_creation_payable$_t_address_$_t_bytes_memory_ptr_$returns$_t_contract$_BeaconProxy_$17293_$","typeString":"function (address,bytes memory) payable returns (contract BeaconProxy)"},"typeName":{"id":20763,"nodeType":"UserDefinedTypeName","pathNode":{"id":20762,"name":"BeaconProxy","nameLocations":["328410:11:0"],"nodeType":"IdentifierPath","referencedDeclaration":17293,"src":"328410:11:0"},"referencedDeclaration":17293,"src":"328410:11:0","typeDescriptions":{"typeIdentifier":"t_contract$_BeaconProxy_$17293","typeString":"contract BeaconProxy"}}},"id":20767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"328406:29:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_BeaconProxy_$17293","typeString":"contract BeaconProxy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BeaconProxy_$17293","typeString":"contract BeaconProxy"}],"id":20761,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"328398:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":20760,"name":"address","nodeType":"ElementaryTypeName","src":"328398:7:0","typeDescriptions":{}}},"id":20768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"328398:38:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":20759,"id":20769,"nodeType":"Return","src":"328391:45:0"}]},"documentation":{"id":20751,"nodeType":"StructuredDocumentation","src":"327972:315:0","text":" @dev Deploys a beacon proxy using the given beacon and call data.\n @param beacon Address of the beacon to use\n @param data Encoded call data of the initializer function to call during creation of the proxy, or empty if no initialization is required\n @return Proxy address"},"id":20771,"implemented":true,"kind":"function","modifiers":[],"name":"deployBeaconProxy","nameLocation":"328301:17:0","nodeType":"FunctionDefinition","parameters":{"id":20756,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20753,"mutability":"mutable","name":"beacon","nameLocation":"328327:6:0","nodeType":"VariableDeclaration","scope":20771,"src":"328319:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20752,"name":"address","nodeType":"ElementaryTypeName","src":"328319:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20755,"mutability":"mutable","name":"data","nameLocation":"328348:4:0","nodeType":"VariableDeclaration","scope":20771,"src":"328335:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":20754,"name":"bytes","nodeType":"ElementaryTypeName","src":"328335:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"328318:35:0"},"returnParameters":{"id":20759,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20758,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20771,"src":"328372:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20757,"name":"address","nodeType":"ElementaryTypeName","src":"328372:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"328371:9:0"},"scope":20814,"src":"328292:151:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":20784,"nodeType":"Block","src":"328719:51:0","statements":[{"expression":{"arguments":[{"id":20781,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20774,"src":"328757:5:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":20779,"name":"Core","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18590,"src":"328736:4:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Core_$18590_$","typeString":"type(library Core)"}},"id":20780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"328741:15:0","memberName":"getAdminAddress","nodeType":"MemberAccess","referencedDeclaration":18020,"src":"328736:20:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":20782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"328736:27:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":20778,"id":20783,"nodeType":"Return","src":"328729:34:0"}]},"documentation":{"id":20772,"nodeType":"StructuredDocumentation","src":"328449:193:0","text":" @dev Gets the admin address of a transparent proxy from its ERC1967 admin storage slot.\n @param proxy Address of a transparent proxy\n @return Admin address"},"id":20785,"implemented":true,"kind":"function","modifiers":[],"name":"getAdminAddress","nameLocation":"328656:15:0","nodeType":"FunctionDefinition","parameters":{"id":20775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20774,"mutability":"mutable","name":"proxy","nameLocation":"328680:5:0","nodeType":"VariableDeclaration","scope":20785,"src":"328672:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20773,"name":"address","nodeType":"ElementaryTypeName","src":"328672:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"328671:15:0"},"returnParameters":{"id":20778,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20777,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20785,"src":"328710:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20776,"name":"address","nodeType":"ElementaryTypeName","src":"328710:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"328709:9:0"},"scope":20814,"src":"328647:123:0","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":20798,"nodeType":"Block","src":"329098:60:0","statements":[{"expression":{"arguments":[{"id":20795,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20788,"src":"329145:5:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":20793,"name":"Core","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18590,"src":"329115:4:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Core_$18590_$","typeString":"type(library Core)"}},"id":20794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"329120:24:0","memberName":"getImplementationAddress","nodeType":"MemberAccess","referencedDeclaration":18056,"src":"329115:29:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":20796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"329115:36:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":20792,"id":20797,"nodeType":"Return","src":"329108:43:0"}]},"documentation":{"id":20786,"nodeType":"StructuredDocumentation","src":"328776:236:0","text":" @dev Gets the implementation address of a transparent or UUPS proxy from its ERC1967 implementation storage slot.\n @param proxy Address of a transparent or UUPS proxy\n @return Implementation address"},"id":20799,"implemented":true,"kind":"function","modifiers":[],"name":"getImplementationAddress","nameLocation":"329026:24:0","nodeType":"FunctionDefinition","parameters":{"id":20789,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20788,"mutability":"mutable","name":"proxy","nameLocation":"329059:5:0","nodeType":"VariableDeclaration","scope":20799,"src":"329051:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20787,"name":"address","nodeType":"ElementaryTypeName","src":"329051:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"329050:15:0"},"returnParameters":{"id":20792,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20791,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20799,"src":"329089:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20790,"name":"address","nodeType":"ElementaryTypeName","src":"329089:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"329088:9:0"},"scope":20814,"src":"329017:141:0","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":20812,"nodeType":"Block","src":"329428:52:0","statements":[{"expression":{"arguments":[{"id":20809,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20802,"src":"329467:5:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":20807,"name":"Core","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18590,"src":"329445:4:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Core_$18590_$","typeString":"type(library Core)"}},"id":20808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"329450:16:0","memberName":"getBeaconAddress","nodeType":"MemberAccess","referencedDeclaration":18092,"src":"329445:21:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":20810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"329445:28:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":20806,"id":20811,"nodeType":"Return","src":"329438:35:0"}]},"documentation":{"id":20800,"nodeType":"StructuredDocumentation","src":"329164:186:0","text":" @dev Gets the beacon address of a beacon proxy from its ERC1967 beacon storage slot.\n @param proxy Address of a beacon proxy\n @return Beacon address"},"id":20813,"implemented":true,"kind":"function","modifiers":[],"name":"getBeaconAddress","nameLocation":"329364:16:0","nodeType":"FunctionDefinition","parameters":{"id":20803,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20802,"mutability":"mutable","name":"proxy","nameLocation":"329389:5:0","nodeType":"VariableDeclaration","scope":20813,"src":"329381:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20801,"name":"address","nodeType":"ElementaryTypeName","src":"329381:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"329380:15:0"},"returnParameters":{"id":20806,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20805,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20813,"src":"329419:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20804,"name":"address","nodeType":"ElementaryTypeName","src":"329419:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"329418:9:0"},"scope":20814,"src":"329355:125:0","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":20815,"src":"323275:6207:0","usedErrors":[],"usedEvents":[]}],"src":"32:329452:0"},"id":0}},"contracts":{"src/Upgrades.sol":{"Address":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"AddressEmptyCode","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"AddressInsufficientBalance","type":"error"},{"inputs":[],"name":"FailedInnerCall","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220cdc4e07c754ebcbe21c3ba73f0aaa6ef168d35381fadc32652039de4dc067b6064736f6c634300081c0033","opcodes":"PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xCD 0xC4 0xE0 PUSH29 0x754EBCBE21C3BA73F0AAA6EF168D35381FADC32652039DE4DC067B6064 PUSH20 0x6F6C634300081C00330000000000000000000000 ","sourceMap":"169298:6066:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220cdc4e07c754ebcbe21c3ba73f0aaa6ef168d35381fadc32652039de4dc067b6064736f6c634300081c0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xCD 0xC4 0xE0 PUSH29 0x754EBCBE21C3BA73F0AAA6EF168D35381FADC32652039DE4DC067B6064 PUSH20 0x6F6C634300081C00330000000000000000000000 ","sourceMap":"169298:6066:0:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Collection of functions related to the address type\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Upgrades.sol\":\"Address\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"src/Upgrades.sol\":{\"keccak256\":\"0x420d4a351f46367d1fd8ea9409af6772fc442019d8f51bdd61b2114886ab3f98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dd2a0235e70d4f89d1d67af78ec13dd396224ec6cd87e4f906796bf50e385204\",\"dweb:/ipfs/QmULbNuaseWNiMWpBdR7ayYw5tknsYji6YtPG9KYd4k9Dp\"]}},\"version\":1}"},"BeaconProxy":{"abi":[{"inputs":[{"internalType":"address","name":"beacon","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"AddressEmptyCode","type":"error"},{"inputs":[{"internalType":"address","name":"beacon","type":"address"}],"name":"ERC1967InvalidBeacon","type":"error"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"name":"ERC1967InvalidImplementation","type":"error"},{"inputs":[],"name":"ERC1967NonPayable","type":"error"},{"inputs":[],"name":"FailedInnerCall","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"stateMutability":"payable","type":"fallback"}],"evm":{"bytecode":{"functionDebugData":{"@_17268":{"entryPoint":null,"id":17268,"parameterSlots":2,"returnSlots":0},"@_checkNonPayable_16373":{"entryPoint":912,"id":16373,"parameterSlots":0,"returnSlots":0},"@_revert_12470":{"entryPoint":1132,"id":12470,"parameterSlots":1,"returnSlots":0},"@_setBeacon_16321":{"entryPoint":355,"id":16321,"parameterSlots":1,"returnSlots":0},"@functionDelegateCall_12390":{"entryPoint":774,"id":12390,"parameterSlots":2,"returnSlots":1},"@getAddressSlot_12529":{"entryPoint":973,"id":12529,"parameterSlots":1,"returnSlots":1},"@upgradeBeaconToAndCall_16359":{"entryPoint":112,"id":16359,"parameterSlots":2,"returnSlots":0},"@verifyCallResultFromTarget_12430":{"entryPoint":983,"id":12430,"parameterSlots":3,"returnSlots":1},"abi_decode_available_length_t_bytes_memory_ptr_fromMemory":{"entryPoint":1556,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address_fromMemory":{"entryPoint":1294,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_memory_ptr_fromMemory":{"entryPoint":1622,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":1760,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_bytes_memory_ptr_fromMemory":{"entryPoint":1668,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":1805,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":1869,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":1918,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":1820,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":1438,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":1201,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":1465,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":1847,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":1858,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":1253,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":1221,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":1514,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":1389,"id":null,"parameterSlots":2,"returnSlots":0},"panic_error_0x41":{"entryPoint":1342,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":1315,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":1320,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":1216,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":1211,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":1325,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_address":{"entryPoint":1271,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:5500:1","nodeType":"YulBlock","src":"0:5500:1","statements":[{"body":{"nativeSrc":"47:35:1","nodeType":"YulBlock","src":"47:35:1","statements":[{"nativeSrc":"57:19:1","nodeType":"YulAssignment","src":"57:19:1","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:1","nodeType":"YulLiteral","src":"73:2:1","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:1","nodeType":"YulIdentifier","src":"67:5:1"},"nativeSrc":"67:9:1","nodeType":"YulFunctionCall","src":"67:9:1"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:1","nodeType":"YulIdentifier","src":"57:6:1"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:1","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:1","nodeType":"YulTypedName","src":"40:6:1","type":""}],"src":"7:75:1"},{"body":{"nativeSrc":"177:28:1","nodeType":"YulBlock","src":"177:28:1","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:1","nodeType":"YulLiteral","src":"194:1:1","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:1","nodeType":"YulLiteral","src":"197:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:1","nodeType":"YulIdentifier","src":"187:6:1"},"nativeSrc":"187:12:1","nodeType":"YulFunctionCall","src":"187:12:1"},"nativeSrc":"187:12:1","nodeType":"YulExpressionStatement","src":"187:12:1"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:1","nodeType":"YulFunctionDefinition","src":"88:117:1"},{"body":{"nativeSrc":"300:28:1","nodeType":"YulBlock","src":"300:28:1","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:1","nodeType":"YulLiteral","src":"317:1:1","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:1","nodeType":"YulLiteral","src":"320:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:1","nodeType":"YulIdentifier","src":"310:6:1"},"nativeSrc":"310:12:1","nodeType":"YulFunctionCall","src":"310:12:1"},"nativeSrc":"310:12:1","nodeType":"YulExpressionStatement","src":"310:12:1"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:1","nodeType":"YulFunctionDefinition","src":"211:117:1"},{"body":{"nativeSrc":"379:81:1","nodeType":"YulBlock","src":"379:81:1","statements":[{"nativeSrc":"389:65:1","nodeType":"YulAssignment","src":"389:65:1","value":{"arguments":[{"name":"value","nativeSrc":"404:5:1","nodeType":"YulIdentifier","src":"404:5:1"},{"kind":"number","nativeSrc":"411:42:1","nodeType":"YulLiteral","src":"411:42:1","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:1","nodeType":"YulIdentifier","src":"400:3:1"},"nativeSrc":"400:54:1","nodeType":"YulFunctionCall","src":"400:54:1"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:1","nodeType":"YulIdentifier","src":"389:7:1"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:1","nodeType":"YulTypedName","src":"361:5:1","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:1","nodeType":"YulTypedName","src":"371:7:1","type":""}],"src":"334:126:1"},{"body":{"nativeSrc":"511:51:1","nodeType":"YulBlock","src":"511:51:1","statements":[{"nativeSrc":"521:35:1","nodeType":"YulAssignment","src":"521:35:1","value":{"arguments":[{"name":"value","nativeSrc":"550:5:1","nodeType":"YulIdentifier","src":"550:5:1"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:1","nodeType":"YulIdentifier","src":"532:17:1"},"nativeSrc":"532:24:1","nodeType":"YulFunctionCall","src":"532:24:1"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:1","nodeType":"YulIdentifier","src":"521:7:1"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:1","nodeType":"YulTypedName","src":"493:5:1","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:1","nodeType":"YulTypedName","src":"503:7:1","type":""}],"src":"466:96:1"},{"body":{"nativeSrc":"611:79:1","nodeType":"YulBlock","src":"611:79:1","statements":[{"body":{"nativeSrc":"668:16:1","nodeType":"YulBlock","src":"668:16:1","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:1","nodeType":"YulLiteral","src":"677:1:1","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:1","nodeType":"YulLiteral","src":"680:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:1","nodeType":"YulIdentifier","src":"670:6:1"},"nativeSrc":"670:12:1","nodeType":"YulFunctionCall","src":"670:12:1"},"nativeSrc":"670:12:1","nodeType":"YulExpressionStatement","src":"670:12:1"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:1","nodeType":"YulIdentifier","src":"634:5:1"},{"arguments":[{"name":"value","nativeSrc":"659:5:1","nodeType":"YulIdentifier","src":"659:5:1"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:1","nodeType":"YulIdentifier","src":"641:17:1"},"nativeSrc":"641:24:1","nodeType":"YulFunctionCall","src":"641:24:1"}],"functionName":{"name":"eq","nativeSrc":"631:2:1","nodeType":"YulIdentifier","src":"631:2:1"},"nativeSrc":"631:35:1","nodeType":"YulFunctionCall","src":"631:35:1"}],"functionName":{"name":"iszero","nativeSrc":"624:6:1","nodeType":"YulIdentifier","src":"624:6:1"},"nativeSrc":"624:43:1","nodeType":"YulFunctionCall","src":"624:43:1"},"nativeSrc":"621:63:1","nodeType":"YulIf","src":"621:63:1"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:1","nodeType":"YulTypedName","src":"604:5:1","type":""}],"src":"568:122:1"},{"body":{"nativeSrc":"759:80:1","nodeType":"YulBlock","src":"759:80:1","statements":[{"nativeSrc":"769:22:1","nodeType":"YulAssignment","src":"769:22:1","value":{"arguments":[{"name":"offset","nativeSrc":"784:6:1","nodeType":"YulIdentifier","src":"784:6:1"}],"functionName":{"name":"mload","nativeSrc":"778:5:1","nodeType":"YulIdentifier","src":"778:5:1"},"nativeSrc":"778:13:1","nodeType":"YulFunctionCall","src":"778:13:1"},"variableNames":[{"name":"value","nativeSrc":"769:5:1","nodeType":"YulIdentifier","src":"769:5:1"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"827:5:1","nodeType":"YulIdentifier","src":"827:5:1"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"800:26:1","nodeType":"YulIdentifier","src":"800:26:1"},"nativeSrc":"800:33:1","nodeType":"YulFunctionCall","src":"800:33:1"},"nativeSrc":"800:33:1","nodeType":"YulExpressionStatement","src":"800:33:1"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"696:143:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"737:6:1","nodeType":"YulTypedName","src":"737:6:1","type":""},{"name":"end","nativeSrc":"745:3:1","nodeType":"YulTypedName","src":"745:3:1","type":""}],"returnVariables":[{"name":"value","nativeSrc":"753:5:1","nodeType":"YulTypedName","src":"753:5:1","type":""}],"src":"696:143:1"},{"body":{"nativeSrc":"934:28:1","nodeType":"YulBlock","src":"934:28:1","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"951:1:1","nodeType":"YulLiteral","src":"951:1:1","type":"","value":"0"},{"kind":"number","nativeSrc":"954:1:1","nodeType":"YulLiteral","src":"954:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"944:6:1","nodeType":"YulIdentifier","src":"944:6:1"},"nativeSrc":"944:12:1","nodeType":"YulFunctionCall","src":"944:12:1"},"nativeSrc":"944:12:1","nodeType":"YulExpressionStatement","src":"944:12:1"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"845:117:1","nodeType":"YulFunctionDefinition","src":"845:117:1"},{"body":{"nativeSrc":"1057:28:1","nodeType":"YulBlock","src":"1057:28:1","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1074:1:1","nodeType":"YulLiteral","src":"1074:1:1","type":"","value":"0"},{"kind":"number","nativeSrc":"1077:1:1","nodeType":"YulLiteral","src":"1077:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1067:6:1","nodeType":"YulIdentifier","src":"1067:6:1"},"nativeSrc":"1067:12:1","nodeType":"YulFunctionCall","src":"1067:12:1"},"nativeSrc":"1067:12:1","nodeType":"YulExpressionStatement","src":"1067:12:1"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"968:117:1","nodeType":"YulFunctionDefinition","src":"968:117:1"},{"body":{"nativeSrc":"1139:54:1","nodeType":"YulBlock","src":"1139:54:1","statements":[{"nativeSrc":"1149:38:1","nodeType":"YulAssignment","src":"1149:38:1","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1167:5:1","nodeType":"YulIdentifier","src":"1167:5:1"},{"kind":"number","nativeSrc":"1174:2:1","nodeType":"YulLiteral","src":"1174:2:1","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"1163:3:1","nodeType":"YulIdentifier","src":"1163:3:1"},"nativeSrc":"1163:14:1","nodeType":"YulFunctionCall","src":"1163:14:1"},{"arguments":[{"kind":"number","nativeSrc":"1183:2:1","nodeType":"YulLiteral","src":"1183:2:1","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"1179:3:1","nodeType":"YulIdentifier","src":"1179:3:1"},"nativeSrc":"1179:7:1","nodeType":"YulFunctionCall","src":"1179:7:1"}],"functionName":{"name":"and","nativeSrc":"1159:3:1","nodeType":"YulIdentifier","src":"1159:3:1"},"nativeSrc":"1159:28:1","nodeType":"YulFunctionCall","src":"1159:28:1"},"variableNames":[{"name":"result","nativeSrc":"1149:6:1","nodeType":"YulIdentifier","src":"1149:6:1"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"1091:102:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1122:5:1","nodeType":"YulTypedName","src":"1122:5:1","type":""}],"returnVariables":[{"name":"result","nativeSrc":"1132:6:1","nodeType":"YulTypedName","src":"1132:6:1","type":""}],"src":"1091:102:1"},{"body":{"nativeSrc":"1227:152:1","nodeType":"YulBlock","src":"1227:152:1","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1244:1:1","nodeType":"YulLiteral","src":"1244:1:1","type":"","value":"0"},{"kind":"number","nativeSrc":"1247:77:1","nodeType":"YulLiteral","src":"1247:77:1","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"1237:6:1","nodeType":"YulIdentifier","src":"1237:6:1"},"nativeSrc":"1237:88:1","nodeType":"YulFunctionCall","src":"1237:88:1"},"nativeSrc":"1237:88:1","nodeType":"YulExpressionStatement","src":"1237:88:1"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1341:1:1","nodeType":"YulLiteral","src":"1341:1:1","type":"","value":"4"},{"kind":"number","nativeSrc":"1344:4:1","nodeType":"YulLiteral","src":"1344:4:1","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"1334:6:1","nodeType":"YulIdentifier","src":"1334:6:1"},"nativeSrc":"1334:15:1","nodeType":"YulFunctionCall","src":"1334:15:1"},"nativeSrc":"1334:15:1","nodeType":"YulExpressionStatement","src":"1334:15:1"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1365:1:1","nodeType":"YulLiteral","src":"1365:1:1","type":"","value":"0"},{"kind":"number","nativeSrc":"1368:4:1","nodeType":"YulLiteral","src":"1368:4:1","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1358:6:1","nodeType":"YulIdentifier","src":"1358:6:1"},"nativeSrc":"1358:15:1","nodeType":"YulFunctionCall","src":"1358:15:1"},"nativeSrc":"1358:15:1","nodeType":"YulExpressionStatement","src":"1358:15:1"}]},"name":"panic_error_0x41","nativeSrc":"1199:180:1","nodeType":"YulFunctionDefinition","src":"1199:180:1"},{"body":{"nativeSrc":"1428:238:1","nodeType":"YulBlock","src":"1428:238:1","statements":[{"nativeSrc":"1438:58:1","nodeType":"YulVariableDeclaration","src":"1438:58:1","value":{"arguments":[{"name":"memPtr","nativeSrc":"1460:6:1","nodeType":"YulIdentifier","src":"1460:6:1"},{"arguments":[{"name":"size","nativeSrc":"1490:4:1","nodeType":"YulIdentifier","src":"1490:4:1"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"1468:21:1","nodeType":"YulIdentifier","src":"1468:21:1"},"nativeSrc":"1468:27:1","nodeType":"YulFunctionCall","src":"1468:27:1"}],"functionName":{"name":"add","nativeSrc":"1456:3:1","nodeType":"YulIdentifier","src":"1456:3:1"},"nativeSrc":"1456:40:1","nodeType":"YulFunctionCall","src":"1456:40:1"},"variables":[{"name":"newFreePtr","nativeSrc":"1442:10:1","nodeType":"YulTypedName","src":"1442:10:1","type":""}]},{"body":{"nativeSrc":"1607:22:1","nodeType":"YulBlock","src":"1607:22:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1609:16:1","nodeType":"YulIdentifier","src":"1609:16:1"},"nativeSrc":"1609:18:1","nodeType":"YulFunctionCall","src":"1609:18:1"},"nativeSrc":"1609:18:1","nodeType":"YulExpressionStatement","src":"1609:18:1"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"1550:10:1","nodeType":"YulIdentifier","src":"1550:10:1"},{"kind":"number","nativeSrc":"1562:18:1","nodeType":"YulLiteral","src":"1562:18:1","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1547:2:1","nodeType":"YulIdentifier","src":"1547:2:1"},"nativeSrc":"1547:34:1","nodeType":"YulFunctionCall","src":"1547:34:1"},{"arguments":[{"name":"newFreePtr","nativeSrc":"1586:10:1","nodeType":"YulIdentifier","src":"1586:10:1"},{"name":"memPtr","nativeSrc":"1598:6:1","nodeType":"YulIdentifier","src":"1598:6:1"}],"functionName":{"name":"lt","nativeSrc":"1583:2:1","nodeType":"YulIdentifier","src":"1583:2:1"},"nativeSrc":"1583:22:1","nodeType":"YulFunctionCall","src":"1583:22:1"}],"functionName":{"name":"or","nativeSrc":"1544:2:1","nodeType":"YulIdentifier","src":"1544:2:1"},"nativeSrc":"1544:62:1","nodeType":"YulFunctionCall","src":"1544:62:1"},"nativeSrc":"1541:88:1","nodeType":"YulIf","src":"1541:88:1"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1645:2:1","nodeType":"YulLiteral","src":"1645:2:1","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"1649:10:1","nodeType":"YulIdentifier","src":"1649:10:1"}],"functionName":{"name":"mstore","nativeSrc":"1638:6:1","nodeType":"YulIdentifier","src":"1638:6:1"},"nativeSrc":"1638:22:1","nodeType":"YulFunctionCall","src":"1638:22:1"},"nativeSrc":"1638:22:1","nodeType":"YulExpressionStatement","src":"1638:22:1"}]},"name":"finalize_allocation","nativeSrc":"1385:281:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"1414:6:1","nodeType":"YulTypedName","src":"1414:6:1","type":""},{"name":"size","nativeSrc":"1422:4:1","nodeType":"YulTypedName","src":"1422:4:1","type":""}],"src":"1385:281:1"},{"body":{"nativeSrc":"1713:88:1","nodeType":"YulBlock","src":"1713:88:1","statements":[{"nativeSrc":"1723:30:1","nodeType":"YulAssignment","src":"1723:30:1","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"1733:18:1","nodeType":"YulIdentifier","src":"1733:18:1"},"nativeSrc":"1733:20:1","nodeType":"YulFunctionCall","src":"1733:20:1"},"variableNames":[{"name":"memPtr","nativeSrc":"1723:6:1","nodeType":"YulIdentifier","src":"1723:6:1"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"1782:6:1","nodeType":"YulIdentifier","src":"1782:6:1"},{"name":"size","nativeSrc":"1790:4:1","nodeType":"YulIdentifier","src":"1790:4:1"}],"functionName":{"name":"finalize_allocation","nativeSrc":"1762:19:1","nodeType":"YulIdentifier","src":"1762:19:1"},"nativeSrc":"1762:33:1","nodeType":"YulFunctionCall","src":"1762:33:1"},"nativeSrc":"1762:33:1","nodeType":"YulExpressionStatement","src":"1762:33:1"}]},"name":"allocate_memory","nativeSrc":"1672:129:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"1697:4:1","nodeType":"YulTypedName","src":"1697:4:1","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"1706:6:1","nodeType":"YulTypedName","src":"1706:6:1","type":""}],"src":"1672:129:1"},{"body":{"nativeSrc":"1873:241:1","nodeType":"YulBlock","src":"1873:241:1","statements":[{"body":{"nativeSrc":"1978:22:1","nodeType":"YulBlock","src":"1978:22:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1980:16:1","nodeType":"YulIdentifier","src":"1980:16:1"},"nativeSrc":"1980:18:1","nodeType":"YulFunctionCall","src":"1980:18:1"},"nativeSrc":"1980:18:1","nodeType":"YulExpressionStatement","src":"1980:18:1"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"1950:6:1","nodeType":"YulIdentifier","src":"1950:6:1"},{"kind":"number","nativeSrc":"1958:18:1","nodeType":"YulLiteral","src":"1958:18:1","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1947:2:1","nodeType":"YulIdentifier","src":"1947:2:1"},"nativeSrc":"1947:30:1","nodeType":"YulFunctionCall","src":"1947:30:1"},"nativeSrc":"1944:56:1","nodeType":"YulIf","src":"1944:56:1"},{"nativeSrc":"2010:37:1","nodeType":"YulAssignment","src":"2010:37:1","value":{"arguments":[{"name":"length","nativeSrc":"2040:6:1","nodeType":"YulIdentifier","src":"2040:6:1"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"2018:21:1","nodeType":"YulIdentifier","src":"2018:21:1"},"nativeSrc":"2018:29:1","nodeType":"YulFunctionCall","src":"2018:29:1"},"variableNames":[{"name":"size","nativeSrc":"2010:4:1","nodeType":"YulIdentifier","src":"2010:4:1"}]},{"nativeSrc":"2084:23:1","nodeType":"YulAssignment","src":"2084:23:1","value":{"arguments":[{"name":"size","nativeSrc":"2096:4:1","nodeType":"YulIdentifier","src":"2096:4:1"},{"kind":"number","nativeSrc":"2102:4:1","nodeType":"YulLiteral","src":"2102:4:1","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2092:3:1","nodeType":"YulIdentifier","src":"2092:3:1"},"nativeSrc":"2092:15:1","nodeType":"YulFunctionCall","src":"2092:15:1"},"variableNames":[{"name":"size","nativeSrc":"2084:4:1","nodeType":"YulIdentifier","src":"2084:4:1"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"1807:307:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"1857:6:1","nodeType":"YulTypedName","src":"1857:6:1","type":""}],"returnVariables":[{"name":"size","nativeSrc":"1868:4:1","nodeType":"YulTypedName","src":"1868:4:1","type":""}],"src":"1807:307:1"},{"body":{"nativeSrc":"2182:186:1","nodeType":"YulBlock","src":"2182:186:1","statements":[{"nativeSrc":"2193:10:1","nodeType":"YulVariableDeclaration","src":"2193:10:1","value":{"kind":"number","nativeSrc":"2202:1:1","nodeType":"YulLiteral","src":"2202:1:1","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"2197:1:1","nodeType":"YulTypedName","src":"2197:1:1","type":""}]},{"body":{"nativeSrc":"2262:63:1","nodeType":"YulBlock","src":"2262:63:1","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"2287:3:1","nodeType":"YulIdentifier","src":"2287:3:1"},{"name":"i","nativeSrc":"2292:1:1","nodeType":"YulIdentifier","src":"2292:1:1"}],"functionName":{"name":"add","nativeSrc":"2283:3:1","nodeType":"YulIdentifier","src":"2283:3:1"},"nativeSrc":"2283:11:1","nodeType":"YulFunctionCall","src":"2283:11:1"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"2306:3:1","nodeType":"YulIdentifier","src":"2306:3:1"},{"name":"i","nativeSrc":"2311:1:1","nodeType":"YulIdentifier","src":"2311:1:1"}],"functionName":{"name":"add","nativeSrc":"2302:3:1","nodeType":"YulIdentifier","src":"2302:3:1"},"nativeSrc":"2302:11:1","nodeType":"YulFunctionCall","src":"2302:11:1"}],"functionName":{"name":"mload","nativeSrc":"2296:5:1","nodeType":"YulIdentifier","src":"2296:5:1"},"nativeSrc":"2296:18:1","nodeType":"YulFunctionCall","src":"2296:18:1"}],"functionName":{"name":"mstore","nativeSrc":"2276:6:1","nodeType":"YulIdentifier","src":"2276:6:1"},"nativeSrc":"2276:39:1","nodeType":"YulFunctionCall","src":"2276:39:1"},"nativeSrc":"2276:39:1","nodeType":"YulExpressionStatement","src":"2276:39:1"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"2223:1:1","nodeType":"YulIdentifier","src":"2223:1:1"},{"name":"length","nativeSrc":"2226:6:1","nodeType":"YulIdentifier","src":"2226:6:1"}],"functionName":{"name":"lt","nativeSrc":"2220:2:1","nodeType":"YulIdentifier","src":"2220:2:1"},"nativeSrc":"2220:13:1","nodeType":"YulFunctionCall","src":"2220:13:1"},"nativeSrc":"2212:113:1","nodeType":"YulForLoop","post":{"nativeSrc":"2234:19:1","nodeType":"YulBlock","src":"2234:19:1","statements":[{"nativeSrc":"2236:15:1","nodeType":"YulAssignment","src":"2236:15:1","value":{"arguments":[{"name":"i","nativeSrc":"2245:1:1","nodeType":"YulIdentifier","src":"2245:1:1"},{"kind":"number","nativeSrc":"2248:2:1","nodeType":"YulLiteral","src":"2248:2:1","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2241:3:1","nodeType":"YulIdentifier","src":"2241:3:1"},"nativeSrc":"2241:10:1","nodeType":"YulFunctionCall","src":"2241:10:1"},"variableNames":[{"name":"i","nativeSrc":"2236:1:1","nodeType":"YulIdentifier","src":"2236:1:1"}]}]},"pre":{"nativeSrc":"2216:3:1","nodeType":"YulBlock","src":"2216:3:1","statements":[]},"src":"2212:113:1"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"2345:3:1","nodeType":"YulIdentifier","src":"2345:3:1"},{"name":"length","nativeSrc":"2350:6:1","nodeType":"YulIdentifier","src":"2350:6:1"}],"functionName":{"name":"add","nativeSrc":"2341:3:1","nodeType":"YulIdentifier","src":"2341:3:1"},"nativeSrc":"2341:16:1","nodeType":"YulFunctionCall","src":"2341:16:1"},{"kind":"number","nativeSrc":"2359:1:1","nodeType":"YulLiteral","src":"2359:1:1","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"2334:6:1","nodeType":"YulIdentifier","src":"2334:6:1"},"nativeSrc":"2334:27:1","nodeType":"YulFunctionCall","src":"2334:27:1"},"nativeSrc":"2334:27:1","nodeType":"YulExpressionStatement","src":"2334:27:1"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"2120:248:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"2164:3:1","nodeType":"YulTypedName","src":"2164:3:1","type":""},{"name":"dst","nativeSrc":"2169:3:1","nodeType":"YulTypedName","src":"2169:3:1","type":""},{"name":"length","nativeSrc":"2174:6:1","nodeType":"YulTypedName","src":"2174:6:1","type":""}],"src":"2120:248:1"},{"body":{"nativeSrc":"2468:338:1","nodeType":"YulBlock","src":"2468:338:1","statements":[{"nativeSrc":"2478:74:1","nodeType":"YulAssignment","src":"2478:74:1","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"2544:6:1","nodeType":"YulIdentifier","src":"2544:6:1"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"2503:40:1","nodeType":"YulIdentifier","src":"2503:40:1"},"nativeSrc":"2503:48:1","nodeType":"YulFunctionCall","src":"2503:48:1"}],"functionName":{"name":"allocate_memory","nativeSrc":"2487:15:1","nodeType":"YulIdentifier","src":"2487:15:1"},"nativeSrc":"2487:65:1","nodeType":"YulFunctionCall","src":"2487:65:1"},"variableNames":[{"name":"array","nativeSrc":"2478:5:1","nodeType":"YulIdentifier","src":"2478:5:1"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"2568:5:1","nodeType":"YulIdentifier","src":"2568:5:1"},{"name":"length","nativeSrc":"2575:6:1","nodeType":"YulIdentifier","src":"2575:6:1"}],"functionName":{"name":"mstore","nativeSrc":"2561:6:1","nodeType":"YulIdentifier","src":"2561:6:1"},"nativeSrc":"2561:21:1","nodeType":"YulFunctionCall","src":"2561:21:1"},"nativeSrc":"2561:21:1","nodeType":"YulExpressionStatement","src":"2561:21:1"},{"nativeSrc":"2591:27:1","nodeType":"YulVariableDeclaration","src":"2591:27:1","value":{"arguments":[{"name":"array","nativeSrc":"2606:5:1","nodeType":"YulIdentifier","src":"2606:5:1"},{"kind":"number","nativeSrc":"2613:4:1","nodeType":"YulLiteral","src":"2613:4:1","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2602:3:1","nodeType":"YulIdentifier","src":"2602:3:1"},"nativeSrc":"2602:16:1","nodeType":"YulFunctionCall","src":"2602:16:1"},"variables":[{"name":"dst","nativeSrc":"2595:3:1","nodeType":"YulTypedName","src":"2595:3:1","type":""}]},{"body":{"nativeSrc":"2656:83:1","nodeType":"YulBlock","src":"2656:83:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"2658:77:1","nodeType":"YulIdentifier","src":"2658:77:1"},"nativeSrc":"2658:79:1","nodeType":"YulFunctionCall","src":"2658:79:1"},"nativeSrc":"2658:79:1","nodeType":"YulExpressionStatement","src":"2658:79:1"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"2637:3:1","nodeType":"YulIdentifier","src":"2637:3:1"},{"name":"length","nativeSrc":"2642:6:1","nodeType":"YulIdentifier","src":"2642:6:1"}],"functionName":{"name":"add","nativeSrc":"2633:3:1","nodeType":"YulIdentifier","src":"2633:3:1"},"nativeSrc":"2633:16:1","nodeType":"YulFunctionCall","src":"2633:16:1"},{"name":"end","nativeSrc":"2651:3:1","nodeType":"YulIdentifier","src":"2651:3:1"}],"functionName":{"name":"gt","nativeSrc":"2630:2:1","nodeType":"YulIdentifier","src":"2630:2:1"},"nativeSrc":"2630:25:1","nodeType":"YulFunctionCall","src":"2630:25:1"},"nativeSrc":"2627:112:1","nodeType":"YulIf","src":"2627:112:1"},{"expression":{"arguments":[{"name":"src","nativeSrc":"2783:3:1","nodeType":"YulIdentifier","src":"2783:3:1"},{"name":"dst","nativeSrc":"2788:3:1","nodeType":"YulIdentifier","src":"2788:3:1"},{"name":"length","nativeSrc":"2793:6:1","nodeType":"YulIdentifier","src":"2793:6:1"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"2748:34:1","nodeType":"YulIdentifier","src":"2748:34:1"},"nativeSrc":"2748:52:1","nodeType":"YulFunctionCall","src":"2748:52:1"},"nativeSrc":"2748:52:1","nodeType":"YulExpressionStatement","src":"2748:52:1"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr_fromMemory","nativeSrc":"2374:432:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"2441:3:1","nodeType":"YulTypedName","src":"2441:3:1","type":""},{"name":"length","nativeSrc":"2446:6:1","nodeType":"YulTypedName","src":"2446:6:1","type":""},{"name":"end","nativeSrc":"2454:3:1","nodeType":"YulTypedName","src":"2454:3:1","type":""}],"returnVariables":[{"name":"array","nativeSrc":"2462:5:1","nodeType":"YulTypedName","src":"2462:5:1","type":""}],"src":"2374:432:1"},{"body":{"nativeSrc":"2897:281:1","nodeType":"YulBlock","src":"2897:281:1","statements":[{"body":{"nativeSrc":"2946:83:1","nodeType":"YulBlock","src":"2946:83:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2948:77:1","nodeType":"YulIdentifier","src":"2948:77:1"},"nativeSrc":"2948:79:1","nodeType":"YulFunctionCall","src":"2948:79:1"},"nativeSrc":"2948:79:1","nodeType":"YulExpressionStatement","src":"2948:79:1"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2925:6:1","nodeType":"YulIdentifier","src":"2925:6:1"},{"kind":"number","nativeSrc":"2933:4:1","nodeType":"YulLiteral","src":"2933:4:1","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2921:3:1","nodeType":"YulIdentifier","src":"2921:3:1"},"nativeSrc":"2921:17:1","nodeType":"YulFunctionCall","src":"2921:17:1"},{"name":"end","nativeSrc":"2940:3:1","nodeType":"YulIdentifier","src":"2940:3:1"}],"functionName":{"name":"slt","nativeSrc":"2917:3:1","nodeType":"YulIdentifier","src":"2917:3:1"},"nativeSrc":"2917:27:1","nodeType":"YulFunctionCall","src":"2917:27:1"}],"functionName":{"name":"iszero","nativeSrc":"2910:6:1","nodeType":"YulIdentifier","src":"2910:6:1"},"nativeSrc":"2910:35:1","nodeType":"YulFunctionCall","src":"2910:35:1"},"nativeSrc":"2907:122:1","nodeType":"YulIf","src":"2907:122:1"},{"nativeSrc":"3038:27:1","nodeType":"YulVariableDeclaration","src":"3038:27:1","value":{"arguments":[{"name":"offset","nativeSrc":"3058:6:1","nodeType":"YulIdentifier","src":"3058:6:1"}],"functionName":{"name":"mload","nativeSrc":"3052:5:1","nodeType":"YulIdentifier","src":"3052:5:1"},"nativeSrc":"3052:13:1","nodeType":"YulFunctionCall","src":"3052:13:1"},"variables":[{"name":"length","nativeSrc":"3042:6:1","nodeType":"YulTypedName","src":"3042:6:1","type":""}]},{"nativeSrc":"3074:98:1","nodeType":"YulAssignment","src":"3074:98:1","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3145:6:1","nodeType":"YulIdentifier","src":"3145:6:1"},{"kind":"number","nativeSrc":"3153:4:1","nodeType":"YulLiteral","src":"3153:4:1","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3141:3:1","nodeType":"YulIdentifier","src":"3141:3:1"},"nativeSrc":"3141:17:1","nodeType":"YulFunctionCall","src":"3141:17:1"},{"name":"length","nativeSrc":"3160:6:1","nodeType":"YulIdentifier","src":"3160:6:1"},{"name":"end","nativeSrc":"3168:3:1","nodeType":"YulIdentifier","src":"3168:3:1"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr_fromMemory","nativeSrc":"3083:57:1","nodeType":"YulIdentifier","src":"3083:57:1"},"nativeSrc":"3083:89:1","nodeType":"YulFunctionCall","src":"3083:89:1"},"variableNames":[{"name":"array","nativeSrc":"3074:5:1","nodeType":"YulIdentifier","src":"3074:5:1"}]}]},"name":"abi_decode_t_bytes_memory_ptr_fromMemory","nativeSrc":"2825:353:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2875:6:1","nodeType":"YulTypedName","src":"2875:6:1","type":""},{"name":"end","nativeSrc":"2883:3:1","nodeType":"YulTypedName","src":"2883:3:1","type":""}],"returnVariables":[{"name":"array","nativeSrc":"2891:5:1","nodeType":"YulTypedName","src":"2891:5:1","type":""}],"src":"2825:353:1"},{"body":{"nativeSrc":"3287:575:1","nodeType":"YulBlock","src":"3287:575:1","statements":[{"body":{"nativeSrc":"3333:83:1","nodeType":"YulBlock","src":"3333:83:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3335:77:1","nodeType":"YulIdentifier","src":"3335:77:1"},"nativeSrc":"3335:79:1","nodeType":"YulFunctionCall","src":"3335:79:1"},"nativeSrc":"3335:79:1","nodeType":"YulExpressionStatement","src":"3335:79:1"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3308:7:1","nodeType":"YulIdentifier","src":"3308:7:1"},{"name":"headStart","nativeSrc":"3317:9:1","nodeType":"YulIdentifier","src":"3317:9:1"}],"functionName":{"name":"sub","nativeSrc":"3304:3:1","nodeType":"YulIdentifier","src":"3304:3:1"},"nativeSrc":"3304:23:1","nodeType":"YulFunctionCall","src":"3304:23:1"},{"kind":"number","nativeSrc":"3329:2:1","nodeType":"YulLiteral","src":"3329:2:1","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"3300:3:1","nodeType":"YulIdentifier","src":"3300:3:1"},"nativeSrc":"3300:32:1","nodeType":"YulFunctionCall","src":"3300:32:1"},"nativeSrc":"3297:119:1","nodeType":"YulIf","src":"3297:119:1"},{"nativeSrc":"3426:128:1","nodeType":"YulBlock","src":"3426:128:1","statements":[{"nativeSrc":"3441:15:1","nodeType":"YulVariableDeclaration","src":"3441:15:1","value":{"kind":"number","nativeSrc":"3455:1:1","nodeType":"YulLiteral","src":"3455:1:1","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3445:6:1","nodeType":"YulTypedName","src":"3445:6:1","type":""}]},{"nativeSrc":"3470:74:1","nodeType":"YulAssignment","src":"3470:74:1","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3516:9:1","nodeType":"YulIdentifier","src":"3516:9:1"},{"name":"offset","nativeSrc":"3527:6:1","nodeType":"YulIdentifier","src":"3527:6:1"}],"functionName":{"name":"add","nativeSrc":"3512:3:1","nodeType":"YulIdentifier","src":"3512:3:1"},"nativeSrc":"3512:22:1","nodeType":"YulFunctionCall","src":"3512:22:1"},{"name":"dataEnd","nativeSrc":"3536:7:1","nodeType":"YulIdentifier","src":"3536:7:1"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"3480:31:1","nodeType":"YulIdentifier","src":"3480:31:1"},"nativeSrc":"3480:64:1","nodeType":"YulFunctionCall","src":"3480:64:1"},"variableNames":[{"name":"value0","nativeSrc":"3470:6:1","nodeType":"YulIdentifier","src":"3470:6:1"}]}]},{"nativeSrc":"3564:291:1","nodeType":"YulBlock","src":"3564:291:1","statements":[{"nativeSrc":"3579:39:1","nodeType":"YulVariableDeclaration","src":"3579:39:1","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3603:9:1","nodeType":"YulIdentifier","src":"3603:9:1"},{"kind":"number","nativeSrc":"3614:2:1","nodeType":"YulLiteral","src":"3614:2:1","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3599:3:1","nodeType":"YulIdentifier","src":"3599:3:1"},"nativeSrc":"3599:18:1","nodeType":"YulFunctionCall","src":"3599:18:1"}],"functionName":{"name":"mload","nativeSrc":"3593:5:1","nodeType":"YulIdentifier","src":"3593:5:1"},"nativeSrc":"3593:25:1","nodeType":"YulFunctionCall","src":"3593:25:1"},"variables":[{"name":"offset","nativeSrc":"3583:6:1","nodeType":"YulTypedName","src":"3583:6:1","type":""}]},{"body":{"nativeSrc":"3665:83:1","nodeType":"YulBlock","src":"3665:83:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"3667:77:1","nodeType":"YulIdentifier","src":"3667:77:1"},"nativeSrc":"3667:79:1","nodeType":"YulFunctionCall","src":"3667:79:1"},"nativeSrc":"3667:79:1","nodeType":"YulExpressionStatement","src":"3667:79:1"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3637:6:1","nodeType":"YulIdentifier","src":"3637:6:1"},{"kind":"number","nativeSrc":"3645:18:1","nodeType":"YulLiteral","src":"3645:18:1","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3634:2:1","nodeType":"YulIdentifier","src":"3634:2:1"},"nativeSrc":"3634:30:1","nodeType":"YulFunctionCall","src":"3634:30:1"},"nativeSrc":"3631:117:1","nodeType":"YulIf","src":"3631:117:1"},{"nativeSrc":"3762:83:1","nodeType":"YulAssignment","src":"3762:83:1","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3817:9:1","nodeType":"YulIdentifier","src":"3817:9:1"},{"name":"offset","nativeSrc":"3828:6:1","nodeType":"YulIdentifier","src":"3828:6:1"}],"functionName":{"name":"add","nativeSrc":"3813:3:1","nodeType":"YulIdentifier","src":"3813:3:1"},"nativeSrc":"3813:22:1","nodeType":"YulFunctionCall","src":"3813:22:1"},{"name":"dataEnd","nativeSrc":"3837:7:1","nodeType":"YulIdentifier","src":"3837:7:1"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr_fromMemory","nativeSrc":"3772:40:1","nodeType":"YulIdentifier","src":"3772:40:1"},"nativeSrc":"3772:73:1","nodeType":"YulFunctionCall","src":"3772:73:1"},"variableNames":[{"name":"value1","nativeSrc":"3762:6:1","nodeType":"YulIdentifier","src":"3762:6:1"}]}]}]},"name":"abi_decode_tuple_t_addresst_bytes_memory_ptr_fromMemory","nativeSrc":"3184:678:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3249:9:1","nodeType":"YulTypedName","src":"3249:9:1","type":""},{"name":"dataEnd","nativeSrc":"3260:7:1","nodeType":"YulTypedName","src":"3260:7:1","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3272:6:1","nodeType":"YulTypedName","src":"3272:6:1","type":""},{"name":"value1","nativeSrc":"3280:6:1","nodeType":"YulTypedName","src":"3280:6:1","type":""}],"src":"3184:678:1"},{"body":{"nativeSrc":"3945:274:1","nodeType":"YulBlock","src":"3945:274:1","statements":[{"body":{"nativeSrc":"3991:83:1","nodeType":"YulBlock","src":"3991:83:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3993:77:1","nodeType":"YulIdentifier","src":"3993:77:1"},"nativeSrc":"3993:79:1","nodeType":"YulFunctionCall","src":"3993:79:1"},"nativeSrc":"3993:79:1","nodeType":"YulExpressionStatement","src":"3993:79:1"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3966:7:1","nodeType":"YulIdentifier","src":"3966:7:1"},{"name":"headStart","nativeSrc":"3975:9:1","nodeType":"YulIdentifier","src":"3975:9:1"}],"functionName":{"name":"sub","nativeSrc":"3962:3:1","nodeType":"YulIdentifier","src":"3962:3:1"},"nativeSrc":"3962:23:1","nodeType":"YulFunctionCall","src":"3962:23:1"},{"kind":"number","nativeSrc":"3987:2:1","nodeType":"YulLiteral","src":"3987:2:1","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3958:3:1","nodeType":"YulIdentifier","src":"3958:3:1"},"nativeSrc":"3958:32:1","nodeType":"YulFunctionCall","src":"3958:32:1"},"nativeSrc":"3955:119:1","nodeType":"YulIf","src":"3955:119:1"},{"nativeSrc":"4084:128:1","nodeType":"YulBlock","src":"4084:128:1","statements":[{"nativeSrc":"4099:15:1","nodeType":"YulVariableDeclaration","src":"4099:15:1","value":{"kind":"number","nativeSrc":"4113:1:1","nodeType":"YulLiteral","src":"4113:1:1","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"4103:6:1","nodeType":"YulTypedName","src":"4103:6:1","type":""}]},{"nativeSrc":"4128:74:1","nodeType":"YulAssignment","src":"4128:74:1","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4174:9:1","nodeType":"YulIdentifier","src":"4174:9:1"},{"name":"offset","nativeSrc":"4185:6:1","nodeType":"YulIdentifier","src":"4185:6:1"}],"functionName":{"name":"add","nativeSrc":"4170:3:1","nodeType":"YulIdentifier","src":"4170:3:1"},"nativeSrc":"4170:22:1","nodeType":"YulFunctionCall","src":"4170:22:1"},{"name":"dataEnd","nativeSrc":"4194:7:1","nodeType":"YulIdentifier","src":"4194:7:1"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"4138:31:1","nodeType":"YulIdentifier","src":"4138:31:1"},"nativeSrc":"4138:64:1","nodeType":"YulFunctionCall","src":"4138:64:1"},"variableNames":[{"name":"value0","nativeSrc":"4128:6:1","nodeType":"YulIdentifier","src":"4128:6:1"}]}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nativeSrc":"3868:351:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3915:9:1","nodeType":"YulTypedName","src":"3915:9:1","type":""},{"name":"dataEnd","nativeSrc":"3926:7:1","nodeType":"YulTypedName","src":"3926:7:1","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3938:6:1","nodeType":"YulTypedName","src":"3938:6:1","type":""}],"src":"3868:351:1"},{"body":{"nativeSrc":"4290:53:1","nodeType":"YulBlock","src":"4290:53:1","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4307:3:1","nodeType":"YulIdentifier","src":"4307:3:1"},{"arguments":[{"name":"value","nativeSrc":"4330:5:1","nodeType":"YulIdentifier","src":"4330:5:1"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"4312:17:1","nodeType":"YulIdentifier","src":"4312:17:1"},"nativeSrc":"4312:24:1","nodeType":"YulFunctionCall","src":"4312:24:1"}],"functionName":{"name":"mstore","nativeSrc":"4300:6:1","nodeType":"YulIdentifier","src":"4300:6:1"},"nativeSrc":"4300:37:1","nodeType":"YulFunctionCall","src":"4300:37:1"},"nativeSrc":"4300:37:1","nodeType":"YulExpressionStatement","src":"4300:37:1"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"4225:118:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4278:5:1","nodeType":"YulTypedName","src":"4278:5:1","type":""},{"name":"pos","nativeSrc":"4285:3:1","nodeType":"YulTypedName","src":"4285:3:1","type":""}],"src":"4225:118:1"},{"body":{"nativeSrc":"4447:124:1","nodeType":"YulBlock","src":"4447:124:1","statements":[{"nativeSrc":"4457:26:1","nodeType":"YulAssignment","src":"4457:26:1","value":{"arguments":[{"name":"headStart","nativeSrc":"4469:9:1","nodeType":"YulIdentifier","src":"4469:9:1"},{"kind":"number","nativeSrc":"4480:2:1","nodeType":"YulLiteral","src":"4480:2:1","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4465:3:1","nodeType":"YulIdentifier","src":"4465:3:1"},"nativeSrc":"4465:18:1","nodeType":"YulFunctionCall","src":"4465:18:1"},"variableNames":[{"name":"tail","nativeSrc":"4457:4:1","nodeType":"YulIdentifier","src":"4457:4:1"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4537:6:1","nodeType":"YulIdentifier","src":"4537:6:1"},{"arguments":[{"name":"headStart","nativeSrc":"4550:9:1","nodeType":"YulIdentifier","src":"4550:9:1"},{"kind":"number","nativeSrc":"4561:1:1","nodeType":"YulLiteral","src":"4561:1:1","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4546:3:1","nodeType":"YulIdentifier","src":"4546:3:1"},"nativeSrc":"4546:17:1","nodeType":"YulFunctionCall","src":"4546:17:1"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"4493:43:1","nodeType":"YulIdentifier","src":"4493:43:1"},"nativeSrc":"4493:71:1","nodeType":"YulFunctionCall","src":"4493:71:1"},"nativeSrc":"4493:71:1","nodeType":"YulExpressionStatement","src":"4493:71:1"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"4349:222:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4419:9:1","nodeType":"YulTypedName","src":"4419:9:1","type":""},{"name":"value0","nativeSrc":"4431:6:1","nodeType":"YulTypedName","src":"4431:6:1","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4442:4:1","nodeType":"YulTypedName","src":"4442:4:1","type":""}],"src":"4349:222:1"},{"body":{"nativeSrc":"4635:40:1","nodeType":"YulBlock","src":"4635:40:1","statements":[{"nativeSrc":"4646:22:1","nodeType":"YulAssignment","src":"4646:22:1","value":{"arguments":[{"name":"value","nativeSrc":"4662:5:1","nodeType":"YulIdentifier","src":"4662:5:1"}],"functionName":{"name":"mload","nativeSrc":"4656:5:1","nodeType":"YulIdentifier","src":"4656:5:1"},"nativeSrc":"4656:12:1","nodeType":"YulFunctionCall","src":"4656:12:1"},"variableNames":[{"name":"length","nativeSrc":"4646:6:1","nodeType":"YulIdentifier","src":"4646:6:1"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"4577:98:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4618:5:1","nodeType":"YulTypedName","src":"4618:5:1","type":""}],"returnVariables":[{"name":"length","nativeSrc":"4628:6:1","nodeType":"YulTypedName","src":"4628:6:1","type":""}],"src":"4577:98:1"},{"body":{"nativeSrc":"4794:34:1","nodeType":"YulBlock","src":"4794:34:1","statements":[{"nativeSrc":"4804:18:1","nodeType":"YulAssignment","src":"4804:18:1","value":{"name":"pos","nativeSrc":"4819:3:1","nodeType":"YulIdentifier","src":"4819:3:1"},"variableNames":[{"name":"updated_pos","nativeSrc":"4804:11:1","nodeType":"YulIdentifier","src":"4804:11:1"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"4681:147:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"4766:3:1","nodeType":"YulTypedName","src":"4766:3:1","type":""},{"name":"length","nativeSrc":"4771:6:1","nodeType":"YulTypedName","src":"4771:6:1","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"4782:11:1","nodeType":"YulTypedName","src":"4782:11:1","type":""}],"src":"4681:147:1"},{"body":{"nativeSrc":"4942:278:1","nodeType":"YulBlock","src":"4942:278:1","statements":[{"nativeSrc":"4952:52:1","nodeType":"YulVariableDeclaration","src":"4952:52:1","value":{"arguments":[{"name":"value","nativeSrc":"4998:5:1","nodeType":"YulIdentifier","src":"4998:5:1"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"4966:31:1","nodeType":"YulIdentifier","src":"4966:31:1"},"nativeSrc":"4966:38:1","nodeType":"YulFunctionCall","src":"4966:38:1"},"variables":[{"name":"length","nativeSrc":"4956:6:1","nodeType":"YulTypedName","src":"4956:6:1","type":""}]},{"nativeSrc":"5013:95:1","nodeType":"YulAssignment","src":"5013:95:1","value":{"arguments":[{"name":"pos","nativeSrc":"5096:3:1","nodeType":"YulIdentifier","src":"5096:3:1"},{"name":"length","nativeSrc":"5101:6:1","nodeType":"YulIdentifier","src":"5101:6:1"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"5020:75:1","nodeType":"YulIdentifier","src":"5020:75:1"},"nativeSrc":"5020:88:1","nodeType":"YulFunctionCall","src":"5020:88:1"},"variableNames":[{"name":"pos","nativeSrc":"5013:3:1","nodeType":"YulIdentifier","src":"5013:3:1"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5156:5:1","nodeType":"YulIdentifier","src":"5156:5:1"},{"kind":"number","nativeSrc":"5163:4:1","nodeType":"YulLiteral","src":"5163:4:1","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5152:3:1","nodeType":"YulIdentifier","src":"5152:3:1"},"nativeSrc":"5152:16:1","nodeType":"YulFunctionCall","src":"5152:16:1"},{"name":"pos","nativeSrc":"5170:3:1","nodeType":"YulIdentifier","src":"5170:3:1"},{"name":"length","nativeSrc":"5175:6:1","nodeType":"YulIdentifier","src":"5175:6:1"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"5117:34:1","nodeType":"YulIdentifier","src":"5117:34:1"},"nativeSrc":"5117:65:1","nodeType":"YulFunctionCall","src":"5117:65:1"},"nativeSrc":"5117:65:1","nodeType":"YulExpressionStatement","src":"5117:65:1"},{"nativeSrc":"5191:23:1","nodeType":"YulAssignment","src":"5191:23:1","value":{"arguments":[{"name":"pos","nativeSrc":"5202:3:1","nodeType":"YulIdentifier","src":"5202:3:1"},{"name":"length","nativeSrc":"5207:6:1","nodeType":"YulIdentifier","src":"5207:6:1"}],"functionName":{"name":"add","nativeSrc":"5198:3:1","nodeType":"YulIdentifier","src":"5198:3:1"},"nativeSrc":"5198:16:1","nodeType":"YulFunctionCall","src":"5198:16:1"},"variableNames":[{"name":"end","nativeSrc":"5191:3:1","nodeType":"YulIdentifier","src":"5191:3:1"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"4834:386:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4923:5:1","nodeType":"YulTypedName","src":"4923:5:1","type":""},{"name":"pos","nativeSrc":"4930:3:1","nodeType":"YulTypedName","src":"4930:3:1","type":""}],"returnVariables":[{"name":"end","nativeSrc":"4938:3:1","nodeType":"YulTypedName","src":"4938:3:1","type":""}],"src":"4834:386:1"},{"body":{"nativeSrc":"5360:137:1","nodeType":"YulBlock","src":"5360:137:1","statements":[{"nativeSrc":"5371:100:1","nodeType":"YulAssignment","src":"5371:100:1","value":{"arguments":[{"name":"value0","nativeSrc":"5458:6:1","nodeType":"YulIdentifier","src":"5458:6:1"},{"name":"pos","nativeSrc":"5467:3:1","nodeType":"YulIdentifier","src":"5467:3:1"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"5378:79:1","nodeType":"YulIdentifier","src":"5378:79:1"},"nativeSrc":"5378:93:1","nodeType":"YulFunctionCall","src":"5378:93:1"},"variableNames":[{"name":"pos","nativeSrc":"5371:3:1","nodeType":"YulIdentifier","src":"5371:3:1"}]},{"nativeSrc":"5481:10:1","nodeType":"YulAssignment","src":"5481:10:1","value":{"name":"pos","nativeSrc":"5488:3:1","nodeType":"YulIdentifier","src":"5488:3:1"},"variableNames":[{"name":"end","nativeSrc":"5481:3:1","nodeType":"YulIdentifier","src":"5481:3:1"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"5226:271:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"5339:3:1","nodeType":"YulTypedName","src":"5339:3:1","type":""},{"name":"value0","nativeSrc":"5345:6:1","nodeType":"YulTypedName","src":"5345:6:1","type":""}],"returnVariables":[{"name":"end","nativeSrc":"5356:3:1","nodeType":"YulTypedName","src":"5356:3:1","type":""}],"src":"5226:271:1"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr_fromMemory(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_memory_to_memory_with_cleanup(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := mload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_addresst_bytes_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := mload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_bytes_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n end := pos\n }\n\n}\n","id":1,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60a060405260405161096038038061096083398181016040528101906100259190610684565b610035828261007060201b60201c565b8173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250505050610795565b61007f8261016360201b60201c565b8173ffffffffffffffffffffffffffffffffffffffff167f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e60405160405180910390a26000815111156101505761014a8273ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561011a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061013e91906106e0565b8261030660201b60201c565b5061015f565b61015e61039060201b60201c565b5b5050565b60008173ffffffffffffffffffffffffffffffffffffffff163b036101bf57806040517f64ced0ec0000000000000000000000000000000000000000000000000000000081526004016101b6919061071c565b60405180910390fd5b806101f27fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5060001b6103cd60201b60201c565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008173ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610280573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a491906106e0565b905060008173ffffffffffffffffffffffffffffffffffffffff163b0361030257806040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526004016102f9919061071c565b60405180910390fd5b5050565b60606000808473ffffffffffffffffffffffffffffffffffffffff1684604051610330919061077e565b600060405180830381855af49150503d806000811461036b576040519150601f19603f3d011682016040523d82523d6000602084013e610370565b606091505b50915091506103868583836103d760201b60201c565b9250505092915050565b60003411156103cb576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6000819050919050565b6060826103f2576103ed8261046c60201b60201c565b610464565b6000825114801561041a575060008473ffffffffffffffffffffffffffffffffffffffff163b145b1561045c57836040517f9996b315000000000000000000000000000000000000000000000000000000008152600401610453919061071c565b60405180910390fd5b819050610465565b5b9392505050565b60008151111561047f5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006104f0826104c5565b9050919050565b610500816104e5565b811461050b57600080fd5b50565b60008151905061051d816104f7565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6105768261052d565b810181811067ffffffffffffffff821117156105955761059461053e565b5b80604052505050565b60006105a86104b1565b90506105b4828261056d565b919050565b600067ffffffffffffffff8211156105d4576105d361053e565b5b6105dd8261052d565b9050602081019050919050565b60005b838110156106085780820151818401526020810190506105ed565b60008484015250505050565b6000610627610622846105b9565b61059e565b90508281526020810184848401111561064357610642610528565b5b61064e8482856105ea565b509392505050565b600082601f83011261066b5761066a610523565b5b815161067b848260208601610614565b91505092915050565b6000806040838503121561069b5761069a6104bb565b5b60006106a98582860161050e565b925050602083015167ffffffffffffffff8111156106ca576106c96104c0565b5b6106d685828601610656565b9150509250929050565b6000602082840312156106f6576106f56104bb565b5b60006107048482850161050e565b91505092915050565b610716816104e5565b82525050565b6000602082019050610731600083018461070d565b92915050565b600081519050919050565b600081905092915050565b600061075882610737565b6107628185610742565b93506107728185602086016105ea565b80840191505092915050565b600061078a828461074d565b915081905092915050565b6080516101b16107af600039600060c701526101b16000f3fe608060405261000c61000e565b005b61001e610019610020565b61009d565b565b600061002a6100c3565b73ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610074573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610098919061014e565b905090565b3660008037600080366000845af43d6000803e80600081146100be573d6000f35b3d6000fd5b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061011b826100f0565b9050919050565b61012b81610110565b811461013657600080fd5b50565b60008151905061014881610122565b92915050565b600060208284031215610164576101636100eb565b5b600061017284828501610139565b9150509291505056fea2646970667358221220c3ae381cdcb092dca499b2dd32af80658a48cc272ab16fe0ef3baa84f4b3436264736f6c634300081c0033","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x960 CODESIZE SUB DUP1 PUSH2 0x960 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x25 SWAP2 SWAP1 PUSH2 0x684 JUMP JUMPDEST PUSH2 0x35 DUP3 DUP3 PUSH2 0x70 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x80 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP POP POP PUSH2 0x795 JUMP JUMPDEST PUSH2 0x7F DUP3 PUSH2 0x163 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x1CF3B03A6CF19FA2BABA4DF148E9DCABEDEA7F8A5C07840E207E5C089BE95D3E PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x150 JUMPI PUSH2 0x14A DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x5C60DA1B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x11A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x13E SWAP2 SWAP1 PUSH2 0x6E0 JUMP JUMPDEST DUP3 PUSH2 0x306 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP PUSH2 0x15F JUMP JUMPDEST PUSH2 0x15E PUSH2 0x390 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE SUB PUSH2 0x1BF JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x64CED0EC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1B6 SWAP2 SWAP1 PUSH2 0x71C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH2 0x1F2 PUSH32 0xA3F0AD74E5423AEBFD80D3EF4346578335A9A72AEAEE59FF6CB3582B35133D50 PUSH1 0x0 SHL PUSH2 0x3CD PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x5C60DA1B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x280 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2A4 SWAP2 SWAP1 PUSH2 0x6E0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE SUB PUSH2 0x302 JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x4C9C8CE300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2F9 SWAP2 SWAP1 PUSH2 0x71C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH1 0x40 MLOAD PUSH2 0x330 SWAP2 SWAP1 PUSH2 0x77E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x36B JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x370 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x386 DUP6 DUP4 DUP4 PUSH2 0x3D7 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLVALUE GT ISZERO PUSH2 0x3CB JUMPI PUSH1 0x40 MLOAD PUSH32 0xB398979F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 DUP3 PUSH2 0x3F2 JUMPI PUSH2 0x3ED DUP3 PUSH2 0x46C PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x464 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD EQ DUP1 ISZERO PUSH2 0x41A JUMPI POP PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE EQ JUMPDEST ISZERO PUSH2 0x45C JUMPI DUP4 PUSH1 0x40 MLOAD PUSH32 0x9996B31500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x453 SWAP2 SWAP1 PUSH2 0x71C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 SWAP1 POP PUSH2 0x465 JUMP JUMPDEST JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x47F JUMPI DUP1 MLOAD DUP1 DUP3 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x1425EA4200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F0 DUP3 PUSH2 0x4C5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x500 DUP2 PUSH2 0x4E5 JUMP JUMPDEST DUP2 EQ PUSH2 0x50B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x51D DUP2 PUSH2 0x4F7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x576 DUP3 PUSH2 0x52D JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x595 JUMPI PUSH2 0x594 PUSH2 0x53E JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5A8 PUSH2 0x4B1 JUMP JUMPDEST SWAP1 POP PUSH2 0x5B4 DUP3 DUP3 PUSH2 0x56D JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x5D4 JUMPI PUSH2 0x5D3 PUSH2 0x53E JUMP JUMPDEST JUMPDEST PUSH2 0x5DD DUP3 PUSH2 0x52D JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x608 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x5ED JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x627 PUSH2 0x622 DUP5 PUSH2 0x5B9 JUMP JUMPDEST PUSH2 0x59E JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x643 JUMPI PUSH2 0x642 PUSH2 0x528 JUMP JUMPDEST JUMPDEST PUSH2 0x64E DUP5 DUP3 DUP6 PUSH2 0x5EA JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x66B JUMPI PUSH2 0x66A PUSH2 0x523 JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH2 0x67B DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x614 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x69B JUMPI PUSH2 0x69A PUSH2 0x4BB JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x6A9 DUP6 DUP3 DUP7 ADD PUSH2 0x50E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x6CA JUMPI PUSH2 0x6C9 PUSH2 0x4C0 JUMP JUMPDEST JUMPDEST PUSH2 0x6D6 DUP6 DUP3 DUP7 ADD PUSH2 0x656 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x6F6 JUMPI PUSH2 0x6F5 PUSH2 0x4BB JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x704 DUP5 DUP3 DUP6 ADD PUSH2 0x50E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x716 DUP2 PUSH2 0x4E5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x731 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x70D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x758 DUP3 PUSH2 0x737 JUMP JUMPDEST PUSH2 0x762 DUP2 DUP6 PUSH2 0x742 JUMP JUMPDEST SWAP4 POP PUSH2 0x772 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x5EA JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x78A DUP3 DUP5 PUSH2 0x74D JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x1B1 PUSH2 0x7AF PUSH1 0x0 CODECOPY PUSH1 0x0 PUSH1 0xC7 ADD MSTORE PUSH2 0x1B1 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH2 0xC PUSH2 0xE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1E PUSH2 0x19 PUSH2 0x20 JUMP JUMPDEST PUSH2 0x9D JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A PUSH2 0xC3 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x5C60DA1B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x74 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x98 SWAP2 SWAP1 PUSH2 0x14E JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST CALLDATASIZE PUSH1 0x0 DUP1 CALLDATACOPY PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0xBE JUMPI RETURNDATASIZE PUSH1 0x0 RETURN JUMPDEST RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH32 0x0 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11B DUP3 PUSH2 0xF0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x12B DUP2 PUSH2 0x110 JUMP JUMPDEST DUP2 EQ PUSH2 0x136 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x148 DUP2 PUSH2 0x122 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x164 JUMPI PUSH2 0x163 PUSH2 0xEB JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x172 DUP5 DUP3 DUP6 ADD PUSH2 0x139 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC3 0xAE CODESIZE SHR 0xDC 0xB0 SWAP3 0xDC LOG4 SWAP10 0xB2 0xDD ORIGIN 0xAF DUP1 PUSH6 0x8A48CC272AB1 PUSH16 0xE0EF3BAA84F4B3436264736F6C634300 ADDMOD SHR STOP CALLER ","sourceMap":"254556:1194:0:-:0;;;255213:147;;;;;;;;;;;;;;;;;;;;;:::i;:::-;255278:49;255314:6;255322:4;255278:35;;;:49;;:::i;:::-;255347:6;255337:16;;;;;;;;;;255213:147;;254556:1194;;239054:333;239143:21;239154:9;239143:10;;;:21;;:::i;:::-;239194:9;239179:25;;;;;;;;;;;;239233:1;239219:4;:11;:15;239215:166;;;239250:71;239287:9;239279:33;;;:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;239316:4;239250:28;;;:71;;:::i;:::-;;239215:166;;;239352:18;:16;;;:18;;:::i;:::-;239215:166;239054:333;;:::o;238092:437::-;238178:1;238153:9;:21;;;:26;238149:95;;238223:9;238202:31;;;;;;;;;;;:::i;:::-;;;;;;;;238149:95;238302:9;238254:39;237759:66;238281:11;;238254:26;;;:39;;:::i;:::-;:45;;;:57;;;;;;;;;;;;;;;;;;238322:28;238361:9;238353:33;;;:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;238322:66;;238438:1;238402:20;:32;;;:37;238398:125;;238491:20;238462:50;;;;;;;;;;;:::i;:::-;;;;;;;;238398:125;238139:390;238092:437;:::o;173209:253::-;173292:12;173317;173331:23;173358:6;:19;;173378:4;173358:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;173316:67;;;;173400:55;173427:6;173435:7;173444:10;173400:26;;;:55;;:::i;:::-;173393:62;;;;173209:253;;;;:::o;239576:122::-;239638:1;239626:9;:13;239622:70;;;239662:19;;;;;;;;;;;;;;239622:70;239576:122::o;178098:190::-;178159:21;178268:4;178258:14;;178098:190;;;:::o;173728:582::-;173872:12;173901:7;173896:408;;173924:19;173932:10;173924:7;;;:19;;:::i;:::-;173896:408;;;174169:1;174148:10;:17;:22;:49;;;;;174196:1;174174:6;:18;;;:23;174148:49;174144:119;;;174241:6;174224:24;;;;;;;;;;;:::i;:::-;;;;;;;;174144:119;174283:10;174276:17;;;;173896:408;173728:582;;;;;;:::o;174846:516::-;174997:1;174977:10;:17;:21;174973:383;;;175205:10;175199:17;175261:15;175248:10;175244:2;175240:19;175233:44;174973:383;175328:17;;;;;;;;;;;;;;7:75:1;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:117::-;954:1;951;944:12;968:117;1077:1;1074;1067:12;1091:102;1132:6;1183:2;1179:7;1174:2;1167:5;1163:14;1159:28;1149:38;;1091:102;;;:::o;1199:180::-;1247:77;1244:1;1237:88;1344:4;1341:1;1334:15;1368:4;1365:1;1358:15;1385:281;1468:27;1490:4;1468:27;:::i;:::-;1460:6;1456:40;1598:6;1586:10;1583:22;1562:18;1550:10;1547:34;1544:62;1541:88;;;1609:18;;:::i;:::-;1541:88;1649:10;1645:2;1638:22;1428:238;1385:281;;:::o;1672:129::-;1706:6;1733:20;;:::i;:::-;1723:30;;1762:33;1790:4;1782:6;1762:33;:::i;:::-;1672:129;;;:::o;1807:307::-;1868:4;1958:18;1950:6;1947:30;1944:56;;;1980:18;;:::i;:::-;1944:56;2018:29;2040:6;2018:29;:::i;:::-;2010:37;;2102:4;2096;2092:15;2084:23;;1807:307;;;:::o;2120:248::-;2202:1;2212:113;2226:6;2223:1;2220:13;2212:113;;;2311:1;2306:3;2302:11;2296:18;2292:1;2287:3;2283:11;2276:39;2248:2;2245:1;2241:10;2236:15;;2212:113;;;2359:1;2350:6;2345:3;2341:16;2334:27;2182:186;2120:248;;;:::o;2374:432::-;2462:5;2487:65;2503:48;2544:6;2503:48;:::i;:::-;2487:65;:::i;:::-;2478:74;;2575:6;2568:5;2561:21;2613:4;2606:5;2602:16;2651:3;2642:6;2637:3;2633:16;2630:25;2627:112;;;2658:79;;:::i;:::-;2627:112;2748:52;2793:6;2788:3;2783;2748:52;:::i;:::-;2468:338;2374:432;;;;;:::o;2825:353::-;2891:5;2940:3;2933:4;2925:6;2921:17;2917:27;2907:122;;2948:79;;:::i;:::-;2907:122;3058:6;3052:13;3083:89;3168:3;3160:6;3153:4;3145:6;3141:17;3083:89;:::i;:::-;3074:98;;2897:281;2825:353;;;;:::o;3184:678::-;3272:6;3280;3329:2;3317:9;3308:7;3304:23;3300:32;3297:119;;;3335:79;;:::i;:::-;3297:119;3455:1;3480:64;3536:7;3527:6;3516:9;3512:22;3480:64;:::i;:::-;3470:74;;3426:128;3614:2;3603:9;3599:18;3593:25;3645:18;3637:6;3634:30;3631:117;;;3667:79;;:::i;:::-;3631:117;3772:73;3837:7;3828:6;3817:9;3813:22;3772:73;:::i;:::-;3762:83;;3564:291;3184:678;;;;;:::o;3868:351::-;3938:6;3987:2;3975:9;3966:7;3962:23;3958:32;3955:119;;;3993:79;;:::i;:::-;3955:119;4113:1;4138:64;4194:7;4185:6;4174:9;4170:22;4138:64;:::i;:::-;4128:74;;4084:128;3868:351;;;;:::o;4225:118::-;4312:24;4330:5;4312:24;:::i;:::-;4307:3;4300:37;4225:118;;:::o;4349:222::-;4442:4;4480:2;4469:9;4465:18;4457:26;;4493:71;4561:1;4550:9;4546:17;4537:6;4493:71;:::i;:::-;4349:222;;;;:::o;4577:98::-;4628:6;4662:5;4656:12;4646:22;;4577:98;;;:::o;4681:147::-;4782:11;4819:3;4804:18;;4681:147;;;;:::o;4834:386::-;4938:3;4966:38;4998:5;4966:38;:::i;:::-;5020:88;5101:6;5096:3;5020:88;:::i;:::-;5013:95;;5117:65;5175:6;5170:3;5163:4;5156:5;5152:16;5117:65;:::i;:::-;5207:6;5202:3;5198:16;5191:23;;4942:278;4834:386;;;;:::o;5226:271::-;5356:3;5378:93;5467:3;5458:6;5378:93;:::i;:::-;5371:100;;5488:3;5481:10;;5226:271;;;;:::o;254556:1194:0:-;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_12211":{"entryPoint":null,"id":12211,"parameterSlots":0,"returnSlots":0},"@_delegate_12187":{"entryPoint":157,"id":12187,"parameterSlots":1,"returnSlots":0},"@_fallback_12203":{"entryPoint":14,"id":12203,"parameterSlots":0,"returnSlots":0},"@_getBeacon_17292":{"entryPoint":195,"id":17292,"parameterSlots":0,"returnSlots":1},"@_implementation_17283":{"entryPoint":32,"id":17283,"parameterSlots":0,"returnSlots":1},"abi_decode_t_address_fromMemory":{"entryPoint":313,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":334,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"cleanup_t_address":{"entryPoint":272,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":240,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":235,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_t_address":{"entryPoint":290,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:1199:1","nodeType":"YulBlock","src":"0:1199:1","statements":[{"body":{"nativeSrc":"47:35:1","nodeType":"YulBlock","src":"47:35:1","statements":[{"nativeSrc":"57:19:1","nodeType":"YulAssignment","src":"57:19:1","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:1","nodeType":"YulLiteral","src":"73:2:1","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:1","nodeType":"YulIdentifier","src":"67:5:1"},"nativeSrc":"67:9:1","nodeType":"YulFunctionCall","src":"67:9:1"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:1","nodeType":"YulIdentifier","src":"57:6:1"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:1","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:1","nodeType":"YulTypedName","src":"40:6:1","type":""}],"src":"7:75:1"},{"body":{"nativeSrc":"177:28:1","nodeType":"YulBlock","src":"177:28:1","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:1","nodeType":"YulLiteral","src":"194:1:1","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:1","nodeType":"YulLiteral","src":"197:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:1","nodeType":"YulIdentifier","src":"187:6:1"},"nativeSrc":"187:12:1","nodeType":"YulFunctionCall","src":"187:12:1"},"nativeSrc":"187:12:1","nodeType":"YulExpressionStatement","src":"187:12:1"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:1","nodeType":"YulFunctionDefinition","src":"88:117:1"},{"body":{"nativeSrc":"300:28:1","nodeType":"YulBlock","src":"300:28:1","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:1","nodeType":"YulLiteral","src":"317:1:1","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:1","nodeType":"YulLiteral","src":"320:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:1","nodeType":"YulIdentifier","src":"310:6:1"},"nativeSrc":"310:12:1","nodeType":"YulFunctionCall","src":"310:12:1"},"nativeSrc":"310:12:1","nodeType":"YulExpressionStatement","src":"310:12:1"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:1","nodeType":"YulFunctionDefinition","src":"211:117:1"},{"body":{"nativeSrc":"379:81:1","nodeType":"YulBlock","src":"379:81:1","statements":[{"nativeSrc":"389:65:1","nodeType":"YulAssignment","src":"389:65:1","value":{"arguments":[{"name":"value","nativeSrc":"404:5:1","nodeType":"YulIdentifier","src":"404:5:1"},{"kind":"number","nativeSrc":"411:42:1","nodeType":"YulLiteral","src":"411:42:1","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:1","nodeType":"YulIdentifier","src":"400:3:1"},"nativeSrc":"400:54:1","nodeType":"YulFunctionCall","src":"400:54:1"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:1","nodeType":"YulIdentifier","src":"389:7:1"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:1","nodeType":"YulTypedName","src":"361:5:1","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:1","nodeType":"YulTypedName","src":"371:7:1","type":""}],"src":"334:126:1"},{"body":{"nativeSrc":"511:51:1","nodeType":"YulBlock","src":"511:51:1","statements":[{"nativeSrc":"521:35:1","nodeType":"YulAssignment","src":"521:35:1","value":{"arguments":[{"name":"value","nativeSrc":"550:5:1","nodeType":"YulIdentifier","src":"550:5:1"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:1","nodeType":"YulIdentifier","src":"532:17:1"},"nativeSrc":"532:24:1","nodeType":"YulFunctionCall","src":"532:24:1"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:1","nodeType":"YulIdentifier","src":"521:7:1"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:1","nodeType":"YulTypedName","src":"493:5:1","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:1","nodeType":"YulTypedName","src":"503:7:1","type":""}],"src":"466:96:1"},{"body":{"nativeSrc":"611:79:1","nodeType":"YulBlock","src":"611:79:1","statements":[{"body":{"nativeSrc":"668:16:1","nodeType":"YulBlock","src":"668:16:1","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:1","nodeType":"YulLiteral","src":"677:1:1","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:1","nodeType":"YulLiteral","src":"680:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:1","nodeType":"YulIdentifier","src":"670:6:1"},"nativeSrc":"670:12:1","nodeType":"YulFunctionCall","src":"670:12:1"},"nativeSrc":"670:12:1","nodeType":"YulExpressionStatement","src":"670:12:1"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:1","nodeType":"YulIdentifier","src":"634:5:1"},{"arguments":[{"name":"value","nativeSrc":"659:5:1","nodeType":"YulIdentifier","src":"659:5:1"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:1","nodeType":"YulIdentifier","src":"641:17:1"},"nativeSrc":"641:24:1","nodeType":"YulFunctionCall","src":"641:24:1"}],"functionName":{"name":"eq","nativeSrc":"631:2:1","nodeType":"YulIdentifier","src":"631:2:1"},"nativeSrc":"631:35:1","nodeType":"YulFunctionCall","src":"631:35:1"}],"functionName":{"name":"iszero","nativeSrc":"624:6:1","nodeType":"YulIdentifier","src":"624:6:1"},"nativeSrc":"624:43:1","nodeType":"YulFunctionCall","src":"624:43:1"},"nativeSrc":"621:63:1","nodeType":"YulIf","src":"621:63:1"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:1","nodeType":"YulTypedName","src":"604:5:1","type":""}],"src":"568:122:1"},{"body":{"nativeSrc":"759:80:1","nodeType":"YulBlock","src":"759:80:1","statements":[{"nativeSrc":"769:22:1","nodeType":"YulAssignment","src":"769:22:1","value":{"arguments":[{"name":"offset","nativeSrc":"784:6:1","nodeType":"YulIdentifier","src":"784:6:1"}],"functionName":{"name":"mload","nativeSrc":"778:5:1","nodeType":"YulIdentifier","src":"778:5:1"},"nativeSrc":"778:13:1","nodeType":"YulFunctionCall","src":"778:13:1"},"variableNames":[{"name":"value","nativeSrc":"769:5:1","nodeType":"YulIdentifier","src":"769:5:1"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"827:5:1","nodeType":"YulIdentifier","src":"827:5:1"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"800:26:1","nodeType":"YulIdentifier","src":"800:26:1"},"nativeSrc":"800:33:1","nodeType":"YulFunctionCall","src":"800:33:1"},"nativeSrc":"800:33:1","nodeType":"YulExpressionStatement","src":"800:33:1"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"696:143:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"737:6:1","nodeType":"YulTypedName","src":"737:6:1","type":""},{"name":"end","nativeSrc":"745:3:1","nodeType":"YulTypedName","src":"745:3:1","type":""}],"returnVariables":[{"name":"value","nativeSrc":"753:5:1","nodeType":"YulTypedName","src":"753:5:1","type":""}],"src":"696:143:1"},{"body":{"nativeSrc":"922:274:1","nodeType":"YulBlock","src":"922:274:1","statements":[{"body":{"nativeSrc":"968:83:1","nodeType":"YulBlock","src":"968:83:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"970:77:1","nodeType":"YulIdentifier","src":"970:77:1"},"nativeSrc":"970:79:1","nodeType":"YulFunctionCall","src":"970:79:1"},"nativeSrc":"970:79:1","nodeType":"YulExpressionStatement","src":"970:79:1"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"943:7:1","nodeType":"YulIdentifier","src":"943:7:1"},{"name":"headStart","nativeSrc":"952:9:1","nodeType":"YulIdentifier","src":"952:9:1"}],"functionName":{"name":"sub","nativeSrc":"939:3:1","nodeType":"YulIdentifier","src":"939:3:1"},"nativeSrc":"939:23:1","nodeType":"YulFunctionCall","src":"939:23:1"},{"kind":"number","nativeSrc":"964:2:1","nodeType":"YulLiteral","src":"964:2:1","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"935:3:1","nodeType":"YulIdentifier","src":"935:3:1"},"nativeSrc":"935:32:1","nodeType":"YulFunctionCall","src":"935:32:1"},"nativeSrc":"932:119:1","nodeType":"YulIf","src":"932:119:1"},{"nativeSrc":"1061:128:1","nodeType":"YulBlock","src":"1061:128:1","statements":[{"nativeSrc":"1076:15:1","nodeType":"YulVariableDeclaration","src":"1076:15:1","value":{"kind":"number","nativeSrc":"1090:1:1","nodeType":"YulLiteral","src":"1090:1:1","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1080:6:1","nodeType":"YulTypedName","src":"1080:6:1","type":""}]},{"nativeSrc":"1105:74:1","nodeType":"YulAssignment","src":"1105:74:1","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1151:9:1","nodeType":"YulIdentifier","src":"1151:9:1"},{"name":"offset","nativeSrc":"1162:6:1","nodeType":"YulIdentifier","src":"1162:6:1"}],"functionName":{"name":"add","nativeSrc":"1147:3:1","nodeType":"YulIdentifier","src":"1147:3:1"},"nativeSrc":"1147:22:1","nodeType":"YulFunctionCall","src":"1147:22:1"},{"name":"dataEnd","nativeSrc":"1171:7:1","nodeType":"YulIdentifier","src":"1171:7:1"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1115:31:1","nodeType":"YulIdentifier","src":"1115:31:1"},"nativeSrc":"1115:64:1","nodeType":"YulFunctionCall","src":"1115:64:1"},"variableNames":[{"name":"value0","nativeSrc":"1105:6:1","nodeType":"YulIdentifier","src":"1105:6:1"}]}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nativeSrc":"845:351:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"892:9:1","nodeType":"YulTypedName","src":"892:9:1","type":""},{"name":"dataEnd","nativeSrc":"903:7:1","nodeType":"YulTypedName","src":"903:7:1","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"915:6:1","nodeType":"YulTypedName","src":"915:6:1","type":""}],"src":"845:351:1"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n","id":1,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"17248":[{"length":32,"start":199}]},"linkReferences":{},"object":"608060405261000c61000e565b005b61001e610019610020565b61009d565b565b600061002a6100c3565b73ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610074573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610098919061014e565b905090565b3660008037600080366000845af43d6000803e80600081146100be573d6000f35b3d6000fd5b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061011b826100f0565b9050919050565b61012b81610110565b811461013657600080fd5b50565b60008151905061014881610122565b92915050565b600060208284031215610164576101636100eb565b5b600061017284828501610139565b9150509291505056fea2646970667358221220c3ae381cdcb092dca499b2dd32af80658a48cc272ab16fe0ef3baa84f4b3436264736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH2 0xC PUSH2 0xE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1E PUSH2 0x19 PUSH2 0x20 JUMP JUMPDEST PUSH2 0x9D JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A PUSH2 0xC3 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x5C60DA1B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x74 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x98 SWAP2 SWAP1 PUSH2 0x14E JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST CALLDATASIZE PUSH1 0x0 DUP1 CALLDATACOPY PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0xBE JUMPI RETURNDATASIZE PUSH1 0x0 RETURN JUMPDEST RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH32 0x0 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11B DUP3 PUSH2 0xF0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x12B DUP2 PUSH2 0x110 JUMP JUMPDEST DUP2 EQ PUSH2 0x136 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x148 DUP2 PUSH2 0x122 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x164 JUMPI PUSH2 0x163 PUSH2 0xEB JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x172 DUP5 DUP3 DUP6 ADD PUSH2 0x139 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC3 0xAE CODESIZE SHR 0xDC 0xB0 SWAP3 0xDC LOG4 SWAP10 0xB2 0xDD ORIGIN 0xAF DUP1 PUSH6 0x8A48CC272AB1 PUSH16 0xE0EF3BAA84F4B3436264736F6C634300 ADDMOD SHR STOP CALLER ","sourceMap":"254556:1194:0:-:0;;;168521:11;:9;:11::i;:::-;254556:1194;168195:83;168243:28;168253:17;:15;:17::i;:::-;168243:9;:28::i;:::-;168195:83::o;255463:138::-;255530:7;255564:12;:10;:12::i;:::-;255556:36;;;:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;255549:45;;255463:138;:::o;166821:895::-;167159:14;167156:1;167153;167140:34;167373:1;167370;167354:14;167351:1;167335:14;167328:5;167315:60;167449:16;167446:1;167443;167428:38;167487:6;167559:1;167554:66;;;;167669:16;167666:1;167659:27;167554:66;167589:16;167586:1;167579:27;255655:93;255708:7;255734;255727:14;;255655:93;:::o;88:117:1:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:351::-;915:6;964:2;952:9;943:7;939:23;935:32;932:119;;;970:79;;:::i;:::-;932:119;1090:1;1115:64;1171:7;1162:6;1151:9;1147:22;1115:64;:::i;:::-;1105:74;;1061:128;845:351;;;;:::o"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidBeacon\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"}],\"devdoc\":{\"details\":\"This contract implements a proxy that gets the implementation address for each call from an {UpgradeableBeacon}. The beacon address can only be set once during construction, and cannot be changed afterwards. It is stored in an immutable variable to avoid unnecessary storage reads, and also in the beacon storage slot specified by https://eips.ethereum.org/EIPS/eip-1967[EIP1967] so that it can be accessed externally. CAUTION: Since the beacon address can never be changed, you must ensure that you either control the beacon, or trust the beacon to not upgrade the implementation maliciously. IMPORTANT: Do not use the implementation logic to modify the beacon storage slot. Doing so would leave the proxy in an inconsistent state where the beacon storage slot does not match the beacon address.\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidBeacon(address)\":[{\"details\":\"The `beacon` of the proxy is invalid.\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}]},\"events\":{\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is changed.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the proxy with `beacon`. If `data` is nonempty, it's used as data in a delegate call to the implementation returned by the beacon. This will typically be an encoded function call, and allows initializing the storage of the proxy like a Solidity constructor. Requirements: - `beacon` must be a contract with the interface {IBeacon}. - If `data` is empty, `msg.value` must be zero.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Upgrades.sol\":\"BeaconProxy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"src/Upgrades.sol\":{\"keccak256\":\"0x420d4a351f46367d1fd8ea9409af6772fc442019d8f51bdd61b2114886ab3f98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dd2a0235e70d4f89d1d67af78ec13dd396224ec6cd87e4f906796bf50e385204\",\"dweb:/ipfs/QmULbNuaseWNiMWpBdR7ayYw5tknsYji6YtPG9KYd4k9Dp\"]}},\"version\":1}"},"Context":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Upgrades.sol\":\"Context\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"src/Upgrades.sol\":{\"keccak256\":\"0x420d4a351f46367d1fd8ea9409af6772fc442019d8f51bdd61b2114886ab3f98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dd2a0235e70d4f89d1d67af78ec13dd396224ec6cd87e4f906796bf50e385204\",\"dweb:/ipfs/QmULbNuaseWNiMWpBdR7ayYw5tknsYji6YtPG9KYd4k9Dp\"]}},\"version\":1}"},"Core":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e2f4192d65245b2f93455b53b035a67cb13445f3c45b8de343e3e042ec183d2964736f6c634300081c0033","opcodes":"PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE2 DELEGATECALL NOT 0x2D PUSH6 0x245B2F93455B MSTORE8 0xB0 CALLDATALOAD 0xA6 PUSH29 0xB13445F3C45B8DE343E3E042EC183D2964736F6C634300081C00330000 ","sourceMap":"272409:18477:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e2f4192d65245b2f93455b53b035a67cb13445f3c45b8de343e3e042ec183d2964736f6c634300081c0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE2 DELEGATECALL NOT 0x2D PUSH6 0x245B2F93455B MSTORE8 0xB0 CALLDATALOAD 0xA6 PUSH29 0xB13445F3C45B8DE343E3E042EC183D2964736F6C634300081C00330000 ","sourceMap":"272409:18477:0:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Internal helper methods to validate/deploy implementations and perform upgrades. WARNING: DO NOT USE DIRECTLY. Use Upgrades.sol, LegacyUpgrades.sol or Defender.sol instead.\",\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"ADMIN_SLOT\":{\"details\":\"Storage slot with the admin of the proxy. This is the keccak-256 hash of \\\"eip1967.proxy.admin\\\" subtracted by 1.\"},\"BEACON_SLOT\":{\"details\":\"Storage slot with the UpgradeableBeacon contract which defines the implementation for the proxy. This is the keccak-256 hash of \\\"eip1967.proxy.beacon\\\" subtracted by 1.\"},\"IMPLEMENTATION_SLOT\":{\"details\":\"Storage slot with the address of the implementation. This is the keccak-256 hash of \\\"eip1967.proxy.implementation\\\" subtracted by 1.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Upgrades.sol\":\"Core\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"src/Upgrades.sol\":{\"keccak256\":\"0x420d4a351f46367d1fd8ea9409af6772fc442019d8f51bdd61b2114886ab3f98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dd2a0235e70d4f89d1d67af78ec13dd396224ec6cd87e4f906796bf50e385204\",\"dweb:/ipfs/QmULbNuaseWNiMWpBdR7ayYw5tknsYji6YtPG9KYd4k9Dp\"]}},\"version\":1}"},"Defender":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122071bf07a7573c7876323eecca2a1b826bc2256b29087a6ac5cf76ab4722174afa64736f6c634300081c0033","opcodes":"PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH18 0xBF07A7573C7876323EECCA2A1B826BC2256B 0x29 ADDMOD PUSH27 0x6AC5CF76AB4722174AFA64736F6C634300081C0033000000000000 ","sourceMap":"264000:7975:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122071bf07a7573c7876323eecca2a1b826bc2256b29087a6ac5cf76ab4722174afa64736f6c634300081c0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH18 0xBF07A7573C7876323EECCA2A1B826BC2256B 0x29 ADDMOD PUSH27 0x6AC5CF76AB4722174AFA64736F6C634300081C0033000000000000 ","sourceMap":"264000:7975:0:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for interacting with OpenZeppelin Defender from Forge scripts or tests.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Upgrades.sol\":\"Defender\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"src/Upgrades.sol\":{\"keccak256\":\"0x420d4a351f46367d1fd8ea9409af6772fc442019d8f51bdd61b2114886ab3f98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dd2a0235e70d4f89d1d67af78ec13dd396224ec6cd87e4f906796bf50e385204\",\"dweb:/ipfs/QmULbNuaseWNiMWpBdR7ayYw5tknsYji6YtPG9KYd4k9Dp\"]}},\"version\":1}"},"DefenderDeploy":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122000823474dc2ec5670c8beea7650217b0591cf075a78888a7f9cd275c701b2c3164736f6c634300081c0033","opcodes":"PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 STOP DUP3 CALLVALUE PUSH21 0xDC2EC5670C8BEEA7650217B0591CF075A78888A7F9 0xCD 0x27 TLOAD PUSH17 0x1B2C3164736F6C634300081C0033000000 ","sourceMap":"291086:13080:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122000823474dc2ec5670c8beea7650217b0591cf075a78888a7f9cd275c701b2c3164736f6c634300081c0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 STOP DUP3 CALLVALUE PUSH21 0xDC2EC5670C8BEEA7650217B0591CF075A78888A7F9 0xCD 0x27 TLOAD PUSH17 0x1B2C3164736F6C634300081C0033000000 ","sourceMap":"291086:13080:0:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Internal helper methods for Defender deployments. WARNING: DO NOT USE DIRECTLY. Use Defender.sol instead.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Upgrades.sol\":\"DefenderDeploy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"src/Upgrades.sol\":{\"keccak256\":\"0x420d4a351f46367d1fd8ea9409af6772fc442019d8f51bdd61b2114886ab3f98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dd2a0235e70d4f89d1d67af78ec13dd396224ec6cd87e4f906796bf50e385204\",\"dweb:/ipfs/QmULbNuaseWNiMWpBdR7ayYw5tknsYji6YtPG9KYd4k9Dp\"]}},\"version\":1}"},"ERC1967Proxy":{"abi":[{"inputs":[{"internalType":"address","name":"implementation","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"AddressEmptyCode","type":"error"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"name":"ERC1967InvalidImplementation","type":"error"},{"inputs":[],"name":"ERC1967NonPayable","type":"error"},{"inputs":[],"name":"FailedInnerCall","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"stateMutability":"payable","type":"fallback"}],"evm":{"bytecode":{"functionDebugData":{"@_17230":{"entryPoint":null,"id":17230,"parameterSlots":2,"returnSlots":0},"@_checkNonPayable_16373":{"entryPoint":542,"id":16373,"parameterSlots":0,"returnSlots":0},"@_revert_12470":{"entryPoint":762,"id":12470,"parameterSlots":1,"returnSlots":0},"@_setImplementation_16159":{"entryPoint":193,"id":16159,"parameterSlots":1,"returnSlots":0},"@functionDelegateCall_12390":{"entryPoint":404,"id":12390,"parameterSlots":2,"returnSlots":1},"@getAddressSlot_12529":{"entryPoint":603,"id":12529,"parameterSlots":1,"returnSlots":1},"@upgradeToAndCall_16193":{"entryPoint":60,"id":16193,"parameterSlots":2,"returnSlots":0},"@verifyCallResultFromTarget_12430":{"entryPoint":613,"id":12430,"parameterSlots":3,"returnSlots":1},"abi_decode_available_length_t_bytes_memory_ptr_fromMemory":{"entryPoint":1186,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address_fromMemory":{"entryPoint":924,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_memory_ptr_fromMemory":{"entryPoint":1252,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_bytes_memory_ptr_fromMemory":{"entryPoint":1298,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":1390,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":1454,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":1503,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":1405,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":1068,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":831,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":1095,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":1432,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":1443,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":883,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":851,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":1144,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":1019,"id":null,"parameterSlots":2,"returnSlots":0},"panic_error_0x41":{"entryPoint":972,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":945,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":950,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":846,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":841,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":955,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_address":{"entryPoint":901,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:5143:1","nodeType":"YulBlock","src":"0:5143:1","statements":[{"body":{"nativeSrc":"47:35:1","nodeType":"YulBlock","src":"47:35:1","statements":[{"nativeSrc":"57:19:1","nodeType":"YulAssignment","src":"57:19:1","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:1","nodeType":"YulLiteral","src":"73:2:1","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:1","nodeType":"YulIdentifier","src":"67:5:1"},"nativeSrc":"67:9:1","nodeType":"YulFunctionCall","src":"67:9:1"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:1","nodeType":"YulIdentifier","src":"57:6:1"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:1","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:1","nodeType":"YulTypedName","src":"40:6:1","type":""}],"src":"7:75:1"},{"body":{"nativeSrc":"177:28:1","nodeType":"YulBlock","src":"177:28:1","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:1","nodeType":"YulLiteral","src":"194:1:1","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:1","nodeType":"YulLiteral","src":"197:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:1","nodeType":"YulIdentifier","src":"187:6:1"},"nativeSrc":"187:12:1","nodeType":"YulFunctionCall","src":"187:12:1"},"nativeSrc":"187:12:1","nodeType":"YulExpressionStatement","src":"187:12:1"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:1","nodeType":"YulFunctionDefinition","src":"88:117:1"},{"body":{"nativeSrc":"300:28:1","nodeType":"YulBlock","src":"300:28:1","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:1","nodeType":"YulLiteral","src":"317:1:1","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:1","nodeType":"YulLiteral","src":"320:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:1","nodeType":"YulIdentifier","src":"310:6:1"},"nativeSrc":"310:12:1","nodeType":"YulFunctionCall","src":"310:12:1"},"nativeSrc":"310:12:1","nodeType":"YulExpressionStatement","src":"310:12:1"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:1","nodeType":"YulFunctionDefinition","src":"211:117:1"},{"body":{"nativeSrc":"379:81:1","nodeType":"YulBlock","src":"379:81:1","statements":[{"nativeSrc":"389:65:1","nodeType":"YulAssignment","src":"389:65:1","value":{"arguments":[{"name":"value","nativeSrc":"404:5:1","nodeType":"YulIdentifier","src":"404:5:1"},{"kind":"number","nativeSrc":"411:42:1","nodeType":"YulLiteral","src":"411:42:1","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:1","nodeType":"YulIdentifier","src":"400:3:1"},"nativeSrc":"400:54:1","nodeType":"YulFunctionCall","src":"400:54:1"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:1","nodeType":"YulIdentifier","src":"389:7:1"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:1","nodeType":"YulTypedName","src":"361:5:1","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:1","nodeType":"YulTypedName","src":"371:7:1","type":""}],"src":"334:126:1"},{"body":{"nativeSrc":"511:51:1","nodeType":"YulBlock","src":"511:51:1","statements":[{"nativeSrc":"521:35:1","nodeType":"YulAssignment","src":"521:35:1","value":{"arguments":[{"name":"value","nativeSrc":"550:5:1","nodeType":"YulIdentifier","src":"550:5:1"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:1","nodeType":"YulIdentifier","src":"532:17:1"},"nativeSrc":"532:24:1","nodeType":"YulFunctionCall","src":"532:24:1"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:1","nodeType":"YulIdentifier","src":"521:7:1"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:1","nodeType":"YulTypedName","src":"493:5:1","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:1","nodeType":"YulTypedName","src":"503:7:1","type":""}],"src":"466:96:1"},{"body":{"nativeSrc":"611:79:1","nodeType":"YulBlock","src":"611:79:1","statements":[{"body":{"nativeSrc":"668:16:1","nodeType":"YulBlock","src":"668:16:1","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:1","nodeType":"YulLiteral","src":"677:1:1","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:1","nodeType":"YulLiteral","src":"680:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:1","nodeType":"YulIdentifier","src":"670:6:1"},"nativeSrc":"670:12:1","nodeType":"YulFunctionCall","src":"670:12:1"},"nativeSrc":"670:12:1","nodeType":"YulExpressionStatement","src":"670:12:1"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:1","nodeType":"YulIdentifier","src":"634:5:1"},{"arguments":[{"name":"value","nativeSrc":"659:5:1","nodeType":"YulIdentifier","src":"659:5:1"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:1","nodeType":"YulIdentifier","src":"641:17:1"},"nativeSrc":"641:24:1","nodeType":"YulFunctionCall","src":"641:24:1"}],"functionName":{"name":"eq","nativeSrc":"631:2:1","nodeType":"YulIdentifier","src":"631:2:1"},"nativeSrc":"631:35:1","nodeType":"YulFunctionCall","src":"631:35:1"}],"functionName":{"name":"iszero","nativeSrc":"624:6:1","nodeType":"YulIdentifier","src":"624:6:1"},"nativeSrc":"624:43:1","nodeType":"YulFunctionCall","src":"624:43:1"},"nativeSrc":"621:63:1","nodeType":"YulIf","src":"621:63:1"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:1","nodeType":"YulTypedName","src":"604:5:1","type":""}],"src":"568:122:1"},{"body":{"nativeSrc":"759:80:1","nodeType":"YulBlock","src":"759:80:1","statements":[{"nativeSrc":"769:22:1","nodeType":"YulAssignment","src":"769:22:1","value":{"arguments":[{"name":"offset","nativeSrc":"784:6:1","nodeType":"YulIdentifier","src":"784:6:1"}],"functionName":{"name":"mload","nativeSrc":"778:5:1","nodeType":"YulIdentifier","src":"778:5:1"},"nativeSrc":"778:13:1","nodeType":"YulFunctionCall","src":"778:13:1"},"variableNames":[{"name":"value","nativeSrc":"769:5:1","nodeType":"YulIdentifier","src":"769:5:1"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"827:5:1","nodeType":"YulIdentifier","src":"827:5:1"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"800:26:1","nodeType":"YulIdentifier","src":"800:26:1"},"nativeSrc":"800:33:1","nodeType":"YulFunctionCall","src":"800:33:1"},"nativeSrc":"800:33:1","nodeType":"YulExpressionStatement","src":"800:33:1"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"696:143:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"737:6:1","nodeType":"YulTypedName","src":"737:6:1","type":""},{"name":"end","nativeSrc":"745:3:1","nodeType":"YulTypedName","src":"745:3:1","type":""}],"returnVariables":[{"name":"value","nativeSrc":"753:5:1","nodeType":"YulTypedName","src":"753:5:1","type":""}],"src":"696:143:1"},{"body":{"nativeSrc":"934:28:1","nodeType":"YulBlock","src":"934:28:1","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"951:1:1","nodeType":"YulLiteral","src":"951:1:1","type":"","value":"0"},{"kind":"number","nativeSrc":"954:1:1","nodeType":"YulLiteral","src":"954:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"944:6:1","nodeType":"YulIdentifier","src":"944:6:1"},"nativeSrc":"944:12:1","nodeType":"YulFunctionCall","src":"944:12:1"},"nativeSrc":"944:12:1","nodeType":"YulExpressionStatement","src":"944:12:1"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"845:117:1","nodeType":"YulFunctionDefinition","src":"845:117:1"},{"body":{"nativeSrc":"1057:28:1","nodeType":"YulBlock","src":"1057:28:1","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1074:1:1","nodeType":"YulLiteral","src":"1074:1:1","type":"","value":"0"},{"kind":"number","nativeSrc":"1077:1:1","nodeType":"YulLiteral","src":"1077:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1067:6:1","nodeType":"YulIdentifier","src":"1067:6:1"},"nativeSrc":"1067:12:1","nodeType":"YulFunctionCall","src":"1067:12:1"},"nativeSrc":"1067:12:1","nodeType":"YulExpressionStatement","src":"1067:12:1"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"968:117:1","nodeType":"YulFunctionDefinition","src":"968:117:1"},{"body":{"nativeSrc":"1139:54:1","nodeType":"YulBlock","src":"1139:54:1","statements":[{"nativeSrc":"1149:38:1","nodeType":"YulAssignment","src":"1149:38:1","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1167:5:1","nodeType":"YulIdentifier","src":"1167:5:1"},{"kind":"number","nativeSrc":"1174:2:1","nodeType":"YulLiteral","src":"1174:2:1","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"1163:3:1","nodeType":"YulIdentifier","src":"1163:3:1"},"nativeSrc":"1163:14:1","nodeType":"YulFunctionCall","src":"1163:14:1"},{"arguments":[{"kind":"number","nativeSrc":"1183:2:1","nodeType":"YulLiteral","src":"1183:2:1","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"1179:3:1","nodeType":"YulIdentifier","src":"1179:3:1"},"nativeSrc":"1179:7:1","nodeType":"YulFunctionCall","src":"1179:7:1"}],"functionName":{"name":"and","nativeSrc":"1159:3:1","nodeType":"YulIdentifier","src":"1159:3:1"},"nativeSrc":"1159:28:1","nodeType":"YulFunctionCall","src":"1159:28:1"},"variableNames":[{"name":"result","nativeSrc":"1149:6:1","nodeType":"YulIdentifier","src":"1149:6:1"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"1091:102:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1122:5:1","nodeType":"YulTypedName","src":"1122:5:1","type":""}],"returnVariables":[{"name":"result","nativeSrc":"1132:6:1","nodeType":"YulTypedName","src":"1132:6:1","type":""}],"src":"1091:102:1"},{"body":{"nativeSrc":"1227:152:1","nodeType":"YulBlock","src":"1227:152:1","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1244:1:1","nodeType":"YulLiteral","src":"1244:1:1","type":"","value":"0"},{"kind":"number","nativeSrc":"1247:77:1","nodeType":"YulLiteral","src":"1247:77:1","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"1237:6:1","nodeType":"YulIdentifier","src":"1237:6:1"},"nativeSrc":"1237:88:1","nodeType":"YulFunctionCall","src":"1237:88:1"},"nativeSrc":"1237:88:1","nodeType":"YulExpressionStatement","src":"1237:88:1"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1341:1:1","nodeType":"YulLiteral","src":"1341:1:1","type":"","value":"4"},{"kind":"number","nativeSrc":"1344:4:1","nodeType":"YulLiteral","src":"1344:4:1","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"1334:6:1","nodeType":"YulIdentifier","src":"1334:6:1"},"nativeSrc":"1334:15:1","nodeType":"YulFunctionCall","src":"1334:15:1"},"nativeSrc":"1334:15:1","nodeType":"YulExpressionStatement","src":"1334:15:1"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1365:1:1","nodeType":"YulLiteral","src":"1365:1:1","type":"","value":"0"},{"kind":"number","nativeSrc":"1368:4:1","nodeType":"YulLiteral","src":"1368:4:1","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1358:6:1","nodeType":"YulIdentifier","src":"1358:6:1"},"nativeSrc":"1358:15:1","nodeType":"YulFunctionCall","src":"1358:15:1"},"nativeSrc":"1358:15:1","nodeType":"YulExpressionStatement","src":"1358:15:1"}]},"name":"panic_error_0x41","nativeSrc":"1199:180:1","nodeType":"YulFunctionDefinition","src":"1199:180:1"},{"body":{"nativeSrc":"1428:238:1","nodeType":"YulBlock","src":"1428:238:1","statements":[{"nativeSrc":"1438:58:1","nodeType":"YulVariableDeclaration","src":"1438:58:1","value":{"arguments":[{"name":"memPtr","nativeSrc":"1460:6:1","nodeType":"YulIdentifier","src":"1460:6:1"},{"arguments":[{"name":"size","nativeSrc":"1490:4:1","nodeType":"YulIdentifier","src":"1490:4:1"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"1468:21:1","nodeType":"YulIdentifier","src":"1468:21:1"},"nativeSrc":"1468:27:1","nodeType":"YulFunctionCall","src":"1468:27:1"}],"functionName":{"name":"add","nativeSrc":"1456:3:1","nodeType":"YulIdentifier","src":"1456:3:1"},"nativeSrc":"1456:40:1","nodeType":"YulFunctionCall","src":"1456:40:1"},"variables":[{"name":"newFreePtr","nativeSrc":"1442:10:1","nodeType":"YulTypedName","src":"1442:10:1","type":""}]},{"body":{"nativeSrc":"1607:22:1","nodeType":"YulBlock","src":"1607:22:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1609:16:1","nodeType":"YulIdentifier","src":"1609:16:1"},"nativeSrc":"1609:18:1","nodeType":"YulFunctionCall","src":"1609:18:1"},"nativeSrc":"1609:18:1","nodeType":"YulExpressionStatement","src":"1609:18:1"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"1550:10:1","nodeType":"YulIdentifier","src":"1550:10:1"},{"kind":"number","nativeSrc":"1562:18:1","nodeType":"YulLiteral","src":"1562:18:1","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1547:2:1","nodeType":"YulIdentifier","src":"1547:2:1"},"nativeSrc":"1547:34:1","nodeType":"YulFunctionCall","src":"1547:34:1"},{"arguments":[{"name":"newFreePtr","nativeSrc":"1586:10:1","nodeType":"YulIdentifier","src":"1586:10:1"},{"name":"memPtr","nativeSrc":"1598:6:1","nodeType":"YulIdentifier","src":"1598:6:1"}],"functionName":{"name":"lt","nativeSrc":"1583:2:1","nodeType":"YulIdentifier","src":"1583:2:1"},"nativeSrc":"1583:22:1","nodeType":"YulFunctionCall","src":"1583:22:1"}],"functionName":{"name":"or","nativeSrc":"1544:2:1","nodeType":"YulIdentifier","src":"1544:2:1"},"nativeSrc":"1544:62:1","nodeType":"YulFunctionCall","src":"1544:62:1"},"nativeSrc":"1541:88:1","nodeType":"YulIf","src":"1541:88:1"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1645:2:1","nodeType":"YulLiteral","src":"1645:2:1","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"1649:10:1","nodeType":"YulIdentifier","src":"1649:10:1"}],"functionName":{"name":"mstore","nativeSrc":"1638:6:1","nodeType":"YulIdentifier","src":"1638:6:1"},"nativeSrc":"1638:22:1","nodeType":"YulFunctionCall","src":"1638:22:1"},"nativeSrc":"1638:22:1","nodeType":"YulExpressionStatement","src":"1638:22:1"}]},"name":"finalize_allocation","nativeSrc":"1385:281:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"1414:6:1","nodeType":"YulTypedName","src":"1414:6:1","type":""},{"name":"size","nativeSrc":"1422:4:1","nodeType":"YulTypedName","src":"1422:4:1","type":""}],"src":"1385:281:1"},{"body":{"nativeSrc":"1713:88:1","nodeType":"YulBlock","src":"1713:88:1","statements":[{"nativeSrc":"1723:30:1","nodeType":"YulAssignment","src":"1723:30:1","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"1733:18:1","nodeType":"YulIdentifier","src":"1733:18:1"},"nativeSrc":"1733:20:1","nodeType":"YulFunctionCall","src":"1733:20:1"},"variableNames":[{"name":"memPtr","nativeSrc":"1723:6:1","nodeType":"YulIdentifier","src":"1723:6:1"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"1782:6:1","nodeType":"YulIdentifier","src":"1782:6:1"},{"name":"size","nativeSrc":"1790:4:1","nodeType":"YulIdentifier","src":"1790:4:1"}],"functionName":{"name":"finalize_allocation","nativeSrc":"1762:19:1","nodeType":"YulIdentifier","src":"1762:19:1"},"nativeSrc":"1762:33:1","nodeType":"YulFunctionCall","src":"1762:33:1"},"nativeSrc":"1762:33:1","nodeType":"YulExpressionStatement","src":"1762:33:1"}]},"name":"allocate_memory","nativeSrc":"1672:129:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"1697:4:1","nodeType":"YulTypedName","src":"1697:4:1","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"1706:6:1","nodeType":"YulTypedName","src":"1706:6:1","type":""}],"src":"1672:129:1"},{"body":{"nativeSrc":"1873:241:1","nodeType":"YulBlock","src":"1873:241:1","statements":[{"body":{"nativeSrc":"1978:22:1","nodeType":"YulBlock","src":"1978:22:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1980:16:1","nodeType":"YulIdentifier","src":"1980:16:1"},"nativeSrc":"1980:18:1","nodeType":"YulFunctionCall","src":"1980:18:1"},"nativeSrc":"1980:18:1","nodeType":"YulExpressionStatement","src":"1980:18:1"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"1950:6:1","nodeType":"YulIdentifier","src":"1950:6:1"},{"kind":"number","nativeSrc":"1958:18:1","nodeType":"YulLiteral","src":"1958:18:1","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1947:2:1","nodeType":"YulIdentifier","src":"1947:2:1"},"nativeSrc":"1947:30:1","nodeType":"YulFunctionCall","src":"1947:30:1"},"nativeSrc":"1944:56:1","nodeType":"YulIf","src":"1944:56:1"},{"nativeSrc":"2010:37:1","nodeType":"YulAssignment","src":"2010:37:1","value":{"arguments":[{"name":"length","nativeSrc":"2040:6:1","nodeType":"YulIdentifier","src":"2040:6:1"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"2018:21:1","nodeType":"YulIdentifier","src":"2018:21:1"},"nativeSrc":"2018:29:1","nodeType":"YulFunctionCall","src":"2018:29:1"},"variableNames":[{"name":"size","nativeSrc":"2010:4:1","nodeType":"YulIdentifier","src":"2010:4:1"}]},{"nativeSrc":"2084:23:1","nodeType":"YulAssignment","src":"2084:23:1","value":{"arguments":[{"name":"size","nativeSrc":"2096:4:1","nodeType":"YulIdentifier","src":"2096:4:1"},{"kind":"number","nativeSrc":"2102:4:1","nodeType":"YulLiteral","src":"2102:4:1","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2092:3:1","nodeType":"YulIdentifier","src":"2092:3:1"},"nativeSrc":"2092:15:1","nodeType":"YulFunctionCall","src":"2092:15:1"},"variableNames":[{"name":"size","nativeSrc":"2084:4:1","nodeType":"YulIdentifier","src":"2084:4:1"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"1807:307:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"1857:6:1","nodeType":"YulTypedName","src":"1857:6:1","type":""}],"returnVariables":[{"name":"size","nativeSrc":"1868:4:1","nodeType":"YulTypedName","src":"1868:4:1","type":""}],"src":"1807:307:1"},{"body":{"nativeSrc":"2182:186:1","nodeType":"YulBlock","src":"2182:186:1","statements":[{"nativeSrc":"2193:10:1","nodeType":"YulVariableDeclaration","src":"2193:10:1","value":{"kind":"number","nativeSrc":"2202:1:1","nodeType":"YulLiteral","src":"2202:1:1","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"2197:1:1","nodeType":"YulTypedName","src":"2197:1:1","type":""}]},{"body":{"nativeSrc":"2262:63:1","nodeType":"YulBlock","src":"2262:63:1","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"2287:3:1","nodeType":"YulIdentifier","src":"2287:3:1"},{"name":"i","nativeSrc":"2292:1:1","nodeType":"YulIdentifier","src":"2292:1:1"}],"functionName":{"name":"add","nativeSrc":"2283:3:1","nodeType":"YulIdentifier","src":"2283:3:1"},"nativeSrc":"2283:11:1","nodeType":"YulFunctionCall","src":"2283:11:1"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"2306:3:1","nodeType":"YulIdentifier","src":"2306:3:1"},{"name":"i","nativeSrc":"2311:1:1","nodeType":"YulIdentifier","src":"2311:1:1"}],"functionName":{"name":"add","nativeSrc":"2302:3:1","nodeType":"YulIdentifier","src":"2302:3:1"},"nativeSrc":"2302:11:1","nodeType":"YulFunctionCall","src":"2302:11:1"}],"functionName":{"name":"mload","nativeSrc":"2296:5:1","nodeType":"YulIdentifier","src":"2296:5:1"},"nativeSrc":"2296:18:1","nodeType":"YulFunctionCall","src":"2296:18:1"}],"functionName":{"name":"mstore","nativeSrc":"2276:6:1","nodeType":"YulIdentifier","src":"2276:6:1"},"nativeSrc":"2276:39:1","nodeType":"YulFunctionCall","src":"2276:39:1"},"nativeSrc":"2276:39:1","nodeType":"YulExpressionStatement","src":"2276:39:1"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"2223:1:1","nodeType":"YulIdentifier","src":"2223:1:1"},{"name":"length","nativeSrc":"2226:6:1","nodeType":"YulIdentifier","src":"2226:6:1"}],"functionName":{"name":"lt","nativeSrc":"2220:2:1","nodeType":"YulIdentifier","src":"2220:2:1"},"nativeSrc":"2220:13:1","nodeType":"YulFunctionCall","src":"2220:13:1"},"nativeSrc":"2212:113:1","nodeType":"YulForLoop","post":{"nativeSrc":"2234:19:1","nodeType":"YulBlock","src":"2234:19:1","statements":[{"nativeSrc":"2236:15:1","nodeType":"YulAssignment","src":"2236:15:1","value":{"arguments":[{"name":"i","nativeSrc":"2245:1:1","nodeType":"YulIdentifier","src":"2245:1:1"},{"kind":"number","nativeSrc":"2248:2:1","nodeType":"YulLiteral","src":"2248:2:1","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2241:3:1","nodeType":"YulIdentifier","src":"2241:3:1"},"nativeSrc":"2241:10:1","nodeType":"YulFunctionCall","src":"2241:10:1"},"variableNames":[{"name":"i","nativeSrc":"2236:1:1","nodeType":"YulIdentifier","src":"2236:1:1"}]}]},"pre":{"nativeSrc":"2216:3:1","nodeType":"YulBlock","src":"2216:3:1","statements":[]},"src":"2212:113:1"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"2345:3:1","nodeType":"YulIdentifier","src":"2345:3:1"},{"name":"length","nativeSrc":"2350:6:1","nodeType":"YulIdentifier","src":"2350:6:1"}],"functionName":{"name":"add","nativeSrc":"2341:3:1","nodeType":"YulIdentifier","src":"2341:3:1"},"nativeSrc":"2341:16:1","nodeType":"YulFunctionCall","src":"2341:16:1"},{"kind":"number","nativeSrc":"2359:1:1","nodeType":"YulLiteral","src":"2359:1:1","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"2334:6:1","nodeType":"YulIdentifier","src":"2334:6:1"},"nativeSrc":"2334:27:1","nodeType":"YulFunctionCall","src":"2334:27:1"},"nativeSrc":"2334:27:1","nodeType":"YulExpressionStatement","src":"2334:27:1"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"2120:248:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"2164:3:1","nodeType":"YulTypedName","src":"2164:3:1","type":""},{"name":"dst","nativeSrc":"2169:3:1","nodeType":"YulTypedName","src":"2169:3:1","type":""},{"name":"length","nativeSrc":"2174:6:1","nodeType":"YulTypedName","src":"2174:6:1","type":""}],"src":"2120:248:1"},{"body":{"nativeSrc":"2468:338:1","nodeType":"YulBlock","src":"2468:338:1","statements":[{"nativeSrc":"2478:74:1","nodeType":"YulAssignment","src":"2478:74:1","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"2544:6:1","nodeType":"YulIdentifier","src":"2544:6:1"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"2503:40:1","nodeType":"YulIdentifier","src":"2503:40:1"},"nativeSrc":"2503:48:1","nodeType":"YulFunctionCall","src":"2503:48:1"}],"functionName":{"name":"allocate_memory","nativeSrc":"2487:15:1","nodeType":"YulIdentifier","src":"2487:15:1"},"nativeSrc":"2487:65:1","nodeType":"YulFunctionCall","src":"2487:65:1"},"variableNames":[{"name":"array","nativeSrc":"2478:5:1","nodeType":"YulIdentifier","src":"2478:5:1"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"2568:5:1","nodeType":"YulIdentifier","src":"2568:5:1"},{"name":"length","nativeSrc":"2575:6:1","nodeType":"YulIdentifier","src":"2575:6:1"}],"functionName":{"name":"mstore","nativeSrc":"2561:6:1","nodeType":"YulIdentifier","src":"2561:6:1"},"nativeSrc":"2561:21:1","nodeType":"YulFunctionCall","src":"2561:21:1"},"nativeSrc":"2561:21:1","nodeType":"YulExpressionStatement","src":"2561:21:1"},{"nativeSrc":"2591:27:1","nodeType":"YulVariableDeclaration","src":"2591:27:1","value":{"arguments":[{"name":"array","nativeSrc":"2606:5:1","nodeType":"YulIdentifier","src":"2606:5:1"},{"kind":"number","nativeSrc":"2613:4:1","nodeType":"YulLiteral","src":"2613:4:1","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2602:3:1","nodeType":"YulIdentifier","src":"2602:3:1"},"nativeSrc":"2602:16:1","nodeType":"YulFunctionCall","src":"2602:16:1"},"variables":[{"name":"dst","nativeSrc":"2595:3:1","nodeType":"YulTypedName","src":"2595:3:1","type":""}]},{"body":{"nativeSrc":"2656:83:1","nodeType":"YulBlock","src":"2656:83:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"2658:77:1","nodeType":"YulIdentifier","src":"2658:77:1"},"nativeSrc":"2658:79:1","nodeType":"YulFunctionCall","src":"2658:79:1"},"nativeSrc":"2658:79:1","nodeType":"YulExpressionStatement","src":"2658:79:1"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"2637:3:1","nodeType":"YulIdentifier","src":"2637:3:1"},{"name":"length","nativeSrc":"2642:6:1","nodeType":"YulIdentifier","src":"2642:6:1"}],"functionName":{"name":"add","nativeSrc":"2633:3:1","nodeType":"YulIdentifier","src":"2633:3:1"},"nativeSrc":"2633:16:1","nodeType":"YulFunctionCall","src":"2633:16:1"},{"name":"end","nativeSrc":"2651:3:1","nodeType":"YulIdentifier","src":"2651:3:1"}],"functionName":{"name":"gt","nativeSrc":"2630:2:1","nodeType":"YulIdentifier","src":"2630:2:1"},"nativeSrc":"2630:25:1","nodeType":"YulFunctionCall","src":"2630:25:1"},"nativeSrc":"2627:112:1","nodeType":"YulIf","src":"2627:112:1"},{"expression":{"arguments":[{"name":"src","nativeSrc":"2783:3:1","nodeType":"YulIdentifier","src":"2783:3:1"},{"name":"dst","nativeSrc":"2788:3:1","nodeType":"YulIdentifier","src":"2788:3:1"},{"name":"length","nativeSrc":"2793:6:1","nodeType":"YulIdentifier","src":"2793:6:1"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"2748:34:1","nodeType":"YulIdentifier","src":"2748:34:1"},"nativeSrc":"2748:52:1","nodeType":"YulFunctionCall","src":"2748:52:1"},"nativeSrc":"2748:52:1","nodeType":"YulExpressionStatement","src":"2748:52:1"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr_fromMemory","nativeSrc":"2374:432:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"2441:3:1","nodeType":"YulTypedName","src":"2441:3:1","type":""},{"name":"length","nativeSrc":"2446:6:1","nodeType":"YulTypedName","src":"2446:6:1","type":""},{"name":"end","nativeSrc":"2454:3:1","nodeType":"YulTypedName","src":"2454:3:1","type":""}],"returnVariables":[{"name":"array","nativeSrc":"2462:5:1","nodeType":"YulTypedName","src":"2462:5:1","type":""}],"src":"2374:432:1"},{"body":{"nativeSrc":"2897:281:1","nodeType":"YulBlock","src":"2897:281:1","statements":[{"body":{"nativeSrc":"2946:83:1","nodeType":"YulBlock","src":"2946:83:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2948:77:1","nodeType":"YulIdentifier","src":"2948:77:1"},"nativeSrc":"2948:79:1","nodeType":"YulFunctionCall","src":"2948:79:1"},"nativeSrc":"2948:79:1","nodeType":"YulExpressionStatement","src":"2948:79:1"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2925:6:1","nodeType":"YulIdentifier","src":"2925:6:1"},{"kind":"number","nativeSrc":"2933:4:1","nodeType":"YulLiteral","src":"2933:4:1","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2921:3:1","nodeType":"YulIdentifier","src":"2921:3:1"},"nativeSrc":"2921:17:1","nodeType":"YulFunctionCall","src":"2921:17:1"},{"name":"end","nativeSrc":"2940:3:1","nodeType":"YulIdentifier","src":"2940:3:1"}],"functionName":{"name":"slt","nativeSrc":"2917:3:1","nodeType":"YulIdentifier","src":"2917:3:1"},"nativeSrc":"2917:27:1","nodeType":"YulFunctionCall","src":"2917:27:1"}],"functionName":{"name":"iszero","nativeSrc":"2910:6:1","nodeType":"YulIdentifier","src":"2910:6:1"},"nativeSrc":"2910:35:1","nodeType":"YulFunctionCall","src":"2910:35:1"},"nativeSrc":"2907:122:1","nodeType":"YulIf","src":"2907:122:1"},{"nativeSrc":"3038:27:1","nodeType":"YulVariableDeclaration","src":"3038:27:1","value":{"arguments":[{"name":"offset","nativeSrc":"3058:6:1","nodeType":"YulIdentifier","src":"3058:6:1"}],"functionName":{"name":"mload","nativeSrc":"3052:5:1","nodeType":"YulIdentifier","src":"3052:5:1"},"nativeSrc":"3052:13:1","nodeType":"YulFunctionCall","src":"3052:13:1"},"variables":[{"name":"length","nativeSrc":"3042:6:1","nodeType":"YulTypedName","src":"3042:6:1","type":""}]},{"nativeSrc":"3074:98:1","nodeType":"YulAssignment","src":"3074:98:1","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3145:6:1","nodeType":"YulIdentifier","src":"3145:6:1"},{"kind":"number","nativeSrc":"3153:4:1","nodeType":"YulLiteral","src":"3153:4:1","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3141:3:1","nodeType":"YulIdentifier","src":"3141:3:1"},"nativeSrc":"3141:17:1","nodeType":"YulFunctionCall","src":"3141:17:1"},{"name":"length","nativeSrc":"3160:6:1","nodeType":"YulIdentifier","src":"3160:6:1"},{"name":"end","nativeSrc":"3168:3:1","nodeType":"YulIdentifier","src":"3168:3:1"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr_fromMemory","nativeSrc":"3083:57:1","nodeType":"YulIdentifier","src":"3083:57:1"},"nativeSrc":"3083:89:1","nodeType":"YulFunctionCall","src":"3083:89:1"},"variableNames":[{"name":"array","nativeSrc":"3074:5:1","nodeType":"YulIdentifier","src":"3074:5:1"}]}]},"name":"abi_decode_t_bytes_memory_ptr_fromMemory","nativeSrc":"2825:353:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2875:6:1","nodeType":"YulTypedName","src":"2875:6:1","type":""},{"name":"end","nativeSrc":"2883:3:1","nodeType":"YulTypedName","src":"2883:3:1","type":""}],"returnVariables":[{"name":"array","nativeSrc":"2891:5:1","nodeType":"YulTypedName","src":"2891:5:1","type":""}],"src":"2825:353:1"},{"body":{"nativeSrc":"3287:575:1","nodeType":"YulBlock","src":"3287:575:1","statements":[{"body":{"nativeSrc":"3333:83:1","nodeType":"YulBlock","src":"3333:83:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3335:77:1","nodeType":"YulIdentifier","src":"3335:77:1"},"nativeSrc":"3335:79:1","nodeType":"YulFunctionCall","src":"3335:79:1"},"nativeSrc":"3335:79:1","nodeType":"YulExpressionStatement","src":"3335:79:1"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3308:7:1","nodeType":"YulIdentifier","src":"3308:7:1"},{"name":"headStart","nativeSrc":"3317:9:1","nodeType":"YulIdentifier","src":"3317:9:1"}],"functionName":{"name":"sub","nativeSrc":"3304:3:1","nodeType":"YulIdentifier","src":"3304:3:1"},"nativeSrc":"3304:23:1","nodeType":"YulFunctionCall","src":"3304:23:1"},{"kind":"number","nativeSrc":"3329:2:1","nodeType":"YulLiteral","src":"3329:2:1","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"3300:3:1","nodeType":"YulIdentifier","src":"3300:3:1"},"nativeSrc":"3300:32:1","nodeType":"YulFunctionCall","src":"3300:32:1"},"nativeSrc":"3297:119:1","nodeType":"YulIf","src":"3297:119:1"},{"nativeSrc":"3426:128:1","nodeType":"YulBlock","src":"3426:128:1","statements":[{"nativeSrc":"3441:15:1","nodeType":"YulVariableDeclaration","src":"3441:15:1","value":{"kind":"number","nativeSrc":"3455:1:1","nodeType":"YulLiteral","src":"3455:1:1","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3445:6:1","nodeType":"YulTypedName","src":"3445:6:1","type":""}]},{"nativeSrc":"3470:74:1","nodeType":"YulAssignment","src":"3470:74:1","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3516:9:1","nodeType":"YulIdentifier","src":"3516:9:1"},{"name":"offset","nativeSrc":"3527:6:1","nodeType":"YulIdentifier","src":"3527:6:1"}],"functionName":{"name":"add","nativeSrc":"3512:3:1","nodeType":"YulIdentifier","src":"3512:3:1"},"nativeSrc":"3512:22:1","nodeType":"YulFunctionCall","src":"3512:22:1"},{"name":"dataEnd","nativeSrc":"3536:7:1","nodeType":"YulIdentifier","src":"3536:7:1"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"3480:31:1","nodeType":"YulIdentifier","src":"3480:31:1"},"nativeSrc":"3480:64:1","nodeType":"YulFunctionCall","src":"3480:64:1"},"variableNames":[{"name":"value0","nativeSrc":"3470:6:1","nodeType":"YulIdentifier","src":"3470:6:1"}]}]},{"nativeSrc":"3564:291:1","nodeType":"YulBlock","src":"3564:291:1","statements":[{"nativeSrc":"3579:39:1","nodeType":"YulVariableDeclaration","src":"3579:39:1","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3603:9:1","nodeType":"YulIdentifier","src":"3603:9:1"},{"kind":"number","nativeSrc":"3614:2:1","nodeType":"YulLiteral","src":"3614:2:1","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3599:3:1","nodeType":"YulIdentifier","src":"3599:3:1"},"nativeSrc":"3599:18:1","nodeType":"YulFunctionCall","src":"3599:18:1"}],"functionName":{"name":"mload","nativeSrc":"3593:5:1","nodeType":"YulIdentifier","src":"3593:5:1"},"nativeSrc":"3593:25:1","nodeType":"YulFunctionCall","src":"3593:25:1"},"variables":[{"name":"offset","nativeSrc":"3583:6:1","nodeType":"YulTypedName","src":"3583:6:1","type":""}]},{"body":{"nativeSrc":"3665:83:1","nodeType":"YulBlock","src":"3665:83:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"3667:77:1","nodeType":"YulIdentifier","src":"3667:77:1"},"nativeSrc":"3667:79:1","nodeType":"YulFunctionCall","src":"3667:79:1"},"nativeSrc":"3667:79:1","nodeType":"YulExpressionStatement","src":"3667:79:1"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3637:6:1","nodeType":"YulIdentifier","src":"3637:6:1"},{"kind":"number","nativeSrc":"3645:18:1","nodeType":"YulLiteral","src":"3645:18:1","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3634:2:1","nodeType":"YulIdentifier","src":"3634:2:1"},"nativeSrc":"3634:30:1","nodeType":"YulFunctionCall","src":"3634:30:1"},"nativeSrc":"3631:117:1","nodeType":"YulIf","src":"3631:117:1"},{"nativeSrc":"3762:83:1","nodeType":"YulAssignment","src":"3762:83:1","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3817:9:1","nodeType":"YulIdentifier","src":"3817:9:1"},{"name":"offset","nativeSrc":"3828:6:1","nodeType":"YulIdentifier","src":"3828:6:1"}],"functionName":{"name":"add","nativeSrc":"3813:3:1","nodeType":"YulIdentifier","src":"3813:3:1"},"nativeSrc":"3813:22:1","nodeType":"YulFunctionCall","src":"3813:22:1"},{"name":"dataEnd","nativeSrc":"3837:7:1","nodeType":"YulIdentifier","src":"3837:7:1"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr_fromMemory","nativeSrc":"3772:40:1","nodeType":"YulIdentifier","src":"3772:40:1"},"nativeSrc":"3772:73:1","nodeType":"YulFunctionCall","src":"3772:73:1"},"variableNames":[{"name":"value1","nativeSrc":"3762:6:1","nodeType":"YulIdentifier","src":"3762:6:1"}]}]}]},"name":"abi_decode_tuple_t_addresst_bytes_memory_ptr_fromMemory","nativeSrc":"3184:678:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3249:9:1","nodeType":"YulTypedName","src":"3249:9:1","type":""},{"name":"dataEnd","nativeSrc":"3260:7:1","nodeType":"YulTypedName","src":"3260:7:1","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3272:6:1","nodeType":"YulTypedName","src":"3272:6:1","type":""},{"name":"value1","nativeSrc":"3280:6:1","nodeType":"YulTypedName","src":"3280:6:1","type":""}],"src":"3184:678:1"},{"body":{"nativeSrc":"3933:53:1","nodeType":"YulBlock","src":"3933:53:1","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3950:3:1","nodeType":"YulIdentifier","src":"3950:3:1"},{"arguments":[{"name":"value","nativeSrc":"3973:5:1","nodeType":"YulIdentifier","src":"3973:5:1"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"3955:17:1","nodeType":"YulIdentifier","src":"3955:17:1"},"nativeSrc":"3955:24:1","nodeType":"YulFunctionCall","src":"3955:24:1"}],"functionName":{"name":"mstore","nativeSrc":"3943:6:1","nodeType":"YulIdentifier","src":"3943:6:1"},"nativeSrc":"3943:37:1","nodeType":"YulFunctionCall","src":"3943:37:1"},"nativeSrc":"3943:37:1","nodeType":"YulExpressionStatement","src":"3943:37:1"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"3868:118:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3921:5:1","nodeType":"YulTypedName","src":"3921:5:1","type":""},{"name":"pos","nativeSrc":"3928:3:1","nodeType":"YulTypedName","src":"3928:3:1","type":""}],"src":"3868:118:1"},{"body":{"nativeSrc":"4090:124:1","nodeType":"YulBlock","src":"4090:124:1","statements":[{"nativeSrc":"4100:26:1","nodeType":"YulAssignment","src":"4100:26:1","value":{"arguments":[{"name":"headStart","nativeSrc":"4112:9:1","nodeType":"YulIdentifier","src":"4112:9:1"},{"kind":"number","nativeSrc":"4123:2:1","nodeType":"YulLiteral","src":"4123:2:1","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4108:3:1","nodeType":"YulIdentifier","src":"4108:3:1"},"nativeSrc":"4108:18:1","nodeType":"YulFunctionCall","src":"4108:18:1"},"variableNames":[{"name":"tail","nativeSrc":"4100:4:1","nodeType":"YulIdentifier","src":"4100:4:1"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4180:6:1","nodeType":"YulIdentifier","src":"4180:6:1"},{"arguments":[{"name":"headStart","nativeSrc":"4193:9:1","nodeType":"YulIdentifier","src":"4193:9:1"},{"kind":"number","nativeSrc":"4204:1:1","nodeType":"YulLiteral","src":"4204:1:1","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4189:3:1","nodeType":"YulIdentifier","src":"4189:3:1"},"nativeSrc":"4189:17:1","nodeType":"YulFunctionCall","src":"4189:17:1"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"4136:43:1","nodeType":"YulIdentifier","src":"4136:43:1"},"nativeSrc":"4136:71:1","nodeType":"YulFunctionCall","src":"4136:71:1"},"nativeSrc":"4136:71:1","nodeType":"YulExpressionStatement","src":"4136:71:1"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"3992:222:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4062:9:1","nodeType":"YulTypedName","src":"4062:9:1","type":""},{"name":"value0","nativeSrc":"4074:6:1","nodeType":"YulTypedName","src":"4074:6:1","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4085:4:1","nodeType":"YulTypedName","src":"4085:4:1","type":""}],"src":"3992:222:1"},{"body":{"nativeSrc":"4278:40:1","nodeType":"YulBlock","src":"4278:40:1","statements":[{"nativeSrc":"4289:22:1","nodeType":"YulAssignment","src":"4289:22:1","value":{"arguments":[{"name":"value","nativeSrc":"4305:5:1","nodeType":"YulIdentifier","src":"4305:5:1"}],"functionName":{"name":"mload","nativeSrc":"4299:5:1","nodeType":"YulIdentifier","src":"4299:5:1"},"nativeSrc":"4299:12:1","nodeType":"YulFunctionCall","src":"4299:12:1"},"variableNames":[{"name":"length","nativeSrc":"4289:6:1","nodeType":"YulIdentifier","src":"4289:6:1"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"4220:98:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4261:5:1","nodeType":"YulTypedName","src":"4261:5:1","type":""}],"returnVariables":[{"name":"length","nativeSrc":"4271:6:1","nodeType":"YulTypedName","src":"4271:6:1","type":""}],"src":"4220:98:1"},{"body":{"nativeSrc":"4437:34:1","nodeType":"YulBlock","src":"4437:34:1","statements":[{"nativeSrc":"4447:18:1","nodeType":"YulAssignment","src":"4447:18:1","value":{"name":"pos","nativeSrc":"4462:3:1","nodeType":"YulIdentifier","src":"4462:3:1"},"variableNames":[{"name":"updated_pos","nativeSrc":"4447:11:1","nodeType":"YulIdentifier","src":"4447:11:1"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"4324:147:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"4409:3:1","nodeType":"YulTypedName","src":"4409:3:1","type":""},{"name":"length","nativeSrc":"4414:6:1","nodeType":"YulTypedName","src":"4414:6:1","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"4425:11:1","nodeType":"YulTypedName","src":"4425:11:1","type":""}],"src":"4324:147:1"},{"body":{"nativeSrc":"4585:278:1","nodeType":"YulBlock","src":"4585:278:1","statements":[{"nativeSrc":"4595:52:1","nodeType":"YulVariableDeclaration","src":"4595:52:1","value":{"arguments":[{"name":"value","nativeSrc":"4641:5:1","nodeType":"YulIdentifier","src":"4641:5:1"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"4609:31:1","nodeType":"YulIdentifier","src":"4609:31:1"},"nativeSrc":"4609:38:1","nodeType":"YulFunctionCall","src":"4609:38:1"},"variables":[{"name":"length","nativeSrc":"4599:6:1","nodeType":"YulTypedName","src":"4599:6:1","type":""}]},{"nativeSrc":"4656:95:1","nodeType":"YulAssignment","src":"4656:95:1","value":{"arguments":[{"name":"pos","nativeSrc":"4739:3:1","nodeType":"YulIdentifier","src":"4739:3:1"},{"name":"length","nativeSrc":"4744:6:1","nodeType":"YulIdentifier","src":"4744:6:1"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"4663:75:1","nodeType":"YulIdentifier","src":"4663:75:1"},"nativeSrc":"4663:88:1","nodeType":"YulFunctionCall","src":"4663:88:1"},"variableNames":[{"name":"pos","nativeSrc":"4656:3:1","nodeType":"YulIdentifier","src":"4656:3:1"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4799:5:1","nodeType":"YulIdentifier","src":"4799:5:1"},{"kind":"number","nativeSrc":"4806:4:1","nodeType":"YulLiteral","src":"4806:4:1","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4795:3:1","nodeType":"YulIdentifier","src":"4795:3:1"},"nativeSrc":"4795:16:1","nodeType":"YulFunctionCall","src":"4795:16:1"},{"name":"pos","nativeSrc":"4813:3:1","nodeType":"YulIdentifier","src":"4813:3:1"},{"name":"length","nativeSrc":"4818:6:1","nodeType":"YulIdentifier","src":"4818:6:1"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"4760:34:1","nodeType":"YulIdentifier","src":"4760:34:1"},"nativeSrc":"4760:65:1","nodeType":"YulFunctionCall","src":"4760:65:1"},"nativeSrc":"4760:65:1","nodeType":"YulExpressionStatement","src":"4760:65:1"},{"nativeSrc":"4834:23:1","nodeType":"YulAssignment","src":"4834:23:1","value":{"arguments":[{"name":"pos","nativeSrc":"4845:3:1","nodeType":"YulIdentifier","src":"4845:3:1"},{"name":"length","nativeSrc":"4850:6:1","nodeType":"YulIdentifier","src":"4850:6:1"}],"functionName":{"name":"add","nativeSrc":"4841:3:1","nodeType":"YulIdentifier","src":"4841:3:1"},"nativeSrc":"4841:16:1","nodeType":"YulFunctionCall","src":"4841:16:1"},"variableNames":[{"name":"end","nativeSrc":"4834:3:1","nodeType":"YulIdentifier","src":"4834:3:1"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"4477:386:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4566:5:1","nodeType":"YulTypedName","src":"4566:5:1","type":""},{"name":"pos","nativeSrc":"4573:3:1","nodeType":"YulTypedName","src":"4573:3:1","type":""}],"returnVariables":[{"name":"end","nativeSrc":"4581:3:1","nodeType":"YulTypedName","src":"4581:3:1","type":""}],"src":"4477:386:1"},{"body":{"nativeSrc":"5003:137:1","nodeType":"YulBlock","src":"5003:137:1","statements":[{"nativeSrc":"5014:100:1","nodeType":"YulAssignment","src":"5014:100:1","value":{"arguments":[{"name":"value0","nativeSrc":"5101:6:1","nodeType":"YulIdentifier","src":"5101:6:1"},{"name":"pos","nativeSrc":"5110:3:1","nodeType":"YulIdentifier","src":"5110:3:1"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"5021:79:1","nodeType":"YulIdentifier","src":"5021:79:1"},"nativeSrc":"5021:93:1","nodeType":"YulFunctionCall","src":"5021:93:1"},"variableNames":[{"name":"pos","nativeSrc":"5014:3:1","nodeType":"YulIdentifier","src":"5014:3:1"}]},{"nativeSrc":"5124:10:1","nodeType":"YulAssignment","src":"5124:10:1","value":{"name":"pos","nativeSrc":"5131:3:1","nodeType":"YulIdentifier","src":"5131:3:1"},"variableNames":[{"name":"end","nativeSrc":"5124:3:1","nodeType":"YulIdentifier","src":"5124:3:1"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"4869:271:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"4982:3:1","nodeType":"YulTypedName","src":"4982:3:1","type":""},{"name":"value0","nativeSrc":"4988:6:1","nodeType":"YulTypedName","src":"4988:6:1","type":""}],"returnVariables":[{"name":"end","nativeSrc":"4999:3:1","nodeType":"YulTypedName","src":"4999:3:1","type":""}],"src":"4869:271:1"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr_fromMemory(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_memory_to_memory_with_cleanup(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := mload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_addresst_bytes_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := mload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_bytes_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n end := pos\n }\n\n}\n","id":1,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040526040516106e53803806106e583398181016040528101906100259190610512565b610035828261003c60201b60201c565b50506105f6565b61004b826100c160201b60201c565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a26000815111156100ae576100a8828261019460201b60201c565b506100bd565b6100bc61021e60201b60201c565b5b5050565b60008173ffffffffffffffffffffffffffffffffffffffff163b0361011d57806040517f4c9c8ce3000000000000000000000000000000000000000000000000000000008152600401610114919061057d565b60405180910390fd5b806101507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61025b60201b60201c565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606000808473ffffffffffffffffffffffffffffffffffffffff16846040516101be91906105df565b600060405180830381855af49150503d80600081146101f9576040519150601f19603f3d011682016040523d82523d6000602084013e6101fe565b606091505b509150915061021485838361026560201b60201c565b9250505092915050565b6000341115610259576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6000819050919050565b6060826102805761027b826102fa60201b60201c565b6102f2565b600082511480156102a8575060008473ffffffffffffffffffffffffffffffffffffffff163b145b156102ea57836040517f9996b3150000000000000000000000000000000000000000000000000000000081526004016102e1919061057d565b60405180910390fd5b8190506102f3565b5b9392505050565b60008151111561030d5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061037e82610353565b9050919050565b61038e81610373565b811461039957600080fd5b50565b6000815190506103ab81610385565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610404826103bb565b810181811067ffffffffffffffff82111715610423576104226103cc565b5b80604052505050565b600061043661033f565b905061044282826103fb565b919050565b600067ffffffffffffffff821115610462576104616103cc565b5b61046b826103bb565b9050602081019050919050565b60005b8381101561049657808201518184015260208101905061047b565b60008484015250505050565b60006104b56104b084610447565b61042c565b9050828152602081018484840111156104d1576104d06103b6565b5b6104dc848285610478565b509392505050565b600082601f8301126104f9576104f86103b1565b5b81516105098482602086016104a2565b91505092915050565b6000806040838503121561052957610528610349565b5b60006105378582860161039c565b925050602083015167ffffffffffffffff8111156105585761055761034e565b5b610564858286016104e4565b9150509250929050565b61057781610373565b82525050565b6000602082019050610592600083018461056e565b92915050565b600081519050919050565b600081905092915050565b60006105b982610598565b6105c381856105a3565b93506105d3818560208601610478565b80840191505092915050565b60006105eb82846105ae565b915081905092915050565b60e1806106046000396000f3fe6080604052600a600c565b005b60186014601a565b6027565b565b60006022604c565b905090565b3660008037600080366000845af43d6000803e80600081146047573d6000f35b3d6000fd5b600060787f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b60a1565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081905091905056fea2646970667358221220c5b968bc804a8dadb0c833392290a2aa8480ebf2c2cdddda46896225dfa4488164736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x6E5 CODESIZE SUB DUP1 PUSH2 0x6E5 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x25 SWAP2 SWAP1 PUSH2 0x512 JUMP JUMPDEST PUSH2 0x35 DUP3 DUP3 PUSH2 0x3C PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP POP PUSH2 0x5F6 JUMP JUMPDEST PUSH2 0x4B DUP3 PUSH2 0xC1 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0xAE JUMPI PUSH2 0xA8 DUP3 DUP3 PUSH2 0x194 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP PUSH2 0xBD JUMP JUMPDEST PUSH2 0xBC PUSH2 0x21E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE SUB PUSH2 0x11D JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x4C9C8CE300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x114 SWAP2 SWAP1 PUSH2 0x57D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH2 0x150 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC PUSH1 0x0 SHL PUSH2 0x25B PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH1 0x40 MLOAD PUSH2 0x1BE SWAP2 SWAP1 PUSH2 0x5DF JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1F9 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1FE JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x214 DUP6 DUP4 DUP4 PUSH2 0x265 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLVALUE GT ISZERO PUSH2 0x259 JUMPI PUSH1 0x40 MLOAD PUSH32 0xB398979F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 DUP3 PUSH2 0x280 JUMPI PUSH2 0x27B DUP3 PUSH2 0x2FA PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x2F2 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD EQ DUP1 ISZERO PUSH2 0x2A8 JUMPI POP PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE EQ JUMPDEST ISZERO PUSH2 0x2EA JUMPI DUP4 PUSH1 0x40 MLOAD PUSH32 0x9996B31500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2E1 SWAP2 SWAP1 PUSH2 0x57D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 SWAP1 POP PUSH2 0x2F3 JUMP JUMPDEST JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x30D JUMPI DUP1 MLOAD DUP1 DUP3 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x1425EA4200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x37E DUP3 PUSH2 0x353 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x38E DUP2 PUSH2 0x373 JUMP JUMPDEST DUP2 EQ PUSH2 0x399 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x3AB DUP2 PUSH2 0x385 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x404 DUP3 PUSH2 0x3BB JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x423 JUMPI PUSH2 0x422 PUSH2 0x3CC JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x436 PUSH2 0x33F JUMP JUMPDEST SWAP1 POP PUSH2 0x442 DUP3 DUP3 PUSH2 0x3FB JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x462 JUMPI PUSH2 0x461 PUSH2 0x3CC JUMP JUMPDEST JUMPDEST PUSH2 0x46B DUP3 PUSH2 0x3BB JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x496 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x47B JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4B5 PUSH2 0x4B0 DUP5 PUSH2 0x447 JUMP JUMPDEST PUSH2 0x42C JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x4D1 JUMPI PUSH2 0x4D0 PUSH2 0x3B6 JUMP JUMPDEST JUMPDEST PUSH2 0x4DC DUP5 DUP3 DUP6 PUSH2 0x478 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4F9 JUMPI PUSH2 0x4F8 PUSH2 0x3B1 JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH2 0x509 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x4A2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x529 JUMPI PUSH2 0x528 PUSH2 0x349 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x537 DUP6 DUP3 DUP7 ADD PUSH2 0x39C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x558 JUMPI PUSH2 0x557 PUSH2 0x34E JUMP JUMPDEST JUMPDEST PUSH2 0x564 DUP6 DUP3 DUP7 ADD PUSH2 0x4E4 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x577 DUP2 PUSH2 0x373 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x592 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x56E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5B9 DUP3 PUSH2 0x598 JUMP JUMPDEST PUSH2 0x5C3 DUP2 DUP6 PUSH2 0x5A3 JUMP JUMPDEST SWAP4 POP PUSH2 0x5D3 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x478 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5EB DUP3 DUP5 PUSH2 0x5AE JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xE1 DUP1 PUSH2 0x604 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0xA PUSH1 0xC JUMP JUMPDEST STOP JUMPDEST PUSH1 0x18 PUSH1 0x14 PUSH1 0x1A JUMP JUMPDEST PUSH1 0x27 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x22 PUSH1 0x4C JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST CALLDATASIZE PUSH1 0x0 DUP1 CALLDATACOPY PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY DUP1 PUSH1 0x0 DUP2 EQ PUSH1 0x47 JUMPI RETURNDATASIZE PUSH1 0x0 RETURN JUMPDEST RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x78 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC PUSH1 0x0 SHL PUSH1 0xA1 JUMP JUMPDEST PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC5 0xB9 PUSH9 0xBC804A8DADB0C83339 0x22 SWAP1 LOG2 0xAA DUP5 DUP1 0xEB CALLCODE 0xC2 0xCD 0xDD 0xDA CHAINID DUP10 PUSH3 0x25DFA4 BASEFEE DUP2 PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"252406:1116:0:-:0;;;252887:133;;;;;;;;;;;;;;;;;;;;;:::i;:::-;252961:52;252991:14;253007:5;252961:29;;;:52;;:::i;:::-;252887:133;;252406:1116;;235757:335;235848:37;235867:17;235848:18;;;:37;;:::i;:::-;235909:17;235900:27;;;;;;;;;;;;235956:1;235942:4;:11;:15;235938:148;;;235973:53;236002:17;236021:4;235973:28;;;:53;;:::i;:::-;;235938:148;;;236057:18;:16;;;:18;;:::i;:::-;235938:148;235757:335;;:::o;235164:281::-;235274:1;235241:17;:29;;;:34;235237:119;;235327:17;235298:47;;;;;;;;;;;:::i;:::-;;;;;;;;235237:119;235421:17;235365:47;234305:66;235392:19;;235365:26;;;:47;;:::i;:::-;:53;;;:73;;;;;;;;;;;;;;;;;;235164:281;:::o;173209:253::-;173292:12;173317;173331:23;173358:6;:19;;173378:4;173358:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;173316:67;;;;173400:55;173427:6;173435:7;173444:10;173400:26;;;:55;;:::i;:::-;173393:62;;;;173209:253;;;;:::o;239576:122::-;239638:1;239626:9;:13;239622:70;;;239662:19;;;;;;;;;;;;;;239622:70;239576:122::o;178098:190::-;178159:21;178268:4;178258:14;;178098:190;;;:::o;173728:582::-;173872:12;173901:7;173896:408;;173924:19;173932:10;173924:7;;;:19;;:::i;:::-;173896:408;;;174169:1;174148:10;:17;:22;:49;;;;;174196:1;174174:6;:18;;;:23;174148:49;174144:119;;;174241:6;174224:24;;;;;;;;;;;:::i;:::-;;;;;;;;174144:119;174283:10;174276:17;;;;173896:408;173728:582;;;;;;:::o;174846:516::-;174997:1;174977:10;:17;:21;174973:383;;;175205:10;175199:17;175261:15;175248:10;175244:2;175240:19;175233:44;174973:383;175328:17;;;;;;;;;;;;;;7:75:1;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:117::-;954:1;951;944:12;968:117;1077:1;1074;1067:12;1091:102;1132:6;1183:2;1179:7;1174:2;1167:5;1163:14;1159:28;1149:38;;1091:102;;;:::o;1199:180::-;1247:77;1244:1;1237:88;1344:4;1341:1;1334:15;1368:4;1365:1;1358:15;1385:281;1468:27;1490:4;1468:27;:::i;:::-;1460:6;1456:40;1598:6;1586:10;1583:22;1562:18;1550:10;1547:34;1544:62;1541:88;;;1609:18;;:::i;:::-;1541:88;1649:10;1645:2;1638:22;1428:238;1385:281;;:::o;1672:129::-;1706:6;1733:20;;:::i;:::-;1723:30;;1762:33;1790:4;1782:6;1762:33;:::i;:::-;1672:129;;;:::o;1807:307::-;1868:4;1958:18;1950:6;1947:30;1944:56;;;1980:18;;:::i;:::-;1944:56;2018:29;2040:6;2018:29;:::i;:::-;2010:37;;2102:4;2096;2092:15;2084:23;;1807:307;;;:::o;2120:248::-;2202:1;2212:113;2226:6;2223:1;2220:13;2212:113;;;2311:1;2306:3;2302:11;2296:18;2292:1;2287:3;2283:11;2276:39;2248:2;2245:1;2241:10;2236:15;;2212:113;;;2359:1;2350:6;2345:3;2341:16;2334:27;2182:186;2120:248;;;:::o;2374:432::-;2462:5;2487:65;2503:48;2544:6;2503:48;:::i;:::-;2487:65;:::i;:::-;2478:74;;2575:6;2568:5;2561:21;2613:4;2606:5;2602:16;2651:3;2642:6;2637:3;2633:16;2630:25;2627:112;;;2658:79;;:::i;:::-;2627:112;2748:52;2793:6;2788:3;2783;2748:52;:::i;:::-;2468:338;2374:432;;;;;:::o;2825:353::-;2891:5;2940:3;2933:4;2925:6;2921:17;2917:27;2907:122;;2948:79;;:::i;:::-;2907:122;3058:6;3052:13;3083:89;3168:3;3160:6;3153:4;3145:6;3141:17;3083:89;:::i;:::-;3074:98;;2897:281;2825:353;;;;:::o;3184:678::-;3272:6;3280;3329:2;3317:9;3308:7;3304:23;3300:32;3297:119;;;3335:79;;:::i;:::-;3297:119;3455:1;3480:64;3536:7;3527:6;3516:9;3512:22;3480:64;:::i;:::-;3470:74;;3426:128;3614:2;3603:9;3599:18;3593:25;3645:18;3637:6;3634:30;3631:117;;;3667:79;;:::i;:::-;3631:117;3772:73;3837:7;3828:6;3817:9;3813:22;3772:73;:::i;:::-;3762:83;;3564:291;3184:678;;;;;:::o;3868:118::-;3955:24;3973:5;3955:24;:::i;:::-;3950:3;3943:37;3868:118;;:::o;3992:222::-;4085:4;4123:2;4112:9;4108:18;4100:26;;4136:71;4204:1;4193:9;4189:17;4180:6;4136:71;:::i;:::-;3992:222;;;;:::o;4220:98::-;4271:6;4305:5;4299:12;4289:22;;4220:98;;;:::o;4324:147::-;4425:11;4462:3;4447:18;;4324:147;;;;:::o;4477:386::-;4581:3;4609:38;4641:5;4609:38;:::i;:::-;4663:88;4744:6;4739:3;4663:88;:::i;:::-;4656:95;;4760:65;4818:6;4813:3;4806:4;4799:5;4795:16;4760:65;:::i;:::-;4850:6;4845:3;4841:16;4834:23;;4585:278;4477:386;;;;:::o;4869:271::-;4999:3;5021:93;5110:3;5101:6;5021:93;:::i;:::-;5014:100;;5131:3;5124:10;;4869:271;;;;:::o;252406:1116:0:-;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_12211":{"entryPoint":null,"id":12211,"parameterSlots":0,"returnSlots":0},"@_delegate_12187":{"entryPoint":39,"id":12187,"parameterSlots":1,"returnSlots":0},"@_fallback_12203":{"entryPoint":12,"id":12203,"parameterSlots":0,"returnSlots":0},"@_implementation_17242":{"entryPoint":26,"id":17242,"parameterSlots":0,"returnSlots":1},"@getAddressSlot_12529":{"entryPoint":161,"id":12529,"parameterSlots":1,"returnSlots":1},"@getImplementation_16132":{"entryPoint":76,"id":16132,"parameterSlots":0,"returnSlots":1}},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"6080604052600a600c565b005b60186014601a565b6027565b565b60006022604c565b905090565b3660008037600080366000845af43d6000803e80600081146047573d6000f35b3d6000fd5b600060787f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b60a1565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081905091905056fea2646970667358221220c5b968bc804a8dadb0c833392290a2aa8480ebf2c2cdddda46896225dfa4488164736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0xA PUSH1 0xC JUMP JUMPDEST STOP JUMPDEST PUSH1 0x18 PUSH1 0x14 PUSH1 0x1A JUMP JUMPDEST PUSH1 0x27 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x22 PUSH1 0x4C JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST CALLDATASIZE PUSH1 0x0 DUP1 CALLDATACOPY PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY DUP1 PUSH1 0x0 DUP2 EQ PUSH1 0x47 JUMPI RETURNDATASIZE PUSH1 0x0 RETURN JUMPDEST RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x78 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC PUSH1 0x0 SHL PUSH1 0xA1 JUMP JUMPDEST PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC5 0xB9 PUSH9 0xBC804A8DADB0C83339 0x22 SWAP1 LOG2 0xAA DUP5 DUP1 0xEB CALLCODE 0xC2 0xCD 0xDD 0xDA CHAINID DUP10 PUSH3 0x25DFA4 BASEFEE DUP2 PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"252406:1116:0:-:0;;;168521:11;:9;:11::i;:::-;252406:1116;168195:83;168243:28;168253:17;:15;:17::i;:::-;168243:9;:28::i;:::-;168195:83::o;253388:132::-;253455:7;253481:32;:30;:32::i;:::-;253474:39;;253388:132;:::o;166821:895::-;167159:14;167156:1;167153;167140:34;167373:1;167370;167354:14;167351:1;167335:14;167328:5;167315:60;167449:16;167446:1;167443;167428:38;167487:6;167559:1;167554:66;;;;167669:16;167666:1;167659:27;167554:66;167589:16;167586:1;167579:27;234935:138;234987:7;235013:47;234305:66;235040:19;;235013:26;:47::i;:::-;:53;;;;;;;;;;;;235006:60;;234935:138;:::o;178098:190::-;178159:21;178268:4;178258:14;;178098:190;;;:::o"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"}],\"devdoc\":{\"details\":\"This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an implementation address that can be changed. This address is stored in storage in the location specified by https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the implementation behind the proxy.\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}]},\"events\":{\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the upgradeable proxy with an initial implementation specified by `implementation`. If `_data` is nonempty, it's used as data in a delegate call to `implementation`. This will typically be an encoded function call, and allows initializing the storage of the proxy like a Solidity constructor. Requirements: - If `data` is empty, `msg.value` must be zero.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Upgrades.sol\":\"ERC1967Proxy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"src/Upgrades.sol\":{\"keccak256\":\"0x420d4a351f46367d1fd8ea9409af6772fc442019d8f51bdd61b2114886ab3f98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dd2a0235e70d4f89d1d67af78ec13dd396224ec6cd87e4f906796bf50e385204\",\"dweb:/ipfs/QmULbNuaseWNiMWpBdR7ayYw5tknsYji6YtPG9KYd4k9Dp\"]}},\"version\":1}"},"ERC1967Utils":{"abi":[{"inputs":[{"internalType":"address","name":"admin","type":"address"}],"name":"ERC1967InvalidAdmin","type":"error"},{"inputs":[{"internalType":"address","name":"beacon","type":"address"}],"name":"ERC1967InvalidBeacon","type":"error"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"name":"ERC1967InvalidImplementation","type":"error"},{"inputs":[],"name":"ERC1967NonPayable","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122086592a46b7834d97af067e09577f9ab500b43afab9e0d8cfbbad94ec35e4757564736f6c634300081c0033","opcodes":"PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP7 MSIZE 0x2A CHAINID 0xB7 DUP4 0x4D SWAP8 0xAF MOD PUSH31 0x9577F9AB500B43AFAB9E0D8CFBBAD94EC35E4757564736F6C634300081C00 CALLER ","sourceMap":"233427:6273:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122086592a46b7834d97af067e09577f9ab500b43afab9e0d8cfbbad94ec35e4757564736f6c634300081c0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP7 MSIZE 0x2A CHAINID 0xB7 DUP4 0x4D SWAP8 0xAF MOD PUSH31 0x9577F9AB500B43AFAB9E0D8CFBBAD94EC35E4757564736F6C634300081C00 CALLER ","sourceMap":"233427:6273:0:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidAdmin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidBeacon\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"}],\"devdoc\":{\"details\":\"This abstract contract provides getters and event emitting update functions for https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots.\",\"errors\":{\"ERC1967InvalidAdmin(address)\":[{\"details\":\"The `admin` of the proxy is invalid.\"}],\"ERC1967InvalidBeacon(address)\":[{\"details\":\"The `beacon` of the proxy is invalid.\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}]},\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is changed.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"ADMIN_SLOT\":{\"details\":\"Storage slot with the admin of the contract. This is the keccak-256 hash of \\\"eip1967.proxy.admin\\\" subtracted by 1.\"},\"BEACON_SLOT\":{\"details\":\"The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy. This is the keccak-256 hash of \\\"eip1967.proxy.beacon\\\" subtracted by 1.\"},\"IMPLEMENTATION_SLOT\":{\"details\":\"Storage slot with the address of the current implementation. This is the keccak-256 hash of \\\"eip1967.proxy.implementation\\\" subtracted by 1.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Upgrades.sol\":\"ERC1967Utils\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"src/Upgrades.sol\":{\"keccak256\":\"0x420d4a351f46367d1fd8ea9409af6772fc442019d8f51bdd61b2114886ab3f98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dd2a0235e70d4f89d1d67af78ec13dd396224ec6cd87e4f906796bf50e385204\",\"dweb:/ipfs/QmULbNuaseWNiMWpBdR7ayYw5tknsYji6YtPG9KYd4k9Dp\"]}},\"version\":1}"},"IBeacon":{"abi":[{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"implementation()":"5c60da1b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This is the interface that {BeaconProxy} expects of its beacon.\",\"kind\":\"dev\",\"methods\":{\"implementation()\":{\"details\":\"Must return an address that can be used as a delegate call target. {UpgradeableBeacon} will check that this address is a contract.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Upgrades.sol\":\"IBeacon\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"src/Upgrades.sol\":{\"keccak256\":\"0x420d4a351f46367d1fd8ea9409af6772fc442019d8f51bdd61b2114886ab3f98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dd2a0235e70d4f89d1d67af78ec13dd396224ec6cd87e4f906796bf50e385204\",\"dweb:/ipfs/QmULbNuaseWNiMWpBdR7ayYw5tknsYji6YtPG9KYd4k9Dp\"]}},\"version\":1}"},"IERC1967":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"}],\"devdoc\":{\"details\":\"ERC-1967: Proxy Storage Slots. This interface contains the events defined in the ERC.\",\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is changed.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Upgrades.sol\":\"IERC1967\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"src/Upgrades.sol\":{\"keccak256\":\"0x420d4a351f46367d1fd8ea9409af6772fc442019d8f51bdd61b2114886ab3f98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dd2a0235e70d4f89d1d67af78ec13dd396224ec6cd87e4f906796bf50e385204\",\"dweb:/ipfs/QmULbNuaseWNiMWpBdR7ayYw5tknsYji6YtPG9KYd4k9Dp\"]}},\"version\":1}"},"IProxyAdmin":{"abi":[{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"upgrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"upgradeAndCall","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"upgrade(address,address)":"99a88ec4","upgradeAndCall(address,address,bytes)":"9623609d"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"upgrade\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"upgradeAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"upgrade(address,address)\":{\"notice\":\"Upgrades a proxy to a new implementation without calling a function on the new implementation.\"},\"upgradeAndCall(address,address,bytes)\":{\"notice\":\"Upgrades a proxy to a new implementation and calls a function on the new implementation. If UPGRADE_INTERFACE_VERSION is \\\"5.0.0\\\", bytes can be empty if no function should be called on the new implementation.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Upgrades.sol\":\"IProxyAdmin\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"src/Upgrades.sol\":{\"keccak256\":\"0x420d4a351f46367d1fd8ea9409af6772fc442019d8f51bdd61b2114886ab3f98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dd2a0235e70d4f89d1d67af78ec13dd396224ec6cd87e4f906796bf50e385204\",\"dweb:/ipfs/QmULbNuaseWNiMWpBdR7ayYw5tknsYji6YtPG9KYd4k9Dp\"]}},\"version\":1}"},"ITransparentUpgradeableProxy":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"upgradeToAndCall(address,bytes)":"4f1ef286"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for {TransparentUpgradeableProxy}. In order to implement transparency, {TransparentUpgradeableProxy} does not implement this interface directly, and its upgradeability mechanism is implemented by an internal dispatch mechanism. The compiler is unaware that these functions are implemented by {TransparentUpgradeableProxy} and will not include them in the ABI so this interface must be used to interact with it.\",\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is changed.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Upgrades.sol\":\"ITransparentUpgradeableProxy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"src/Upgrades.sol\":{\"keccak256\":\"0x420d4a351f46367d1fd8ea9409af6772fc442019d8f51bdd61b2114886ab3f98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dd2a0235e70d4f89d1d67af78ec13dd396224ec6cd87e4f906796bf50e385204\",\"dweb:/ipfs/QmULbNuaseWNiMWpBdR7ayYw5tknsYji6YtPG9KYd4k9Dp\"]}},\"version\":1}"},"IUpgradeableBeacon":{"abi":[{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"upgradeTo(address)":"3659cfe6"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"upgradeTo(address)\":{\"notice\":\"Upgrades the beacon to a new implementation.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Upgrades.sol\":\"IUpgradeableBeacon\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"src/Upgrades.sol\":{\"keccak256\":\"0x420d4a351f46367d1fd8ea9409af6772fc442019d8f51bdd61b2114886ab3f98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dd2a0235e70d4f89d1d67af78ec13dd396224ec6cd87e4f906796bf50e385204\",\"dweb:/ipfs/QmULbNuaseWNiMWpBdR7ayYw5tknsYji6YtPG9KYd4k9Dp\"]}},\"version\":1}"},"IUpgradeableProxy":{"abi":[{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"upgradeTo(address)":"3659cfe6","upgradeToAndCall(address,bytes)":"4f1ef286"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"upgradeTo(address)\":{\"notice\":\"Upgrades the proxy to a new implementation without calling a function on the new implementation.\"},\"upgradeToAndCall(address,bytes)\":{\"notice\":\"Upgrades the proxy to a new implementation and calls a function on the new implementation. If UPGRADE_INTERFACE_VERSION is \\\"5.0.0\\\", bytes can be empty if no function should be called on the new implementation.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Upgrades.sol\":\"IUpgradeableProxy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"src/Upgrades.sol\":{\"keccak256\":\"0x420d4a351f46367d1fd8ea9409af6772fc442019d8f51bdd61b2114886ab3f98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dd2a0235e70d4f89d1d67af78ec13dd396224ec6cd87e4f906796bf50e385204\",\"dweb:/ipfs/QmULbNuaseWNiMWpBdR7ayYw5tknsYji6YtPG9KYd4k9Dp\"]}},\"version\":1}"},"Math":{"abi":[{"inputs":[],"name":"MathOverflowedMulDiv","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f4a0a4b34bbba9cbb2e5f756b6020a24ba1925cf9cd541062eff696a1f4a461964736f6c634300081c0033","opcodes":"PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DELEGATECALL LOG0 LOG4 0xB3 0x4B 0xBB 0xA9 0xCB 0xB2 0xE5 0xF7 JUMP 0xB6 MUL EXP 0x24 0xBA NOT 0x25 0xCF SWAP13 0xD5 COINBASE MOD 0x2E SELFDESTRUCT PUSH10 0x6A1F4A461964736F6C63 NUMBER STOP ADDMOD SHR STOP CALLER ","sourceMap":"180591:14914:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f4a0a4b34bbba9cbb2e5f756b6020a24ba1925cf9cd541062eff696a1f4a461964736f6c634300081c0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DELEGATECALL LOG0 LOG4 0xB3 0x4B 0xBB 0xA9 0xCB 0xB2 0xE5 0xF7 JUMP 0xB6 MUL EXP 0x24 0xBA NOT 0x25 0xCF SWAP13 0xD5 COINBASE MOD 0x2E SELFDESTRUCT PUSH10 0x6A1F4A461964736F6C63 NUMBER STOP ADDMOD SHR STOP CALLER ","sourceMap":"180591:14914:0:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"MathOverflowedMulDiv\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard math utilities missing in the Solidity language.\",\"errors\":{\"MathOverflowedMulDiv()\":[{\"details\":\"Muldiv operation overflow.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Upgrades.sol\":\"Math\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"src/Upgrades.sol\":{\"keccak256\":\"0x420d4a351f46367d1fd8ea9409af6772fc442019d8f51bdd61b2114886ab3f98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dd2a0235e70d4f89d1d67af78ec13dd396224ec6cd87e4f906796bf50e385204\",\"dweb:/ipfs/QmULbNuaseWNiMWpBdR7ayYw5tknsYji6YtPG9KYd4k9Dp\"]}},\"version\":1}"},"Ownable":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. The initial owner is set to the address provided by the deployer. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract setting the address provided by the deployer as the initial owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Upgrades.sol\":\"Ownable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"src/Upgrades.sol\":{\"keccak256\":\"0x420d4a351f46367d1fd8ea9409af6772fc442019d8f51bdd61b2114886ab3f98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dd2a0235e70d4f89d1d67af78ec13dd396224ec6cd87e4f906796bf50e385204\",\"dweb:/ipfs/QmULbNuaseWNiMWpBdR7ayYw5tknsYji6YtPG9KYd4k9Dp\"]}},\"version\":1}"},"Proxy":{"abi":[{"stateMutability":"payable","type":"fallback"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"stateMutability\":\"payable\",\"type\":\"fallback\"}],\"devdoc\":{\"details\":\"This abstract contract provides a fallback function that delegates all calls to another contract using the EVM instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to be specified by overriding the virtual {_implementation} function. Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a different contract through the {_delegate} function. The success and return data of the delegated call will be returned back to the caller of the proxy.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Upgrades.sol\":\"Proxy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"src/Upgrades.sol\":{\"keccak256\":\"0x420d4a351f46367d1fd8ea9409af6772fc442019d8f51bdd61b2114886ab3f98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dd2a0235e70d4f89d1d67af78ec13dd396224ec6cd87e4f906796bf50e385204\",\"dweb:/ipfs/QmULbNuaseWNiMWpBdR7ayYw5tknsYji6YtPG9KYd4k9Dp\"]}},\"version\":1}"},"ProxyAdmin":{"abi":[{"inputs":[{"internalType":"address","name":"initialOwner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract ITransparentUpgradeableProxy","name":"proxy","type":"address"},{"internalType":"address","name":"implementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeAndCall","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_13905":{"entryPoint":null,"id":13905,"parameterSlots":1,"returnSlots":0},"@_17310":{"entryPoint":null,"id":17310,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_14001":{"entryPoint":187,"id":14001,"parameterSlots":1,"returnSlots":0},"abi_decode_t_address_fromMemory":{"entryPoint":461,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":482,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":527,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":542,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"cleanup_t_address":{"entryPoint":420,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":388,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":383,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_t_address":{"entryPoint":438,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:1551:1","nodeType":"YulBlock","src":"0:1551:1","statements":[{"body":{"nativeSrc":"47:35:1","nodeType":"YulBlock","src":"47:35:1","statements":[{"nativeSrc":"57:19:1","nodeType":"YulAssignment","src":"57:19:1","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:1","nodeType":"YulLiteral","src":"73:2:1","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:1","nodeType":"YulIdentifier","src":"67:5:1"},"nativeSrc":"67:9:1","nodeType":"YulFunctionCall","src":"67:9:1"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:1","nodeType":"YulIdentifier","src":"57:6:1"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:1","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:1","nodeType":"YulTypedName","src":"40:6:1","type":""}],"src":"7:75:1"},{"body":{"nativeSrc":"177:28:1","nodeType":"YulBlock","src":"177:28:1","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:1","nodeType":"YulLiteral","src":"194:1:1","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:1","nodeType":"YulLiteral","src":"197:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:1","nodeType":"YulIdentifier","src":"187:6:1"},"nativeSrc":"187:12:1","nodeType":"YulFunctionCall","src":"187:12:1"},"nativeSrc":"187:12:1","nodeType":"YulExpressionStatement","src":"187:12:1"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:1","nodeType":"YulFunctionDefinition","src":"88:117:1"},{"body":{"nativeSrc":"300:28:1","nodeType":"YulBlock","src":"300:28:1","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:1","nodeType":"YulLiteral","src":"317:1:1","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:1","nodeType":"YulLiteral","src":"320:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:1","nodeType":"YulIdentifier","src":"310:6:1"},"nativeSrc":"310:12:1","nodeType":"YulFunctionCall","src":"310:12:1"},"nativeSrc":"310:12:1","nodeType":"YulExpressionStatement","src":"310:12:1"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:1","nodeType":"YulFunctionDefinition","src":"211:117:1"},{"body":{"nativeSrc":"379:81:1","nodeType":"YulBlock","src":"379:81:1","statements":[{"nativeSrc":"389:65:1","nodeType":"YulAssignment","src":"389:65:1","value":{"arguments":[{"name":"value","nativeSrc":"404:5:1","nodeType":"YulIdentifier","src":"404:5:1"},{"kind":"number","nativeSrc":"411:42:1","nodeType":"YulLiteral","src":"411:42:1","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:1","nodeType":"YulIdentifier","src":"400:3:1"},"nativeSrc":"400:54:1","nodeType":"YulFunctionCall","src":"400:54:1"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:1","nodeType":"YulIdentifier","src":"389:7:1"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:1","nodeType":"YulTypedName","src":"361:5:1","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:1","nodeType":"YulTypedName","src":"371:7:1","type":""}],"src":"334:126:1"},{"body":{"nativeSrc":"511:51:1","nodeType":"YulBlock","src":"511:51:1","statements":[{"nativeSrc":"521:35:1","nodeType":"YulAssignment","src":"521:35:1","value":{"arguments":[{"name":"value","nativeSrc":"550:5:1","nodeType":"YulIdentifier","src":"550:5:1"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:1","nodeType":"YulIdentifier","src":"532:17:1"},"nativeSrc":"532:24:1","nodeType":"YulFunctionCall","src":"532:24:1"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:1","nodeType":"YulIdentifier","src":"521:7:1"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:1","nodeType":"YulTypedName","src":"493:5:1","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:1","nodeType":"YulTypedName","src":"503:7:1","type":""}],"src":"466:96:1"},{"body":{"nativeSrc":"611:79:1","nodeType":"YulBlock","src":"611:79:1","statements":[{"body":{"nativeSrc":"668:16:1","nodeType":"YulBlock","src":"668:16:1","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:1","nodeType":"YulLiteral","src":"677:1:1","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:1","nodeType":"YulLiteral","src":"680:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:1","nodeType":"YulIdentifier","src":"670:6:1"},"nativeSrc":"670:12:1","nodeType":"YulFunctionCall","src":"670:12:1"},"nativeSrc":"670:12:1","nodeType":"YulExpressionStatement","src":"670:12:1"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:1","nodeType":"YulIdentifier","src":"634:5:1"},{"arguments":[{"name":"value","nativeSrc":"659:5:1","nodeType":"YulIdentifier","src":"659:5:1"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:1","nodeType":"YulIdentifier","src":"641:17:1"},"nativeSrc":"641:24:1","nodeType":"YulFunctionCall","src":"641:24:1"}],"functionName":{"name":"eq","nativeSrc":"631:2:1","nodeType":"YulIdentifier","src":"631:2:1"},"nativeSrc":"631:35:1","nodeType":"YulFunctionCall","src":"631:35:1"}],"functionName":{"name":"iszero","nativeSrc":"624:6:1","nodeType":"YulIdentifier","src":"624:6:1"},"nativeSrc":"624:43:1","nodeType":"YulFunctionCall","src":"624:43:1"},"nativeSrc":"621:63:1","nodeType":"YulIf","src":"621:63:1"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:1","nodeType":"YulTypedName","src":"604:5:1","type":""}],"src":"568:122:1"},{"body":{"nativeSrc":"759:80:1","nodeType":"YulBlock","src":"759:80:1","statements":[{"nativeSrc":"769:22:1","nodeType":"YulAssignment","src":"769:22:1","value":{"arguments":[{"name":"offset","nativeSrc":"784:6:1","nodeType":"YulIdentifier","src":"784:6:1"}],"functionName":{"name":"mload","nativeSrc":"778:5:1","nodeType":"YulIdentifier","src":"778:5:1"},"nativeSrc":"778:13:1","nodeType":"YulFunctionCall","src":"778:13:1"},"variableNames":[{"name":"value","nativeSrc":"769:5:1","nodeType":"YulIdentifier","src":"769:5:1"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"827:5:1","nodeType":"YulIdentifier","src":"827:5:1"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"800:26:1","nodeType":"YulIdentifier","src":"800:26:1"},"nativeSrc":"800:33:1","nodeType":"YulFunctionCall","src":"800:33:1"},"nativeSrc":"800:33:1","nodeType":"YulExpressionStatement","src":"800:33:1"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"696:143:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"737:6:1","nodeType":"YulTypedName","src":"737:6:1","type":""},{"name":"end","nativeSrc":"745:3:1","nodeType":"YulTypedName","src":"745:3:1","type":""}],"returnVariables":[{"name":"value","nativeSrc":"753:5:1","nodeType":"YulTypedName","src":"753:5:1","type":""}],"src":"696:143:1"},{"body":{"nativeSrc":"922:274:1","nodeType":"YulBlock","src":"922:274:1","statements":[{"body":{"nativeSrc":"968:83:1","nodeType":"YulBlock","src":"968:83:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"970:77:1","nodeType":"YulIdentifier","src":"970:77:1"},"nativeSrc":"970:79:1","nodeType":"YulFunctionCall","src":"970:79:1"},"nativeSrc":"970:79:1","nodeType":"YulExpressionStatement","src":"970:79:1"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"943:7:1","nodeType":"YulIdentifier","src":"943:7:1"},{"name":"headStart","nativeSrc":"952:9:1","nodeType":"YulIdentifier","src":"952:9:1"}],"functionName":{"name":"sub","nativeSrc":"939:3:1","nodeType":"YulIdentifier","src":"939:3:1"},"nativeSrc":"939:23:1","nodeType":"YulFunctionCall","src":"939:23:1"},{"kind":"number","nativeSrc":"964:2:1","nodeType":"YulLiteral","src":"964:2:1","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"935:3:1","nodeType":"YulIdentifier","src":"935:3:1"},"nativeSrc":"935:32:1","nodeType":"YulFunctionCall","src":"935:32:1"},"nativeSrc":"932:119:1","nodeType":"YulIf","src":"932:119:1"},{"nativeSrc":"1061:128:1","nodeType":"YulBlock","src":"1061:128:1","statements":[{"nativeSrc":"1076:15:1","nodeType":"YulVariableDeclaration","src":"1076:15:1","value":{"kind":"number","nativeSrc":"1090:1:1","nodeType":"YulLiteral","src":"1090:1:1","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1080:6:1","nodeType":"YulTypedName","src":"1080:6:1","type":""}]},{"nativeSrc":"1105:74:1","nodeType":"YulAssignment","src":"1105:74:1","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1151:9:1","nodeType":"YulIdentifier","src":"1151:9:1"},{"name":"offset","nativeSrc":"1162:6:1","nodeType":"YulIdentifier","src":"1162:6:1"}],"functionName":{"name":"add","nativeSrc":"1147:3:1","nodeType":"YulIdentifier","src":"1147:3:1"},"nativeSrc":"1147:22:1","nodeType":"YulFunctionCall","src":"1147:22:1"},{"name":"dataEnd","nativeSrc":"1171:7:1","nodeType":"YulIdentifier","src":"1171:7:1"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1115:31:1","nodeType":"YulIdentifier","src":"1115:31:1"},"nativeSrc":"1115:64:1","nodeType":"YulFunctionCall","src":"1115:64:1"},"variableNames":[{"name":"value0","nativeSrc":"1105:6:1","nodeType":"YulIdentifier","src":"1105:6:1"}]}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nativeSrc":"845:351:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"892:9:1","nodeType":"YulTypedName","src":"892:9:1","type":""},{"name":"dataEnd","nativeSrc":"903:7:1","nodeType":"YulTypedName","src":"903:7:1","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"915:6:1","nodeType":"YulTypedName","src":"915:6:1","type":""}],"src":"845:351:1"},{"body":{"nativeSrc":"1267:53:1","nodeType":"YulBlock","src":"1267:53:1","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1284:3:1","nodeType":"YulIdentifier","src":"1284:3:1"},{"arguments":[{"name":"value","nativeSrc":"1307:5:1","nodeType":"YulIdentifier","src":"1307:5:1"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"1289:17:1","nodeType":"YulIdentifier","src":"1289:17:1"},"nativeSrc":"1289:24:1","nodeType":"YulFunctionCall","src":"1289:24:1"}],"functionName":{"name":"mstore","nativeSrc":"1277:6:1","nodeType":"YulIdentifier","src":"1277:6:1"},"nativeSrc":"1277:37:1","nodeType":"YulFunctionCall","src":"1277:37:1"},"nativeSrc":"1277:37:1","nodeType":"YulExpressionStatement","src":"1277:37:1"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"1202:118:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1255:5:1","nodeType":"YulTypedName","src":"1255:5:1","type":""},{"name":"pos","nativeSrc":"1262:3:1","nodeType":"YulTypedName","src":"1262:3:1","type":""}],"src":"1202:118:1"},{"body":{"nativeSrc":"1424:124:1","nodeType":"YulBlock","src":"1424:124:1","statements":[{"nativeSrc":"1434:26:1","nodeType":"YulAssignment","src":"1434:26:1","value":{"arguments":[{"name":"headStart","nativeSrc":"1446:9:1","nodeType":"YulIdentifier","src":"1446:9:1"},{"kind":"number","nativeSrc":"1457:2:1","nodeType":"YulLiteral","src":"1457:2:1","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1442:3:1","nodeType":"YulIdentifier","src":"1442:3:1"},"nativeSrc":"1442:18:1","nodeType":"YulFunctionCall","src":"1442:18:1"},"variableNames":[{"name":"tail","nativeSrc":"1434:4:1","nodeType":"YulIdentifier","src":"1434:4:1"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1514:6:1","nodeType":"YulIdentifier","src":"1514:6:1"},{"arguments":[{"name":"headStart","nativeSrc":"1527:9:1","nodeType":"YulIdentifier","src":"1527:9:1"},{"kind":"number","nativeSrc":"1538:1:1","nodeType":"YulLiteral","src":"1538:1:1","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1523:3:1","nodeType":"YulIdentifier","src":"1523:3:1"},"nativeSrc":"1523:17:1","nodeType":"YulFunctionCall","src":"1523:17:1"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"1470:43:1","nodeType":"YulIdentifier","src":"1470:43:1"},"nativeSrc":"1470:71:1","nodeType":"YulFunctionCall","src":"1470:71:1"},"nativeSrc":"1470:71:1","nodeType":"YulExpressionStatement","src":"1470:71:1"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"1326:222:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1396:9:1","nodeType":"YulTypedName","src":"1396:9:1","type":""},{"name":"value0","nativeSrc":"1408:6:1","nodeType":"YulTypedName","src":"1408:6:1","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1419:4:1","nodeType":"YulTypedName","src":"1419:4:1","type":""}],"src":"1326:222:1"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n}\n","id":1,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561001057600080fd5b50604051610a2b380380610a2b833981810160405281019061003291906101e2565b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100a55760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161009c919061021e565b60405180910390fd5b6100b4816100bb60201b60201c565b5050610239565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006101af82610184565b9050919050565b6101bf816101a4565b81146101ca57600080fd5b50565b6000815190506101dc816101b6565b92915050565b6000602082840312156101f8576101f761017f565b5b6000610206848285016101cd565b91505092915050565b610218816101a4565b82525050565b6000602082019050610233600083018461020f565b92915050565b6107e3806102486000396000f3fe60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610091578063ad3cb1cc146100ad578063f2fde38b146100d8575b600080fd5b34801561005b57600080fd5b50610064610101565b005b34801561007257600080fd5b5061007b610115565b604051610088919061040c565b60405180910390f35b6100ab60048036038101906100a691906105eb565b61013e565b005b3480156100b957600080fd5b506100c26101b9565b6040516100cf91906106d9565b60405180910390f35b3480156100e457600080fd5b506100ff60048036038101906100fa91906106fb565b6101f2565b005b610109610278565b61011360006102ff565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610146610278565b8273ffffffffffffffffffffffffffffffffffffffff16634f1ef2863484846040518463ffffffff1660e01b815260040161018292919061077d565b6000604051808303818588803b15801561019b57600080fd5b505af11580156101af573d6000803e3d6000fd5b5050505050505050565b6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6101fa610278565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361026c5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610263919061040c565b60405180910390fd5b610275816102ff565b50565b6102806103c3565b73ffffffffffffffffffffffffffffffffffffffff1661029e610115565b73ffffffffffffffffffffffffffffffffffffffff16146102fd576102c16103c3565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016102f4919061040c565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103f6826103cb565b9050919050565b610406816103eb565b82525050565b600060208201905061042160008301846103fd565b92915050565b6000604051905090565b600080fd5b600080fd5b6000610446826103eb565b9050919050565b6104568161043b565b811461046157600080fd5b50565b6000813590506104738161044d565b92915050565b610482816103eb565b811461048d57600080fd5b50565b60008135905061049f81610479565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6104f8826104af565b810181811067ffffffffffffffff82111715610517576105166104c0565b5b80604052505050565b600061052a610427565b905061053682826104ef565b919050565b600067ffffffffffffffff821115610556576105556104c0565b5b61055f826104af565b9050602081019050919050565b82818337600083830152505050565b600061058e6105898461053b565b610520565b9050828152602081018484840111156105aa576105a96104aa565b5b6105b584828561056c565b509392505050565b600082601f8301126105d2576105d16104a5565b5b81356105e284826020860161057b565b91505092915050565b60008060006060848603121561060457610603610431565b5b600061061286828701610464565b935050602061062386828701610490565b925050604084013567ffffffffffffffff81111561064457610643610436565b5b610650868287016105bd565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b60005b83811015610694578082015181840152602081019050610679565b60008484015250505050565b60006106ab8261065a565b6106b58185610665565b93506106c5818560208601610676565b6106ce816104af565b840191505092915050565b600060208201905081810360008301526106f381846106a0565b905092915050565b60006020828403121561071157610710610431565b5b600061071f84828501610490565b91505092915050565b600081519050919050565b600082825260208201905092915050565b600061074f82610728565b6107598185610733565b9350610769818560208601610676565b610772816104af565b840191505092915050565b600060408201905061079260008301856103fd565b81810360208301526107a48184610744565b9050939250505056fea26469706673582212207618fbcb2a391d05e882e2fcc53acd9c8d0257c7ed9e673b7bd1c2b353ab85fa64736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0xA2B CODESIZE SUB DUP1 PUSH2 0xA2B DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x32 SWAP2 SWAP1 PUSH2 0x1E2 JUMP JUMPDEST DUP1 PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA5 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9C SWAP2 SWAP1 PUSH2 0x21E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xB4 DUP2 PUSH2 0xBB PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP POP PUSH2 0x239 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1AF DUP3 PUSH2 0x184 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1BF DUP2 PUSH2 0x1A4 JUMP JUMPDEST DUP2 EQ PUSH2 0x1CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1DC DUP2 PUSH2 0x1B6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1F8 JUMPI PUSH2 0x1F7 PUSH2 0x17F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x206 DUP5 DUP3 DUP6 ADD PUSH2 0x1CD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x218 DUP2 PUSH2 0x1A4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x233 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x20F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x7E3 DUP1 PUSH2 0x248 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4A JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x715018A6 EQ PUSH2 0x4F JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x66 JUMPI DUP1 PUSH4 0x9623609D EQ PUSH2 0x91 JUMPI DUP1 PUSH4 0xAD3CB1CC EQ PUSH2 0xAD JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xD8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x64 PUSH2 0x101 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7B PUSH2 0x115 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x88 SWAP2 SWAP1 PUSH2 0x40C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xAB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xA6 SWAP2 SWAP1 PUSH2 0x5EB JUMP JUMPDEST PUSH2 0x13E JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC2 PUSH2 0x1B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCF SWAP2 SWAP1 PUSH2 0x6D9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xE4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xFF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xFA SWAP2 SWAP1 PUSH2 0x6FB JUMP JUMPDEST PUSH2 0x1F2 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x109 PUSH2 0x278 JUMP JUMPDEST PUSH2 0x113 PUSH1 0x0 PUSH2 0x2FF JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x146 PUSH2 0x278 JUMP JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4F1EF286 CALLVALUE DUP5 DUP5 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x182 SWAP3 SWAP2 SWAP1 PUSH2 0x77D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x19B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1AF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x352E302E30000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x1FA PUSH2 0x278 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x26C JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x263 SWAP2 SWAP1 PUSH2 0x40C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x275 DUP2 PUSH2 0x2FF JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x280 PUSH2 0x3C3 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x29E PUSH2 0x115 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x2FD JUMPI PUSH2 0x2C1 PUSH2 0x3C3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x118CDAA700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2F4 SWAP2 SWAP1 PUSH2 0x40C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3F6 DUP3 PUSH2 0x3CB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x406 DUP2 PUSH2 0x3EB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x421 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x3FD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x446 DUP3 PUSH2 0x3EB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x456 DUP2 PUSH2 0x43B JUMP JUMPDEST DUP2 EQ PUSH2 0x461 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x473 DUP2 PUSH2 0x44D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x482 DUP2 PUSH2 0x3EB JUMP JUMPDEST DUP2 EQ PUSH2 0x48D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x49F DUP2 PUSH2 0x479 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x4F8 DUP3 PUSH2 0x4AF JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x517 JUMPI PUSH2 0x516 PUSH2 0x4C0 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x52A PUSH2 0x427 JUMP JUMPDEST SWAP1 POP PUSH2 0x536 DUP3 DUP3 PUSH2 0x4EF JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x556 JUMPI PUSH2 0x555 PUSH2 0x4C0 JUMP JUMPDEST JUMPDEST PUSH2 0x55F DUP3 PUSH2 0x4AF JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x58E PUSH2 0x589 DUP5 PUSH2 0x53B JUMP JUMPDEST PUSH2 0x520 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x5AA JUMPI PUSH2 0x5A9 PUSH2 0x4AA JUMP JUMPDEST JUMPDEST PUSH2 0x5B5 DUP5 DUP3 DUP6 PUSH2 0x56C JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x5D2 JUMPI PUSH2 0x5D1 PUSH2 0x4A5 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x5E2 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x57B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x604 JUMPI PUSH2 0x603 PUSH2 0x431 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x612 DUP7 DUP3 DUP8 ADD PUSH2 0x464 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x623 DUP7 DUP3 DUP8 ADD PUSH2 0x490 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x644 JUMPI PUSH2 0x643 PUSH2 0x436 JUMP JUMPDEST JUMPDEST PUSH2 0x650 DUP7 DUP3 DUP8 ADD PUSH2 0x5BD JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x694 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x679 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6AB DUP3 PUSH2 0x65A JUMP JUMPDEST PUSH2 0x6B5 DUP2 DUP6 PUSH2 0x665 JUMP JUMPDEST SWAP4 POP PUSH2 0x6C5 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x676 JUMP JUMPDEST PUSH2 0x6CE DUP2 PUSH2 0x4AF JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x6F3 DUP2 DUP5 PUSH2 0x6A0 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x711 JUMPI PUSH2 0x710 PUSH2 0x431 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x71F DUP5 DUP3 DUP6 ADD PUSH2 0x490 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x74F DUP3 PUSH2 0x728 JUMP JUMPDEST PUSH2 0x759 DUP2 DUP6 PUSH2 0x733 JUMP JUMPDEST SWAP4 POP PUSH2 0x769 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x676 JUMP JUMPDEST PUSH2 0x772 DUP2 PUSH2 0x4AF JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x792 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x3FD JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x7A4 DUP2 DUP5 PUSH2 0x744 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH23 0x18FBCB2A391D05E882E2FCC53ACD9C8D0257C7ED9E673B PUSH28 0xD1C2B353AB85FA64736F6C634300081C003300000000000000000000 ","sourceMap":"256178:1442:0:-:0;;;256985:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;257027:12;204566:1;204542:26;;:12;:26;;;204538:95;;204619:1;204591:31;;;;;;;;;;;:::i;:::-;;;;;;;;204538:95;204642:32;204661:12;204642:18;;;:32;;:::i;:::-;204494:187;256985:58;256178:1442;;206181:187;206254:16;206273:6;;;;;;;;;;;206254:25;;206298:8;206289:6;;:17;;;;;;;;;;;;;;;;;;206352:8;206321:40;;206342:8;206321:40;;;;;;;;;;;;206244:124;206181:187;:::o;88:117:1:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:351::-;915:6;964:2;952:9;943:7;939:23;935:32;932:119;;;970:79;;:::i;:::-;932:119;1090:1;1115:64;1171:7;1162:6;1151:9;1147:22;1115:64;:::i;:::-;1105:74;;1061:128;845:351;;;;:::o;1202:118::-;1289:24;1307:5;1289:24;:::i;:::-;1284:3;1277:37;1202:118;;:::o;1326:222::-;1419:4;1457:2;1446:9;1442:18;1434:26;;1470:71;1538:1;1527:9;1523:17;1514:6;1470:71;:::i;:::-;1326:222;;;;:::o;256178:1442:0:-;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@UPGRADE_INTERFACE_VERSION_17300":{"entryPoint":441,"id":17300,"parameterSlots":0,"returnSlots":0},"@_checkOwner_13939":{"entryPoint":632,"id":13939,"parameterSlots":0,"returnSlots":0},"@_msgSender_12481":{"entryPoint":963,"id":12481,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_14001":{"entryPoint":767,"id":14001,"parameterSlots":1,"returnSlots":0},"@owner_13922":{"entryPoint":277,"id":13922,"parameterSlots":0,"returnSlots":1},"@renounceOwnership_13953":{"entryPoint":257,"id":13953,"parameterSlots":0,"returnSlots":0},"@transferOwnership_13981":{"entryPoint":498,"id":13981,"parameterSlots":1,"returnSlots":0},"@upgradeAndCall_17334":{"entryPoint":318,"id":17334,"parameterSlots":3,"returnSlots":0},"abi_decode_available_length_t_bytes_memory_ptr":{"entryPoint":1403,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":1168,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_memory_ptr":{"entryPoint":1469,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_contract$_ITransparentUpgradeableProxy_$17346":{"entryPoint":1124,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":1787,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_ITransparentUpgradeableProxy_$17346t_addresst_bytes_memory_ptr":{"entryPoint":1515,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":1021,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack":{"entryPoint":1860,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":1696,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":1036,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes_memory_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":1917,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1753,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":1312,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":1063,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":1339,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":1832,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":1626,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack":{"entryPoint":1843,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":1637,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":1003,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_contract$_ITransparentUpgradeableProxy_$17346":{"entryPoint":1083,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":971,"id":null,"parameterSlots":1,"returnSlots":1},"copy_calldata_to_memory_with_cleanup":{"entryPoint":1388,"id":null,"parameterSlots":3,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":1654,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":1263,"id":null,"parameterSlots":2,"returnSlots":0},"panic_error_0x41":{"entryPoint":1216,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":1189,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":1194,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":1078,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":1073,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":1199,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_address":{"entryPoint":1145,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_contract$_ITransparentUpgradeableProxy_$17346":{"entryPoint":1101,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:7502:1","nodeType":"YulBlock","src":"0:7502:1","statements":[{"body":{"nativeSrc":"52:81:1","nodeType":"YulBlock","src":"52:81:1","statements":[{"nativeSrc":"62:65:1","nodeType":"YulAssignment","src":"62:65:1","value":{"arguments":[{"name":"value","nativeSrc":"77:5:1","nodeType":"YulIdentifier","src":"77:5:1"},{"kind":"number","nativeSrc":"84:42:1","nodeType":"YulLiteral","src":"84:42:1","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"73:3:1","nodeType":"YulIdentifier","src":"73:3:1"},"nativeSrc":"73:54:1","nodeType":"YulFunctionCall","src":"73:54:1"},"variableNames":[{"name":"cleaned","nativeSrc":"62:7:1","nodeType":"YulIdentifier","src":"62:7:1"}]}]},"name":"cleanup_t_uint160","nativeSrc":"7:126:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"34:5:1","nodeType":"YulTypedName","src":"34:5:1","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"44:7:1","nodeType":"YulTypedName","src":"44:7:1","type":""}],"src":"7:126:1"},{"body":{"nativeSrc":"184:51:1","nodeType":"YulBlock","src":"184:51:1","statements":[{"nativeSrc":"194:35:1","nodeType":"YulAssignment","src":"194:35:1","value":{"arguments":[{"name":"value","nativeSrc":"223:5:1","nodeType":"YulIdentifier","src":"223:5:1"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"205:17:1","nodeType":"YulIdentifier","src":"205:17:1"},"nativeSrc":"205:24:1","nodeType":"YulFunctionCall","src":"205:24:1"},"variableNames":[{"name":"cleaned","nativeSrc":"194:7:1","nodeType":"YulIdentifier","src":"194:7:1"}]}]},"name":"cleanup_t_address","nativeSrc":"139:96:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"166:5:1","nodeType":"YulTypedName","src":"166:5:1","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"176:7:1","nodeType":"YulTypedName","src":"176:7:1","type":""}],"src":"139:96:1"},{"body":{"nativeSrc":"306:53:1","nodeType":"YulBlock","src":"306:53:1","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"323:3:1","nodeType":"YulIdentifier","src":"323:3:1"},{"arguments":[{"name":"value","nativeSrc":"346:5:1","nodeType":"YulIdentifier","src":"346:5:1"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"328:17:1","nodeType":"YulIdentifier","src":"328:17:1"},"nativeSrc":"328:24:1","nodeType":"YulFunctionCall","src":"328:24:1"}],"functionName":{"name":"mstore","nativeSrc":"316:6:1","nodeType":"YulIdentifier","src":"316:6:1"},"nativeSrc":"316:37:1","nodeType":"YulFunctionCall","src":"316:37:1"},"nativeSrc":"316:37:1","nodeType":"YulExpressionStatement","src":"316:37:1"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"241:118:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"294:5:1","nodeType":"YulTypedName","src":"294:5:1","type":""},{"name":"pos","nativeSrc":"301:3:1","nodeType":"YulTypedName","src":"301:3:1","type":""}],"src":"241:118:1"},{"body":{"nativeSrc":"463:124:1","nodeType":"YulBlock","src":"463:124:1","statements":[{"nativeSrc":"473:26:1","nodeType":"YulAssignment","src":"473:26:1","value":{"arguments":[{"name":"headStart","nativeSrc":"485:9:1","nodeType":"YulIdentifier","src":"485:9:1"},{"kind":"number","nativeSrc":"496:2:1","nodeType":"YulLiteral","src":"496:2:1","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"481:3:1","nodeType":"YulIdentifier","src":"481:3:1"},"nativeSrc":"481:18:1","nodeType":"YulFunctionCall","src":"481:18:1"},"variableNames":[{"name":"tail","nativeSrc":"473:4:1","nodeType":"YulIdentifier","src":"473:4:1"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"553:6:1","nodeType":"YulIdentifier","src":"553:6:1"},{"arguments":[{"name":"headStart","nativeSrc":"566:9:1","nodeType":"YulIdentifier","src":"566:9:1"},{"kind":"number","nativeSrc":"577:1:1","nodeType":"YulLiteral","src":"577:1:1","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"562:3:1","nodeType":"YulIdentifier","src":"562:3:1"},"nativeSrc":"562:17:1","nodeType":"YulFunctionCall","src":"562:17:1"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"509:43:1","nodeType":"YulIdentifier","src":"509:43:1"},"nativeSrc":"509:71:1","nodeType":"YulFunctionCall","src":"509:71:1"},"nativeSrc":"509:71:1","nodeType":"YulExpressionStatement","src":"509:71:1"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"365:222:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"435:9:1","nodeType":"YulTypedName","src":"435:9:1","type":""},{"name":"value0","nativeSrc":"447:6:1","nodeType":"YulTypedName","src":"447:6:1","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"458:4:1","nodeType":"YulTypedName","src":"458:4:1","type":""}],"src":"365:222:1"},{"body":{"nativeSrc":"633:35:1","nodeType":"YulBlock","src":"633:35:1","statements":[{"nativeSrc":"643:19:1","nodeType":"YulAssignment","src":"643:19:1","value":{"arguments":[{"kind":"number","nativeSrc":"659:2:1","nodeType":"YulLiteral","src":"659:2:1","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"653:5:1","nodeType":"YulIdentifier","src":"653:5:1"},"nativeSrc":"653:9:1","nodeType":"YulFunctionCall","src":"653:9:1"},"variableNames":[{"name":"memPtr","nativeSrc":"643:6:1","nodeType":"YulIdentifier","src":"643:6:1"}]}]},"name":"allocate_unbounded","nativeSrc":"593:75:1","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"626:6:1","nodeType":"YulTypedName","src":"626:6:1","type":""}],"src":"593:75:1"},{"body":{"nativeSrc":"763:28:1","nodeType":"YulBlock","src":"763:28:1","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"780:1:1","nodeType":"YulLiteral","src":"780:1:1","type":"","value":"0"},{"kind":"number","nativeSrc":"783:1:1","nodeType":"YulLiteral","src":"783:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"773:6:1","nodeType":"YulIdentifier","src":"773:6:1"},"nativeSrc":"773:12:1","nodeType":"YulFunctionCall","src":"773:12:1"},"nativeSrc":"773:12:1","nodeType":"YulExpressionStatement","src":"773:12:1"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"674:117:1","nodeType":"YulFunctionDefinition","src":"674:117:1"},{"body":{"nativeSrc":"886:28:1","nodeType":"YulBlock","src":"886:28:1","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"903:1:1","nodeType":"YulLiteral","src":"903:1:1","type":"","value":"0"},{"kind":"number","nativeSrc":"906:1:1","nodeType":"YulLiteral","src":"906:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"896:6:1","nodeType":"YulIdentifier","src":"896:6:1"},"nativeSrc":"896:12:1","nodeType":"YulFunctionCall","src":"896:12:1"},"nativeSrc":"896:12:1","nodeType":"YulExpressionStatement","src":"896:12:1"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"797:117:1","nodeType":"YulFunctionDefinition","src":"797:117:1"},{"body":{"nativeSrc":"1003:51:1","nodeType":"YulBlock","src":"1003:51:1","statements":[{"nativeSrc":"1013:35:1","nodeType":"YulAssignment","src":"1013:35:1","value":{"arguments":[{"name":"value","nativeSrc":"1042:5:1","nodeType":"YulIdentifier","src":"1042:5:1"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"1024:17:1","nodeType":"YulIdentifier","src":"1024:17:1"},"nativeSrc":"1024:24:1","nodeType":"YulFunctionCall","src":"1024:24:1"},"variableNames":[{"name":"cleaned","nativeSrc":"1013:7:1","nodeType":"YulIdentifier","src":"1013:7:1"}]}]},"name":"cleanup_t_contract$_ITransparentUpgradeableProxy_$17346","nativeSrc":"920:134:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"985:5:1","nodeType":"YulTypedName","src":"985:5:1","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"995:7:1","nodeType":"YulTypedName","src":"995:7:1","type":""}],"src":"920:134:1"},{"body":{"nativeSrc":"1141:117:1","nodeType":"YulBlock","src":"1141:117:1","statements":[{"body":{"nativeSrc":"1236:16:1","nodeType":"YulBlock","src":"1236:16:1","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1245:1:1","nodeType":"YulLiteral","src":"1245:1:1","type":"","value":"0"},{"kind":"number","nativeSrc":"1248:1:1","nodeType":"YulLiteral","src":"1248:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1238:6:1","nodeType":"YulIdentifier","src":"1238:6:1"},"nativeSrc":"1238:12:1","nodeType":"YulFunctionCall","src":"1238:12:1"},"nativeSrc":"1238:12:1","nodeType":"YulExpressionStatement","src":"1238:12:1"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1164:5:1","nodeType":"YulIdentifier","src":"1164:5:1"},{"arguments":[{"name":"value","nativeSrc":"1227:5:1","nodeType":"YulIdentifier","src":"1227:5:1"}],"functionName":{"name":"cleanup_t_contract$_ITransparentUpgradeableProxy_$17346","nativeSrc":"1171:55:1","nodeType":"YulIdentifier","src":"1171:55:1"},"nativeSrc":"1171:62:1","nodeType":"YulFunctionCall","src":"1171:62:1"}],"functionName":{"name":"eq","nativeSrc":"1161:2:1","nodeType":"YulIdentifier","src":"1161:2:1"},"nativeSrc":"1161:73:1","nodeType":"YulFunctionCall","src":"1161:73:1"}],"functionName":{"name":"iszero","nativeSrc":"1154:6:1","nodeType":"YulIdentifier","src":"1154:6:1"},"nativeSrc":"1154:81:1","nodeType":"YulFunctionCall","src":"1154:81:1"},"nativeSrc":"1151:101:1","nodeType":"YulIf","src":"1151:101:1"}]},"name":"validator_revert_t_contract$_ITransparentUpgradeableProxy_$17346","nativeSrc":"1060:198:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1134:5:1","nodeType":"YulTypedName","src":"1134:5:1","type":""}],"src":"1060:198:1"},{"body":{"nativeSrc":"1354:125:1","nodeType":"YulBlock","src":"1354:125:1","statements":[{"nativeSrc":"1364:29:1","nodeType":"YulAssignment","src":"1364:29:1","value":{"arguments":[{"name":"offset","nativeSrc":"1386:6:1","nodeType":"YulIdentifier","src":"1386:6:1"}],"functionName":{"name":"calldataload","nativeSrc":"1373:12:1","nodeType":"YulIdentifier","src":"1373:12:1"},"nativeSrc":"1373:20:1","nodeType":"YulFunctionCall","src":"1373:20:1"},"variableNames":[{"name":"value","nativeSrc":"1364:5:1","nodeType":"YulIdentifier","src":"1364:5:1"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1467:5:1","nodeType":"YulIdentifier","src":"1467:5:1"}],"functionName":{"name":"validator_revert_t_contract$_ITransparentUpgradeableProxy_$17346","nativeSrc":"1402:64:1","nodeType":"YulIdentifier","src":"1402:64:1"},"nativeSrc":"1402:71:1","nodeType":"YulFunctionCall","src":"1402:71:1"},"nativeSrc":"1402:71:1","nodeType":"YulExpressionStatement","src":"1402:71:1"}]},"name":"abi_decode_t_contract$_ITransparentUpgradeableProxy_$17346","nativeSrc":"1264:215:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1332:6:1","nodeType":"YulTypedName","src":"1332:6:1","type":""},{"name":"end","nativeSrc":"1340:3:1","nodeType":"YulTypedName","src":"1340:3:1","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1348:5:1","nodeType":"YulTypedName","src":"1348:5:1","type":""}],"src":"1264:215:1"},{"body":{"nativeSrc":"1528:79:1","nodeType":"YulBlock","src":"1528:79:1","statements":[{"body":{"nativeSrc":"1585:16:1","nodeType":"YulBlock","src":"1585:16:1","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1594:1:1","nodeType":"YulLiteral","src":"1594:1:1","type":"","value":"0"},{"kind":"number","nativeSrc":"1597:1:1","nodeType":"YulLiteral","src":"1597:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1587:6:1","nodeType":"YulIdentifier","src":"1587:6:1"},"nativeSrc":"1587:12:1","nodeType":"YulFunctionCall","src":"1587:12:1"},"nativeSrc":"1587:12:1","nodeType":"YulExpressionStatement","src":"1587:12:1"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1551:5:1","nodeType":"YulIdentifier","src":"1551:5:1"},{"arguments":[{"name":"value","nativeSrc":"1576:5:1","nodeType":"YulIdentifier","src":"1576:5:1"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"1558:17:1","nodeType":"YulIdentifier","src":"1558:17:1"},"nativeSrc":"1558:24:1","nodeType":"YulFunctionCall","src":"1558:24:1"}],"functionName":{"name":"eq","nativeSrc":"1548:2:1","nodeType":"YulIdentifier","src":"1548:2:1"},"nativeSrc":"1548:35:1","nodeType":"YulFunctionCall","src":"1548:35:1"}],"functionName":{"name":"iszero","nativeSrc":"1541:6:1","nodeType":"YulIdentifier","src":"1541:6:1"},"nativeSrc":"1541:43:1","nodeType":"YulFunctionCall","src":"1541:43:1"},"nativeSrc":"1538:63:1","nodeType":"YulIf","src":"1538:63:1"}]},"name":"validator_revert_t_address","nativeSrc":"1485:122:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1521:5:1","nodeType":"YulTypedName","src":"1521:5:1","type":""}],"src":"1485:122:1"},{"body":{"nativeSrc":"1665:87:1","nodeType":"YulBlock","src":"1665:87:1","statements":[{"nativeSrc":"1675:29:1","nodeType":"YulAssignment","src":"1675:29:1","value":{"arguments":[{"name":"offset","nativeSrc":"1697:6:1","nodeType":"YulIdentifier","src":"1697:6:1"}],"functionName":{"name":"calldataload","nativeSrc":"1684:12:1","nodeType":"YulIdentifier","src":"1684:12:1"},"nativeSrc":"1684:20:1","nodeType":"YulFunctionCall","src":"1684:20:1"},"variableNames":[{"name":"value","nativeSrc":"1675:5:1","nodeType":"YulIdentifier","src":"1675:5:1"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1740:5:1","nodeType":"YulIdentifier","src":"1740:5:1"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"1713:26:1","nodeType":"YulIdentifier","src":"1713:26:1"},"nativeSrc":"1713:33:1","nodeType":"YulFunctionCall","src":"1713:33:1"},"nativeSrc":"1713:33:1","nodeType":"YulExpressionStatement","src":"1713:33:1"}]},"name":"abi_decode_t_address","nativeSrc":"1613:139:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1643:6:1","nodeType":"YulTypedName","src":"1643:6:1","type":""},{"name":"end","nativeSrc":"1651:3:1","nodeType":"YulTypedName","src":"1651:3:1","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1659:5:1","nodeType":"YulTypedName","src":"1659:5:1","type":""}],"src":"1613:139:1"},{"body":{"nativeSrc":"1847:28:1","nodeType":"YulBlock","src":"1847:28:1","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1864:1:1","nodeType":"YulLiteral","src":"1864:1:1","type":"","value":"0"},{"kind":"number","nativeSrc":"1867:1:1","nodeType":"YulLiteral","src":"1867:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1857:6:1","nodeType":"YulIdentifier","src":"1857:6:1"},"nativeSrc":"1857:12:1","nodeType":"YulFunctionCall","src":"1857:12:1"},"nativeSrc":"1857:12:1","nodeType":"YulExpressionStatement","src":"1857:12:1"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"1758:117:1","nodeType":"YulFunctionDefinition","src":"1758:117:1"},{"body":{"nativeSrc":"1970:28:1","nodeType":"YulBlock","src":"1970:28:1","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1987:1:1","nodeType":"YulLiteral","src":"1987:1:1","type":"","value":"0"},{"kind":"number","nativeSrc":"1990:1:1","nodeType":"YulLiteral","src":"1990:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1980:6:1","nodeType":"YulIdentifier","src":"1980:6:1"},"nativeSrc":"1980:12:1","nodeType":"YulFunctionCall","src":"1980:12:1"},"nativeSrc":"1980:12:1","nodeType":"YulExpressionStatement","src":"1980:12:1"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"1881:117:1","nodeType":"YulFunctionDefinition","src":"1881:117:1"},{"body":{"nativeSrc":"2052:54:1","nodeType":"YulBlock","src":"2052:54:1","statements":[{"nativeSrc":"2062:38:1","nodeType":"YulAssignment","src":"2062:38:1","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2080:5:1","nodeType":"YulIdentifier","src":"2080:5:1"},{"kind":"number","nativeSrc":"2087:2:1","nodeType":"YulLiteral","src":"2087:2:1","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"2076:3:1","nodeType":"YulIdentifier","src":"2076:3:1"},"nativeSrc":"2076:14:1","nodeType":"YulFunctionCall","src":"2076:14:1"},{"arguments":[{"kind":"number","nativeSrc":"2096:2:1","nodeType":"YulLiteral","src":"2096:2:1","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"2092:3:1","nodeType":"YulIdentifier","src":"2092:3:1"},"nativeSrc":"2092:7:1","nodeType":"YulFunctionCall","src":"2092:7:1"}],"functionName":{"name":"and","nativeSrc":"2072:3:1","nodeType":"YulIdentifier","src":"2072:3:1"},"nativeSrc":"2072:28:1","nodeType":"YulFunctionCall","src":"2072:28:1"},"variableNames":[{"name":"result","nativeSrc":"2062:6:1","nodeType":"YulIdentifier","src":"2062:6:1"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"2004:102:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2035:5:1","nodeType":"YulTypedName","src":"2035:5:1","type":""}],"returnVariables":[{"name":"result","nativeSrc":"2045:6:1","nodeType":"YulTypedName","src":"2045:6:1","type":""}],"src":"2004:102:1"},{"body":{"nativeSrc":"2140:152:1","nodeType":"YulBlock","src":"2140:152:1","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2157:1:1","nodeType":"YulLiteral","src":"2157:1:1","type":"","value":"0"},{"kind":"number","nativeSrc":"2160:77:1","nodeType":"YulLiteral","src":"2160:77:1","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"2150:6:1","nodeType":"YulIdentifier","src":"2150:6:1"},"nativeSrc":"2150:88:1","nodeType":"YulFunctionCall","src":"2150:88:1"},"nativeSrc":"2150:88:1","nodeType":"YulExpressionStatement","src":"2150:88:1"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2254:1:1","nodeType":"YulLiteral","src":"2254:1:1","type":"","value":"4"},{"kind":"number","nativeSrc":"2257:4:1","nodeType":"YulLiteral","src":"2257:4:1","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"2247:6:1","nodeType":"YulIdentifier","src":"2247:6:1"},"nativeSrc":"2247:15:1","nodeType":"YulFunctionCall","src":"2247:15:1"},"nativeSrc":"2247:15:1","nodeType":"YulExpressionStatement","src":"2247:15:1"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2278:1:1","nodeType":"YulLiteral","src":"2278:1:1","type":"","value":"0"},{"kind":"number","nativeSrc":"2281:4:1","nodeType":"YulLiteral","src":"2281:4:1","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"2271:6:1","nodeType":"YulIdentifier","src":"2271:6:1"},"nativeSrc":"2271:15:1","nodeType":"YulFunctionCall","src":"2271:15:1"},"nativeSrc":"2271:15:1","nodeType":"YulExpressionStatement","src":"2271:15:1"}]},"name":"panic_error_0x41","nativeSrc":"2112:180:1","nodeType":"YulFunctionDefinition","src":"2112:180:1"},{"body":{"nativeSrc":"2341:238:1","nodeType":"YulBlock","src":"2341:238:1","statements":[{"nativeSrc":"2351:58:1","nodeType":"YulVariableDeclaration","src":"2351:58:1","value":{"arguments":[{"name":"memPtr","nativeSrc":"2373:6:1","nodeType":"YulIdentifier","src":"2373:6:1"},{"arguments":[{"name":"size","nativeSrc":"2403:4:1","nodeType":"YulIdentifier","src":"2403:4:1"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"2381:21:1","nodeType":"YulIdentifier","src":"2381:21:1"},"nativeSrc":"2381:27:1","nodeType":"YulFunctionCall","src":"2381:27:1"}],"functionName":{"name":"add","nativeSrc":"2369:3:1","nodeType":"YulIdentifier","src":"2369:3:1"},"nativeSrc":"2369:40:1","nodeType":"YulFunctionCall","src":"2369:40:1"},"variables":[{"name":"newFreePtr","nativeSrc":"2355:10:1","nodeType":"YulTypedName","src":"2355:10:1","type":""}]},{"body":{"nativeSrc":"2520:22:1","nodeType":"YulBlock","src":"2520:22:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"2522:16:1","nodeType":"YulIdentifier","src":"2522:16:1"},"nativeSrc":"2522:18:1","nodeType":"YulFunctionCall","src":"2522:18:1"},"nativeSrc":"2522:18:1","nodeType":"YulExpressionStatement","src":"2522:18:1"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"2463:10:1","nodeType":"YulIdentifier","src":"2463:10:1"},{"kind":"number","nativeSrc":"2475:18:1","nodeType":"YulLiteral","src":"2475:18:1","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2460:2:1","nodeType":"YulIdentifier","src":"2460:2:1"},"nativeSrc":"2460:34:1","nodeType":"YulFunctionCall","src":"2460:34:1"},{"arguments":[{"name":"newFreePtr","nativeSrc":"2499:10:1","nodeType":"YulIdentifier","src":"2499:10:1"},{"name":"memPtr","nativeSrc":"2511:6:1","nodeType":"YulIdentifier","src":"2511:6:1"}],"functionName":{"name":"lt","nativeSrc":"2496:2:1","nodeType":"YulIdentifier","src":"2496:2:1"},"nativeSrc":"2496:22:1","nodeType":"YulFunctionCall","src":"2496:22:1"}],"functionName":{"name":"or","nativeSrc":"2457:2:1","nodeType":"YulIdentifier","src":"2457:2:1"},"nativeSrc":"2457:62:1","nodeType":"YulFunctionCall","src":"2457:62:1"},"nativeSrc":"2454:88:1","nodeType":"YulIf","src":"2454:88:1"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2558:2:1","nodeType":"YulLiteral","src":"2558:2:1","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"2562:10:1","nodeType":"YulIdentifier","src":"2562:10:1"}],"functionName":{"name":"mstore","nativeSrc":"2551:6:1","nodeType":"YulIdentifier","src":"2551:6:1"},"nativeSrc":"2551:22:1","nodeType":"YulFunctionCall","src":"2551:22:1"},"nativeSrc":"2551:22:1","nodeType":"YulExpressionStatement","src":"2551:22:1"}]},"name":"finalize_allocation","nativeSrc":"2298:281:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"2327:6:1","nodeType":"YulTypedName","src":"2327:6:1","type":""},{"name":"size","nativeSrc":"2335:4:1","nodeType":"YulTypedName","src":"2335:4:1","type":""}],"src":"2298:281:1"},{"body":{"nativeSrc":"2626:88:1","nodeType":"YulBlock","src":"2626:88:1","statements":[{"nativeSrc":"2636:30:1","nodeType":"YulAssignment","src":"2636:30:1","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"2646:18:1","nodeType":"YulIdentifier","src":"2646:18:1"},"nativeSrc":"2646:20:1","nodeType":"YulFunctionCall","src":"2646:20:1"},"variableNames":[{"name":"memPtr","nativeSrc":"2636:6:1","nodeType":"YulIdentifier","src":"2636:6:1"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"2695:6:1","nodeType":"YulIdentifier","src":"2695:6:1"},{"name":"size","nativeSrc":"2703:4:1","nodeType":"YulIdentifier","src":"2703:4:1"}],"functionName":{"name":"finalize_allocation","nativeSrc":"2675:19:1","nodeType":"YulIdentifier","src":"2675:19:1"},"nativeSrc":"2675:33:1","nodeType":"YulFunctionCall","src":"2675:33:1"},"nativeSrc":"2675:33:1","nodeType":"YulExpressionStatement","src":"2675:33:1"}]},"name":"allocate_memory","nativeSrc":"2585:129:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"2610:4:1","nodeType":"YulTypedName","src":"2610:4:1","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"2619:6:1","nodeType":"YulTypedName","src":"2619:6:1","type":""}],"src":"2585:129:1"},{"body":{"nativeSrc":"2786:241:1","nodeType":"YulBlock","src":"2786:241:1","statements":[{"body":{"nativeSrc":"2891:22:1","nodeType":"YulBlock","src":"2891:22:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"2893:16:1","nodeType":"YulIdentifier","src":"2893:16:1"},"nativeSrc":"2893:18:1","nodeType":"YulFunctionCall","src":"2893:18:1"},"nativeSrc":"2893:18:1","nodeType":"YulExpressionStatement","src":"2893:18:1"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"2863:6:1","nodeType":"YulIdentifier","src":"2863:6:1"},{"kind":"number","nativeSrc":"2871:18:1","nodeType":"YulLiteral","src":"2871:18:1","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2860:2:1","nodeType":"YulIdentifier","src":"2860:2:1"},"nativeSrc":"2860:30:1","nodeType":"YulFunctionCall","src":"2860:30:1"},"nativeSrc":"2857:56:1","nodeType":"YulIf","src":"2857:56:1"},{"nativeSrc":"2923:37:1","nodeType":"YulAssignment","src":"2923:37:1","value":{"arguments":[{"name":"length","nativeSrc":"2953:6:1","nodeType":"YulIdentifier","src":"2953:6:1"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"2931:21:1","nodeType":"YulIdentifier","src":"2931:21:1"},"nativeSrc":"2931:29:1","nodeType":"YulFunctionCall","src":"2931:29:1"},"variableNames":[{"name":"size","nativeSrc":"2923:4:1","nodeType":"YulIdentifier","src":"2923:4:1"}]},{"nativeSrc":"2997:23:1","nodeType":"YulAssignment","src":"2997:23:1","value":{"arguments":[{"name":"size","nativeSrc":"3009:4:1","nodeType":"YulIdentifier","src":"3009:4:1"},{"kind":"number","nativeSrc":"3015:4:1","nodeType":"YulLiteral","src":"3015:4:1","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3005:3:1","nodeType":"YulIdentifier","src":"3005:3:1"},"nativeSrc":"3005:15:1","nodeType":"YulFunctionCall","src":"3005:15:1"},"variableNames":[{"name":"size","nativeSrc":"2997:4:1","nodeType":"YulIdentifier","src":"2997:4:1"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"2720:307:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"2770:6:1","nodeType":"YulTypedName","src":"2770:6:1","type":""}],"returnVariables":[{"name":"size","nativeSrc":"2781:4:1","nodeType":"YulTypedName","src":"2781:4:1","type":""}],"src":"2720:307:1"},{"body":{"nativeSrc":"3097:84:1","nodeType":"YulBlock","src":"3097:84:1","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"3121:3:1","nodeType":"YulIdentifier","src":"3121:3:1"},{"name":"src","nativeSrc":"3126:3:1","nodeType":"YulIdentifier","src":"3126:3:1"},{"name":"length","nativeSrc":"3131:6:1","nodeType":"YulIdentifier","src":"3131:6:1"}],"functionName":{"name":"calldatacopy","nativeSrc":"3108:12:1","nodeType":"YulIdentifier","src":"3108:12:1"},"nativeSrc":"3108:30:1","nodeType":"YulFunctionCall","src":"3108:30:1"},"nativeSrc":"3108:30:1","nodeType":"YulExpressionStatement","src":"3108:30:1"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"3158:3:1","nodeType":"YulIdentifier","src":"3158:3:1"},{"name":"length","nativeSrc":"3163:6:1","nodeType":"YulIdentifier","src":"3163:6:1"}],"functionName":{"name":"add","nativeSrc":"3154:3:1","nodeType":"YulIdentifier","src":"3154:3:1"},"nativeSrc":"3154:16:1","nodeType":"YulFunctionCall","src":"3154:16:1"},{"kind":"number","nativeSrc":"3172:1:1","nodeType":"YulLiteral","src":"3172:1:1","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"3147:6:1","nodeType":"YulIdentifier","src":"3147:6:1"},"nativeSrc":"3147:27:1","nodeType":"YulFunctionCall","src":"3147:27:1"},"nativeSrc":"3147:27:1","nodeType":"YulExpressionStatement","src":"3147:27:1"}]},"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"3033:148:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"3079:3:1","nodeType":"YulTypedName","src":"3079:3:1","type":""},{"name":"dst","nativeSrc":"3084:3:1","nodeType":"YulTypedName","src":"3084:3:1","type":""},{"name":"length","nativeSrc":"3089:6:1","nodeType":"YulTypedName","src":"3089:6:1","type":""}],"src":"3033:148:1"},{"body":{"nativeSrc":"3270:340:1","nodeType":"YulBlock","src":"3270:340:1","statements":[{"nativeSrc":"3280:74:1","nodeType":"YulAssignment","src":"3280:74:1","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"3346:6:1","nodeType":"YulIdentifier","src":"3346:6:1"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"3305:40:1","nodeType":"YulIdentifier","src":"3305:40:1"},"nativeSrc":"3305:48:1","nodeType":"YulFunctionCall","src":"3305:48:1"}],"functionName":{"name":"allocate_memory","nativeSrc":"3289:15:1","nodeType":"YulIdentifier","src":"3289:15:1"},"nativeSrc":"3289:65:1","nodeType":"YulFunctionCall","src":"3289:65:1"},"variableNames":[{"name":"array","nativeSrc":"3280:5:1","nodeType":"YulIdentifier","src":"3280:5:1"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"3370:5:1","nodeType":"YulIdentifier","src":"3370:5:1"},{"name":"length","nativeSrc":"3377:6:1","nodeType":"YulIdentifier","src":"3377:6:1"}],"functionName":{"name":"mstore","nativeSrc":"3363:6:1","nodeType":"YulIdentifier","src":"3363:6:1"},"nativeSrc":"3363:21:1","nodeType":"YulFunctionCall","src":"3363:21:1"},"nativeSrc":"3363:21:1","nodeType":"YulExpressionStatement","src":"3363:21:1"},{"nativeSrc":"3393:27:1","nodeType":"YulVariableDeclaration","src":"3393:27:1","value":{"arguments":[{"name":"array","nativeSrc":"3408:5:1","nodeType":"YulIdentifier","src":"3408:5:1"},{"kind":"number","nativeSrc":"3415:4:1","nodeType":"YulLiteral","src":"3415:4:1","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3404:3:1","nodeType":"YulIdentifier","src":"3404:3:1"},"nativeSrc":"3404:16:1","nodeType":"YulFunctionCall","src":"3404:16:1"},"variables":[{"name":"dst","nativeSrc":"3397:3:1","nodeType":"YulTypedName","src":"3397:3:1","type":""}]},{"body":{"nativeSrc":"3458:83:1","nodeType":"YulBlock","src":"3458:83:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"3460:77:1","nodeType":"YulIdentifier","src":"3460:77:1"},"nativeSrc":"3460:79:1","nodeType":"YulFunctionCall","src":"3460:79:1"},"nativeSrc":"3460:79:1","nodeType":"YulExpressionStatement","src":"3460:79:1"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"3439:3:1","nodeType":"YulIdentifier","src":"3439:3:1"},{"name":"length","nativeSrc":"3444:6:1","nodeType":"YulIdentifier","src":"3444:6:1"}],"functionName":{"name":"add","nativeSrc":"3435:3:1","nodeType":"YulIdentifier","src":"3435:3:1"},"nativeSrc":"3435:16:1","nodeType":"YulFunctionCall","src":"3435:16:1"},{"name":"end","nativeSrc":"3453:3:1","nodeType":"YulIdentifier","src":"3453:3:1"}],"functionName":{"name":"gt","nativeSrc":"3432:2:1","nodeType":"YulIdentifier","src":"3432:2:1"},"nativeSrc":"3432:25:1","nodeType":"YulFunctionCall","src":"3432:25:1"},"nativeSrc":"3429:112:1","nodeType":"YulIf","src":"3429:112:1"},{"expression":{"arguments":[{"name":"src","nativeSrc":"3587:3:1","nodeType":"YulIdentifier","src":"3587:3:1"},{"name":"dst","nativeSrc":"3592:3:1","nodeType":"YulIdentifier","src":"3592:3:1"},{"name":"length","nativeSrc":"3597:6:1","nodeType":"YulIdentifier","src":"3597:6:1"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"3550:36:1","nodeType":"YulIdentifier","src":"3550:36:1"},"nativeSrc":"3550:54:1","nodeType":"YulFunctionCall","src":"3550:54:1"},"nativeSrc":"3550:54:1","nodeType":"YulExpressionStatement","src":"3550:54:1"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"3187:423:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"3243:3:1","nodeType":"YulTypedName","src":"3243:3:1","type":""},{"name":"length","nativeSrc":"3248:6:1","nodeType":"YulTypedName","src":"3248:6:1","type":""},{"name":"end","nativeSrc":"3256:3:1","nodeType":"YulTypedName","src":"3256:3:1","type":""}],"returnVariables":[{"name":"array","nativeSrc":"3264:5:1","nodeType":"YulTypedName","src":"3264:5:1","type":""}],"src":"3187:423:1"},{"body":{"nativeSrc":"3690:277:1","nodeType":"YulBlock","src":"3690:277:1","statements":[{"body":{"nativeSrc":"3739:83:1","nodeType":"YulBlock","src":"3739:83:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"3741:77:1","nodeType":"YulIdentifier","src":"3741:77:1"},"nativeSrc":"3741:79:1","nodeType":"YulFunctionCall","src":"3741:79:1"},"nativeSrc":"3741:79:1","nodeType":"YulExpressionStatement","src":"3741:79:1"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3718:6:1","nodeType":"YulIdentifier","src":"3718:6:1"},{"kind":"number","nativeSrc":"3726:4:1","nodeType":"YulLiteral","src":"3726:4:1","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"3714:3:1","nodeType":"YulIdentifier","src":"3714:3:1"},"nativeSrc":"3714:17:1","nodeType":"YulFunctionCall","src":"3714:17:1"},{"name":"end","nativeSrc":"3733:3:1","nodeType":"YulIdentifier","src":"3733:3:1"}],"functionName":{"name":"slt","nativeSrc":"3710:3:1","nodeType":"YulIdentifier","src":"3710:3:1"},"nativeSrc":"3710:27:1","nodeType":"YulFunctionCall","src":"3710:27:1"}],"functionName":{"name":"iszero","nativeSrc":"3703:6:1","nodeType":"YulIdentifier","src":"3703:6:1"},"nativeSrc":"3703:35:1","nodeType":"YulFunctionCall","src":"3703:35:1"},"nativeSrc":"3700:122:1","nodeType":"YulIf","src":"3700:122:1"},{"nativeSrc":"3831:34:1","nodeType":"YulVariableDeclaration","src":"3831:34:1","value":{"arguments":[{"name":"offset","nativeSrc":"3858:6:1","nodeType":"YulIdentifier","src":"3858:6:1"}],"functionName":{"name":"calldataload","nativeSrc":"3845:12:1","nodeType":"YulIdentifier","src":"3845:12:1"},"nativeSrc":"3845:20:1","nodeType":"YulFunctionCall","src":"3845:20:1"},"variables":[{"name":"length","nativeSrc":"3835:6:1","nodeType":"YulTypedName","src":"3835:6:1","type":""}]},{"nativeSrc":"3874:87:1","nodeType":"YulAssignment","src":"3874:87:1","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3934:6:1","nodeType":"YulIdentifier","src":"3934:6:1"},{"kind":"number","nativeSrc":"3942:4:1","nodeType":"YulLiteral","src":"3942:4:1","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3930:3:1","nodeType":"YulIdentifier","src":"3930:3:1"},"nativeSrc":"3930:17:1","nodeType":"YulFunctionCall","src":"3930:17:1"},{"name":"length","nativeSrc":"3949:6:1","nodeType":"YulIdentifier","src":"3949:6:1"},{"name":"end","nativeSrc":"3957:3:1","nodeType":"YulIdentifier","src":"3957:3:1"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"3883:46:1","nodeType":"YulIdentifier","src":"3883:46:1"},"nativeSrc":"3883:78:1","nodeType":"YulFunctionCall","src":"3883:78:1"},"variableNames":[{"name":"array","nativeSrc":"3874:5:1","nodeType":"YulIdentifier","src":"3874:5:1"}]}]},"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"3629:338:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3668:6:1","nodeType":"YulTypedName","src":"3668:6:1","type":""},{"name":"end","nativeSrc":"3676:3:1","nodeType":"YulTypedName","src":"3676:3:1","type":""}],"returnVariables":[{"name":"array","nativeSrc":"3684:5:1","nodeType":"YulTypedName","src":"3684:5:1","type":""}],"src":"3629:338:1"},{"body":{"nativeSrc":"4120:726:1","nodeType":"YulBlock","src":"4120:726:1","statements":[{"body":{"nativeSrc":"4166:83:1","nodeType":"YulBlock","src":"4166:83:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4168:77:1","nodeType":"YulIdentifier","src":"4168:77:1"},"nativeSrc":"4168:79:1","nodeType":"YulFunctionCall","src":"4168:79:1"},"nativeSrc":"4168:79:1","nodeType":"YulExpressionStatement","src":"4168:79:1"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4141:7:1","nodeType":"YulIdentifier","src":"4141:7:1"},{"name":"headStart","nativeSrc":"4150:9:1","nodeType":"YulIdentifier","src":"4150:9:1"}],"functionName":{"name":"sub","nativeSrc":"4137:3:1","nodeType":"YulIdentifier","src":"4137:3:1"},"nativeSrc":"4137:23:1","nodeType":"YulFunctionCall","src":"4137:23:1"},{"kind":"number","nativeSrc":"4162:2:1","nodeType":"YulLiteral","src":"4162:2:1","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"4133:3:1","nodeType":"YulIdentifier","src":"4133:3:1"},"nativeSrc":"4133:32:1","nodeType":"YulFunctionCall","src":"4133:32:1"},"nativeSrc":"4130:119:1","nodeType":"YulIf","src":"4130:119:1"},{"nativeSrc":"4259:155:1","nodeType":"YulBlock","src":"4259:155:1","statements":[{"nativeSrc":"4274:15:1","nodeType":"YulVariableDeclaration","src":"4274:15:1","value":{"kind":"number","nativeSrc":"4288:1:1","nodeType":"YulLiteral","src":"4288:1:1","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"4278:6:1","nodeType":"YulTypedName","src":"4278:6:1","type":""}]},{"nativeSrc":"4303:101:1","nodeType":"YulAssignment","src":"4303:101:1","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4376:9:1","nodeType":"YulIdentifier","src":"4376:9:1"},{"name":"offset","nativeSrc":"4387:6:1","nodeType":"YulIdentifier","src":"4387:6:1"}],"functionName":{"name":"add","nativeSrc":"4372:3:1","nodeType":"YulIdentifier","src":"4372:3:1"},"nativeSrc":"4372:22:1","nodeType":"YulFunctionCall","src":"4372:22:1"},{"name":"dataEnd","nativeSrc":"4396:7:1","nodeType":"YulIdentifier","src":"4396:7:1"}],"functionName":{"name":"abi_decode_t_contract$_ITransparentUpgradeableProxy_$17346","nativeSrc":"4313:58:1","nodeType":"YulIdentifier","src":"4313:58:1"},"nativeSrc":"4313:91:1","nodeType":"YulFunctionCall","src":"4313:91:1"},"variableNames":[{"name":"value0","nativeSrc":"4303:6:1","nodeType":"YulIdentifier","src":"4303:6:1"}]}]},{"nativeSrc":"4424:118:1","nodeType":"YulBlock","src":"4424:118:1","statements":[{"nativeSrc":"4439:16:1","nodeType":"YulVariableDeclaration","src":"4439:16:1","value":{"kind":"number","nativeSrc":"4453:2:1","nodeType":"YulLiteral","src":"4453:2:1","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"4443:6:1","nodeType":"YulTypedName","src":"4443:6:1","type":""}]},{"nativeSrc":"4469:63:1","nodeType":"YulAssignment","src":"4469:63:1","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4504:9:1","nodeType":"YulIdentifier","src":"4504:9:1"},{"name":"offset","nativeSrc":"4515:6:1","nodeType":"YulIdentifier","src":"4515:6:1"}],"functionName":{"name":"add","nativeSrc":"4500:3:1","nodeType":"YulIdentifier","src":"4500:3:1"},"nativeSrc":"4500:22:1","nodeType":"YulFunctionCall","src":"4500:22:1"},{"name":"dataEnd","nativeSrc":"4524:7:1","nodeType":"YulIdentifier","src":"4524:7:1"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"4479:20:1","nodeType":"YulIdentifier","src":"4479:20:1"},"nativeSrc":"4479:53:1","nodeType":"YulFunctionCall","src":"4479:53:1"},"variableNames":[{"name":"value1","nativeSrc":"4469:6:1","nodeType":"YulIdentifier","src":"4469:6:1"}]}]},{"nativeSrc":"4552:287:1","nodeType":"YulBlock","src":"4552:287:1","statements":[{"nativeSrc":"4567:46:1","nodeType":"YulVariableDeclaration","src":"4567:46:1","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4598:9:1","nodeType":"YulIdentifier","src":"4598:9:1"},{"kind":"number","nativeSrc":"4609:2:1","nodeType":"YulLiteral","src":"4609:2:1","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4594:3:1","nodeType":"YulIdentifier","src":"4594:3:1"},"nativeSrc":"4594:18:1","nodeType":"YulFunctionCall","src":"4594:18:1"}],"functionName":{"name":"calldataload","nativeSrc":"4581:12:1","nodeType":"YulIdentifier","src":"4581:12:1"},"nativeSrc":"4581:32:1","nodeType":"YulFunctionCall","src":"4581:32:1"},"variables":[{"name":"offset","nativeSrc":"4571:6:1","nodeType":"YulTypedName","src":"4571:6:1","type":""}]},{"body":{"nativeSrc":"4660:83:1","nodeType":"YulBlock","src":"4660:83:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"4662:77:1","nodeType":"YulIdentifier","src":"4662:77:1"},"nativeSrc":"4662:79:1","nodeType":"YulFunctionCall","src":"4662:79:1"},"nativeSrc":"4662:79:1","nodeType":"YulExpressionStatement","src":"4662:79:1"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"4632:6:1","nodeType":"YulIdentifier","src":"4632:6:1"},{"kind":"number","nativeSrc":"4640:18:1","nodeType":"YulLiteral","src":"4640:18:1","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4629:2:1","nodeType":"YulIdentifier","src":"4629:2:1"},"nativeSrc":"4629:30:1","nodeType":"YulFunctionCall","src":"4629:30:1"},"nativeSrc":"4626:117:1","nodeType":"YulIf","src":"4626:117:1"},{"nativeSrc":"4757:72:1","nodeType":"YulAssignment","src":"4757:72:1","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4801:9:1","nodeType":"YulIdentifier","src":"4801:9:1"},{"name":"offset","nativeSrc":"4812:6:1","nodeType":"YulIdentifier","src":"4812:6:1"}],"functionName":{"name":"add","nativeSrc":"4797:3:1","nodeType":"YulIdentifier","src":"4797:3:1"},"nativeSrc":"4797:22:1","nodeType":"YulFunctionCall","src":"4797:22:1"},{"name":"dataEnd","nativeSrc":"4821:7:1","nodeType":"YulIdentifier","src":"4821:7:1"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"4767:29:1","nodeType":"YulIdentifier","src":"4767:29:1"},"nativeSrc":"4767:62:1","nodeType":"YulFunctionCall","src":"4767:62:1"},"variableNames":[{"name":"value2","nativeSrc":"4757:6:1","nodeType":"YulIdentifier","src":"4757:6:1"}]}]}]},"name":"abi_decode_tuple_t_contract$_ITransparentUpgradeableProxy_$17346t_addresst_bytes_memory_ptr","nativeSrc":"3973:873:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4074:9:1","nodeType":"YulTypedName","src":"4074:9:1","type":""},{"name":"dataEnd","nativeSrc":"4085:7:1","nodeType":"YulTypedName","src":"4085:7:1","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4097:6:1","nodeType":"YulTypedName","src":"4097:6:1","type":""},{"name":"value1","nativeSrc":"4105:6:1","nodeType":"YulTypedName","src":"4105:6:1","type":""},{"name":"value2","nativeSrc":"4113:6:1","nodeType":"YulTypedName","src":"4113:6:1","type":""}],"src":"3973:873:1"},{"body":{"nativeSrc":"4911:40:1","nodeType":"YulBlock","src":"4911:40:1","statements":[{"nativeSrc":"4922:22:1","nodeType":"YulAssignment","src":"4922:22:1","value":{"arguments":[{"name":"value","nativeSrc":"4938:5:1","nodeType":"YulIdentifier","src":"4938:5:1"}],"functionName":{"name":"mload","nativeSrc":"4932:5:1","nodeType":"YulIdentifier","src":"4932:5:1"},"nativeSrc":"4932:12:1","nodeType":"YulFunctionCall","src":"4932:12:1"},"variableNames":[{"name":"length","nativeSrc":"4922:6:1","nodeType":"YulIdentifier","src":"4922:6:1"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"4852:99:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4894:5:1","nodeType":"YulTypedName","src":"4894:5:1","type":""}],"returnVariables":[{"name":"length","nativeSrc":"4904:6:1","nodeType":"YulTypedName","src":"4904:6:1","type":""}],"src":"4852:99:1"},{"body":{"nativeSrc":"5053:73:1","nodeType":"YulBlock","src":"5053:73:1","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5070:3:1","nodeType":"YulIdentifier","src":"5070:3:1"},{"name":"length","nativeSrc":"5075:6:1","nodeType":"YulIdentifier","src":"5075:6:1"}],"functionName":{"name":"mstore","nativeSrc":"5063:6:1","nodeType":"YulIdentifier","src":"5063:6:1"},"nativeSrc":"5063:19:1","nodeType":"YulFunctionCall","src":"5063:19:1"},"nativeSrc":"5063:19:1","nodeType":"YulExpressionStatement","src":"5063:19:1"},{"nativeSrc":"5091:29:1","nodeType":"YulAssignment","src":"5091:29:1","value":{"arguments":[{"name":"pos","nativeSrc":"5110:3:1","nodeType":"YulIdentifier","src":"5110:3:1"},{"kind":"number","nativeSrc":"5115:4:1","nodeType":"YulLiteral","src":"5115:4:1","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5106:3:1","nodeType":"YulIdentifier","src":"5106:3:1"},"nativeSrc":"5106:14:1","nodeType":"YulFunctionCall","src":"5106:14:1"},"variableNames":[{"name":"updated_pos","nativeSrc":"5091:11:1","nodeType":"YulIdentifier","src":"5091:11:1"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"4957:169:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"5025:3:1","nodeType":"YulTypedName","src":"5025:3:1","type":""},{"name":"length","nativeSrc":"5030:6:1","nodeType":"YulTypedName","src":"5030:6:1","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"5041:11:1","nodeType":"YulTypedName","src":"5041:11:1","type":""}],"src":"4957:169:1"},{"body":{"nativeSrc":"5194:186:1","nodeType":"YulBlock","src":"5194:186:1","statements":[{"nativeSrc":"5205:10:1","nodeType":"YulVariableDeclaration","src":"5205:10:1","value":{"kind":"number","nativeSrc":"5214:1:1","nodeType":"YulLiteral","src":"5214:1:1","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"5209:1:1","nodeType":"YulTypedName","src":"5209:1:1","type":""}]},{"body":{"nativeSrc":"5274:63:1","nodeType":"YulBlock","src":"5274:63:1","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"5299:3:1","nodeType":"YulIdentifier","src":"5299:3:1"},{"name":"i","nativeSrc":"5304:1:1","nodeType":"YulIdentifier","src":"5304:1:1"}],"functionName":{"name":"add","nativeSrc":"5295:3:1","nodeType":"YulIdentifier","src":"5295:3:1"},"nativeSrc":"5295:11:1","nodeType":"YulFunctionCall","src":"5295:11:1"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"5318:3:1","nodeType":"YulIdentifier","src":"5318:3:1"},{"name":"i","nativeSrc":"5323:1:1","nodeType":"YulIdentifier","src":"5323:1:1"}],"functionName":{"name":"add","nativeSrc":"5314:3:1","nodeType":"YulIdentifier","src":"5314:3:1"},"nativeSrc":"5314:11:1","nodeType":"YulFunctionCall","src":"5314:11:1"}],"functionName":{"name":"mload","nativeSrc":"5308:5:1","nodeType":"YulIdentifier","src":"5308:5:1"},"nativeSrc":"5308:18:1","nodeType":"YulFunctionCall","src":"5308:18:1"}],"functionName":{"name":"mstore","nativeSrc":"5288:6:1","nodeType":"YulIdentifier","src":"5288:6:1"},"nativeSrc":"5288:39:1","nodeType":"YulFunctionCall","src":"5288:39:1"},"nativeSrc":"5288:39:1","nodeType":"YulExpressionStatement","src":"5288:39:1"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"5235:1:1","nodeType":"YulIdentifier","src":"5235:1:1"},{"name":"length","nativeSrc":"5238:6:1","nodeType":"YulIdentifier","src":"5238:6:1"}],"functionName":{"name":"lt","nativeSrc":"5232:2:1","nodeType":"YulIdentifier","src":"5232:2:1"},"nativeSrc":"5232:13:1","nodeType":"YulFunctionCall","src":"5232:13:1"},"nativeSrc":"5224:113:1","nodeType":"YulForLoop","post":{"nativeSrc":"5246:19:1","nodeType":"YulBlock","src":"5246:19:1","statements":[{"nativeSrc":"5248:15:1","nodeType":"YulAssignment","src":"5248:15:1","value":{"arguments":[{"name":"i","nativeSrc":"5257:1:1","nodeType":"YulIdentifier","src":"5257:1:1"},{"kind":"number","nativeSrc":"5260:2:1","nodeType":"YulLiteral","src":"5260:2:1","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5253:3:1","nodeType":"YulIdentifier","src":"5253:3:1"},"nativeSrc":"5253:10:1","nodeType":"YulFunctionCall","src":"5253:10:1"},"variableNames":[{"name":"i","nativeSrc":"5248:1:1","nodeType":"YulIdentifier","src":"5248:1:1"}]}]},"pre":{"nativeSrc":"5228:3:1","nodeType":"YulBlock","src":"5228:3:1","statements":[]},"src":"5224:113:1"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"5357:3:1","nodeType":"YulIdentifier","src":"5357:3:1"},{"name":"length","nativeSrc":"5362:6:1","nodeType":"YulIdentifier","src":"5362:6:1"}],"functionName":{"name":"add","nativeSrc":"5353:3:1","nodeType":"YulIdentifier","src":"5353:3:1"},"nativeSrc":"5353:16:1","nodeType":"YulFunctionCall","src":"5353:16:1"},{"kind":"number","nativeSrc":"5371:1:1","nodeType":"YulLiteral","src":"5371:1:1","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"5346:6:1","nodeType":"YulIdentifier","src":"5346:6:1"},"nativeSrc":"5346:27:1","nodeType":"YulFunctionCall","src":"5346:27:1"},"nativeSrc":"5346:27:1","nodeType":"YulExpressionStatement","src":"5346:27:1"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"5132:248:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"5176:3:1","nodeType":"YulTypedName","src":"5176:3:1","type":""},{"name":"dst","nativeSrc":"5181:3:1","nodeType":"YulTypedName","src":"5181:3:1","type":""},{"name":"length","nativeSrc":"5186:6:1","nodeType":"YulTypedName","src":"5186:6:1","type":""}],"src":"5132:248:1"},{"body":{"nativeSrc":"5478:285:1","nodeType":"YulBlock","src":"5478:285:1","statements":[{"nativeSrc":"5488:53:1","nodeType":"YulVariableDeclaration","src":"5488:53:1","value":{"arguments":[{"name":"value","nativeSrc":"5535:5:1","nodeType":"YulIdentifier","src":"5535:5:1"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"5502:32:1","nodeType":"YulIdentifier","src":"5502:32:1"},"nativeSrc":"5502:39:1","nodeType":"YulFunctionCall","src":"5502:39:1"},"variables":[{"name":"length","nativeSrc":"5492:6:1","nodeType":"YulTypedName","src":"5492:6:1","type":""}]},{"nativeSrc":"5550:78:1","nodeType":"YulAssignment","src":"5550:78:1","value":{"arguments":[{"name":"pos","nativeSrc":"5616:3:1","nodeType":"YulIdentifier","src":"5616:3:1"},{"name":"length","nativeSrc":"5621:6:1","nodeType":"YulIdentifier","src":"5621:6:1"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"5557:58:1","nodeType":"YulIdentifier","src":"5557:58:1"},"nativeSrc":"5557:71:1","nodeType":"YulFunctionCall","src":"5557:71:1"},"variableNames":[{"name":"pos","nativeSrc":"5550:3:1","nodeType":"YulIdentifier","src":"5550:3:1"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5676:5:1","nodeType":"YulIdentifier","src":"5676:5:1"},{"kind":"number","nativeSrc":"5683:4:1","nodeType":"YulLiteral","src":"5683:4:1","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5672:3:1","nodeType":"YulIdentifier","src":"5672:3:1"},"nativeSrc":"5672:16:1","nodeType":"YulFunctionCall","src":"5672:16:1"},{"name":"pos","nativeSrc":"5690:3:1","nodeType":"YulIdentifier","src":"5690:3:1"},{"name":"length","nativeSrc":"5695:6:1","nodeType":"YulIdentifier","src":"5695:6:1"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"5637:34:1","nodeType":"YulIdentifier","src":"5637:34:1"},"nativeSrc":"5637:65:1","nodeType":"YulFunctionCall","src":"5637:65:1"},"nativeSrc":"5637:65:1","nodeType":"YulExpressionStatement","src":"5637:65:1"},{"nativeSrc":"5711:46:1","nodeType":"YulAssignment","src":"5711:46:1","value":{"arguments":[{"name":"pos","nativeSrc":"5722:3:1","nodeType":"YulIdentifier","src":"5722:3:1"},{"arguments":[{"name":"length","nativeSrc":"5749:6:1","nodeType":"YulIdentifier","src":"5749:6:1"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"5727:21:1","nodeType":"YulIdentifier","src":"5727:21:1"},"nativeSrc":"5727:29:1","nodeType":"YulFunctionCall","src":"5727:29:1"}],"functionName":{"name":"add","nativeSrc":"5718:3:1","nodeType":"YulIdentifier","src":"5718:3:1"},"nativeSrc":"5718:39:1","nodeType":"YulFunctionCall","src":"5718:39:1"},"variableNames":[{"name":"end","nativeSrc":"5711:3:1","nodeType":"YulIdentifier","src":"5711:3:1"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"5386:377:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5459:5:1","nodeType":"YulTypedName","src":"5459:5:1","type":""},{"name":"pos","nativeSrc":"5466:3:1","nodeType":"YulTypedName","src":"5466:3:1","type":""}],"returnVariables":[{"name":"end","nativeSrc":"5474:3:1","nodeType":"YulTypedName","src":"5474:3:1","type":""}],"src":"5386:377:1"},{"body":{"nativeSrc":"5887:195:1","nodeType":"YulBlock","src":"5887:195:1","statements":[{"nativeSrc":"5897:26:1","nodeType":"YulAssignment","src":"5897:26:1","value":{"arguments":[{"name":"headStart","nativeSrc":"5909:9:1","nodeType":"YulIdentifier","src":"5909:9:1"},{"kind":"number","nativeSrc":"5920:2:1","nodeType":"YulLiteral","src":"5920:2:1","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5905:3:1","nodeType":"YulIdentifier","src":"5905:3:1"},"nativeSrc":"5905:18:1","nodeType":"YulFunctionCall","src":"5905:18:1"},"variableNames":[{"name":"tail","nativeSrc":"5897:4:1","nodeType":"YulIdentifier","src":"5897:4:1"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5944:9:1","nodeType":"YulIdentifier","src":"5944:9:1"},{"kind":"number","nativeSrc":"5955:1:1","nodeType":"YulLiteral","src":"5955:1:1","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5940:3:1","nodeType":"YulIdentifier","src":"5940:3:1"},"nativeSrc":"5940:17:1","nodeType":"YulFunctionCall","src":"5940:17:1"},{"arguments":[{"name":"tail","nativeSrc":"5963:4:1","nodeType":"YulIdentifier","src":"5963:4:1"},{"name":"headStart","nativeSrc":"5969:9:1","nodeType":"YulIdentifier","src":"5969:9:1"}],"functionName":{"name":"sub","nativeSrc":"5959:3:1","nodeType":"YulIdentifier","src":"5959:3:1"},"nativeSrc":"5959:20:1","nodeType":"YulFunctionCall","src":"5959:20:1"}],"functionName":{"name":"mstore","nativeSrc":"5933:6:1","nodeType":"YulIdentifier","src":"5933:6:1"},"nativeSrc":"5933:47:1","nodeType":"YulFunctionCall","src":"5933:47:1"},"nativeSrc":"5933:47:1","nodeType":"YulExpressionStatement","src":"5933:47:1"},{"nativeSrc":"5989:86:1","nodeType":"YulAssignment","src":"5989:86:1","value":{"arguments":[{"name":"value0","nativeSrc":"6061:6:1","nodeType":"YulIdentifier","src":"6061:6:1"},{"name":"tail","nativeSrc":"6070:4:1","nodeType":"YulIdentifier","src":"6070:4:1"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"5997:63:1","nodeType":"YulIdentifier","src":"5997:63:1"},"nativeSrc":"5997:78:1","nodeType":"YulFunctionCall","src":"5997:78:1"},"variableNames":[{"name":"tail","nativeSrc":"5989:4:1","nodeType":"YulIdentifier","src":"5989:4:1"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"5769:313:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5859:9:1","nodeType":"YulTypedName","src":"5859:9:1","type":""},{"name":"value0","nativeSrc":"5871:6:1","nodeType":"YulTypedName","src":"5871:6:1","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5882:4:1","nodeType":"YulTypedName","src":"5882:4:1","type":""}],"src":"5769:313:1"},{"body":{"nativeSrc":"6154:263:1","nodeType":"YulBlock","src":"6154:263:1","statements":[{"body":{"nativeSrc":"6200:83:1","nodeType":"YulBlock","src":"6200:83:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6202:77:1","nodeType":"YulIdentifier","src":"6202:77:1"},"nativeSrc":"6202:79:1","nodeType":"YulFunctionCall","src":"6202:79:1"},"nativeSrc":"6202:79:1","nodeType":"YulExpressionStatement","src":"6202:79:1"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6175:7:1","nodeType":"YulIdentifier","src":"6175:7:1"},{"name":"headStart","nativeSrc":"6184:9:1","nodeType":"YulIdentifier","src":"6184:9:1"}],"functionName":{"name":"sub","nativeSrc":"6171:3:1","nodeType":"YulIdentifier","src":"6171:3:1"},"nativeSrc":"6171:23:1","nodeType":"YulFunctionCall","src":"6171:23:1"},{"kind":"number","nativeSrc":"6196:2:1","nodeType":"YulLiteral","src":"6196:2:1","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6167:3:1","nodeType":"YulIdentifier","src":"6167:3:1"},"nativeSrc":"6167:32:1","nodeType":"YulFunctionCall","src":"6167:32:1"},"nativeSrc":"6164:119:1","nodeType":"YulIf","src":"6164:119:1"},{"nativeSrc":"6293:117:1","nodeType":"YulBlock","src":"6293:117:1","statements":[{"nativeSrc":"6308:15:1","nodeType":"YulVariableDeclaration","src":"6308:15:1","value":{"kind":"number","nativeSrc":"6322:1:1","nodeType":"YulLiteral","src":"6322:1:1","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"6312:6:1","nodeType":"YulTypedName","src":"6312:6:1","type":""}]},{"nativeSrc":"6337:63:1","nodeType":"YulAssignment","src":"6337:63:1","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6372:9:1","nodeType":"YulIdentifier","src":"6372:9:1"},{"name":"offset","nativeSrc":"6383:6:1","nodeType":"YulIdentifier","src":"6383:6:1"}],"functionName":{"name":"add","nativeSrc":"6368:3:1","nodeType":"YulIdentifier","src":"6368:3:1"},"nativeSrc":"6368:22:1","nodeType":"YulFunctionCall","src":"6368:22:1"},{"name":"dataEnd","nativeSrc":"6392:7:1","nodeType":"YulIdentifier","src":"6392:7:1"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"6347:20:1","nodeType":"YulIdentifier","src":"6347:20:1"},"nativeSrc":"6347:53:1","nodeType":"YulFunctionCall","src":"6347:53:1"},"variableNames":[{"name":"value0","nativeSrc":"6337:6:1","nodeType":"YulIdentifier","src":"6337:6:1"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"6088:329:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6124:9:1","nodeType":"YulTypedName","src":"6124:9:1","type":""},{"name":"dataEnd","nativeSrc":"6135:7:1","nodeType":"YulTypedName","src":"6135:7:1","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6147:6:1","nodeType":"YulTypedName","src":"6147:6:1","type":""}],"src":"6088:329:1"},{"body":{"nativeSrc":"6481:40:1","nodeType":"YulBlock","src":"6481:40:1","statements":[{"nativeSrc":"6492:22:1","nodeType":"YulAssignment","src":"6492:22:1","value":{"arguments":[{"name":"value","nativeSrc":"6508:5:1","nodeType":"YulIdentifier","src":"6508:5:1"}],"functionName":{"name":"mload","nativeSrc":"6502:5:1","nodeType":"YulIdentifier","src":"6502:5:1"},"nativeSrc":"6502:12:1","nodeType":"YulFunctionCall","src":"6502:12:1"},"variableNames":[{"name":"length","nativeSrc":"6492:6:1","nodeType":"YulIdentifier","src":"6492:6:1"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"6423:98:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6464:5:1","nodeType":"YulTypedName","src":"6464:5:1","type":""}],"returnVariables":[{"name":"length","nativeSrc":"6474:6:1","nodeType":"YulTypedName","src":"6474:6:1","type":""}],"src":"6423:98:1"},{"body":{"nativeSrc":"6622:73:1","nodeType":"YulBlock","src":"6622:73:1","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"6639:3:1","nodeType":"YulIdentifier","src":"6639:3:1"},{"name":"length","nativeSrc":"6644:6:1","nodeType":"YulIdentifier","src":"6644:6:1"}],"functionName":{"name":"mstore","nativeSrc":"6632:6:1","nodeType":"YulIdentifier","src":"6632:6:1"},"nativeSrc":"6632:19:1","nodeType":"YulFunctionCall","src":"6632:19:1"},"nativeSrc":"6632:19:1","nodeType":"YulExpressionStatement","src":"6632:19:1"},{"nativeSrc":"6660:29:1","nodeType":"YulAssignment","src":"6660:29:1","value":{"arguments":[{"name":"pos","nativeSrc":"6679:3:1","nodeType":"YulIdentifier","src":"6679:3:1"},{"kind":"number","nativeSrc":"6684:4:1","nodeType":"YulLiteral","src":"6684:4:1","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6675:3:1","nodeType":"YulIdentifier","src":"6675:3:1"},"nativeSrc":"6675:14:1","nodeType":"YulFunctionCall","src":"6675:14:1"},"variableNames":[{"name":"updated_pos","nativeSrc":"6660:11:1","nodeType":"YulIdentifier","src":"6660:11:1"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"6527:168:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"6594:3:1","nodeType":"YulTypedName","src":"6594:3:1","type":""},{"name":"length","nativeSrc":"6599:6:1","nodeType":"YulTypedName","src":"6599:6:1","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"6610:11:1","nodeType":"YulTypedName","src":"6610:11:1","type":""}],"src":"6527:168:1"},{"body":{"nativeSrc":"6791:283:1","nodeType":"YulBlock","src":"6791:283:1","statements":[{"nativeSrc":"6801:52:1","nodeType":"YulVariableDeclaration","src":"6801:52:1","value":{"arguments":[{"name":"value","nativeSrc":"6847:5:1","nodeType":"YulIdentifier","src":"6847:5:1"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"6815:31:1","nodeType":"YulIdentifier","src":"6815:31:1"},"nativeSrc":"6815:38:1","nodeType":"YulFunctionCall","src":"6815:38:1"},"variables":[{"name":"length","nativeSrc":"6805:6:1","nodeType":"YulTypedName","src":"6805:6:1","type":""}]},{"nativeSrc":"6862:77:1","nodeType":"YulAssignment","src":"6862:77:1","value":{"arguments":[{"name":"pos","nativeSrc":"6927:3:1","nodeType":"YulIdentifier","src":"6927:3:1"},{"name":"length","nativeSrc":"6932:6:1","nodeType":"YulIdentifier","src":"6932:6:1"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"6869:57:1","nodeType":"YulIdentifier","src":"6869:57:1"},"nativeSrc":"6869:70:1","nodeType":"YulFunctionCall","src":"6869:70:1"},"variableNames":[{"name":"pos","nativeSrc":"6862:3:1","nodeType":"YulIdentifier","src":"6862:3:1"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6987:5:1","nodeType":"YulIdentifier","src":"6987:5:1"},{"kind":"number","nativeSrc":"6994:4:1","nodeType":"YulLiteral","src":"6994:4:1","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6983:3:1","nodeType":"YulIdentifier","src":"6983:3:1"},"nativeSrc":"6983:16:1","nodeType":"YulFunctionCall","src":"6983:16:1"},{"name":"pos","nativeSrc":"7001:3:1","nodeType":"YulIdentifier","src":"7001:3:1"},{"name":"length","nativeSrc":"7006:6:1","nodeType":"YulIdentifier","src":"7006:6:1"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"6948:34:1","nodeType":"YulIdentifier","src":"6948:34:1"},"nativeSrc":"6948:65:1","nodeType":"YulFunctionCall","src":"6948:65:1"},"nativeSrc":"6948:65:1","nodeType":"YulExpressionStatement","src":"6948:65:1"},{"nativeSrc":"7022:46:1","nodeType":"YulAssignment","src":"7022:46:1","value":{"arguments":[{"name":"pos","nativeSrc":"7033:3:1","nodeType":"YulIdentifier","src":"7033:3:1"},{"arguments":[{"name":"length","nativeSrc":"7060:6:1","nodeType":"YulIdentifier","src":"7060:6:1"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"7038:21:1","nodeType":"YulIdentifier","src":"7038:21:1"},"nativeSrc":"7038:29:1","nodeType":"YulFunctionCall","src":"7038:29:1"}],"functionName":{"name":"add","nativeSrc":"7029:3:1","nodeType":"YulIdentifier","src":"7029:3:1"},"nativeSrc":"7029:39:1","nodeType":"YulFunctionCall","src":"7029:39:1"},"variableNames":[{"name":"end","nativeSrc":"7022:3:1","nodeType":"YulIdentifier","src":"7022:3:1"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"6701:373:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6772:5:1","nodeType":"YulTypedName","src":"6772:5:1","type":""},{"name":"pos","nativeSrc":"6779:3:1","nodeType":"YulTypedName","src":"6779:3:1","type":""}],"returnVariables":[{"name":"end","nativeSrc":"6787:3:1","nodeType":"YulTypedName","src":"6787:3:1","type":""}],"src":"6701:373:1"},{"body":{"nativeSrc":"7224:275:1","nodeType":"YulBlock","src":"7224:275:1","statements":[{"nativeSrc":"7234:26:1","nodeType":"YulAssignment","src":"7234:26:1","value":{"arguments":[{"name":"headStart","nativeSrc":"7246:9:1","nodeType":"YulIdentifier","src":"7246:9:1"},{"kind":"number","nativeSrc":"7257:2:1","nodeType":"YulLiteral","src":"7257:2:1","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7242:3:1","nodeType":"YulIdentifier","src":"7242:3:1"},"nativeSrc":"7242:18:1","nodeType":"YulFunctionCall","src":"7242:18:1"},"variableNames":[{"name":"tail","nativeSrc":"7234:4:1","nodeType":"YulIdentifier","src":"7234:4:1"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"7314:6:1","nodeType":"YulIdentifier","src":"7314:6:1"},{"arguments":[{"name":"headStart","nativeSrc":"7327:9:1","nodeType":"YulIdentifier","src":"7327:9:1"},{"kind":"number","nativeSrc":"7338:1:1","nodeType":"YulLiteral","src":"7338:1:1","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7323:3:1","nodeType":"YulIdentifier","src":"7323:3:1"},"nativeSrc":"7323:17:1","nodeType":"YulFunctionCall","src":"7323:17:1"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"7270:43:1","nodeType":"YulIdentifier","src":"7270:43:1"},"nativeSrc":"7270:71:1","nodeType":"YulFunctionCall","src":"7270:71:1"},"nativeSrc":"7270:71:1","nodeType":"YulExpressionStatement","src":"7270:71:1"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7362:9:1","nodeType":"YulIdentifier","src":"7362:9:1"},{"kind":"number","nativeSrc":"7373:2:1","nodeType":"YulLiteral","src":"7373:2:1","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7358:3:1","nodeType":"YulIdentifier","src":"7358:3:1"},"nativeSrc":"7358:18:1","nodeType":"YulFunctionCall","src":"7358:18:1"},{"arguments":[{"name":"tail","nativeSrc":"7382:4:1","nodeType":"YulIdentifier","src":"7382:4:1"},{"name":"headStart","nativeSrc":"7388:9:1","nodeType":"YulIdentifier","src":"7388:9:1"}],"functionName":{"name":"sub","nativeSrc":"7378:3:1","nodeType":"YulIdentifier","src":"7378:3:1"},"nativeSrc":"7378:20:1","nodeType":"YulFunctionCall","src":"7378:20:1"}],"functionName":{"name":"mstore","nativeSrc":"7351:6:1","nodeType":"YulIdentifier","src":"7351:6:1"},"nativeSrc":"7351:48:1","nodeType":"YulFunctionCall","src":"7351:48:1"},"nativeSrc":"7351:48:1","nodeType":"YulExpressionStatement","src":"7351:48:1"},{"nativeSrc":"7408:84:1","nodeType":"YulAssignment","src":"7408:84:1","value":{"arguments":[{"name":"value1","nativeSrc":"7478:6:1","nodeType":"YulIdentifier","src":"7478:6:1"},{"name":"tail","nativeSrc":"7487:4:1","nodeType":"YulIdentifier","src":"7487:4:1"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"7416:61:1","nodeType":"YulIdentifier","src":"7416:61:1"},"nativeSrc":"7416:76:1","nodeType":"YulFunctionCall","src":"7416:76:1"},"variableNames":[{"name":"tail","nativeSrc":"7408:4:1","nodeType":"YulIdentifier","src":"7408:4:1"}]}]},"name":"abi_encode_tuple_t_address_t_bytes_memory_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"7080:419:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7188:9:1","nodeType":"YulTypedName","src":"7188:9:1","type":""},{"name":"value1","nativeSrc":"7200:6:1","nodeType":"YulTypedName","src":"7200:6:1","type":""},{"name":"value0","nativeSrc":"7208:6:1","nodeType":"YulTypedName","src":"7208:6:1","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7219:4:1","nodeType":"YulTypedName","src":"7219:4:1","type":""}],"src":"7080:419:1"}]},"contents":"{\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_contract$_ITransparentUpgradeableProxy_$17346(value) -> cleaned {\n cleaned := cleanup_t_address(value)\n }\n\n function validator_revert_t_contract$_ITransparentUpgradeableProxy_$17346(value) {\n if iszero(eq(value, cleanup_t_contract$_ITransparentUpgradeableProxy_$17346(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_contract$_ITransparentUpgradeableProxy_$17346(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_contract$_ITransparentUpgradeableProxy_$17346(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory_with_cleanup(src, dst, length) {\n\n calldatacopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory_with_cleanup(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_contract$_ITransparentUpgradeableProxy_$17346t_addresst_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_contract$_ITransparentUpgradeableProxy_$17346(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_address_t_bytes_memory_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value1, tail)\n\n }\n\n}\n","id":1,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610091578063ad3cb1cc146100ad578063f2fde38b146100d8575b600080fd5b34801561005b57600080fd5b50610064610101565b005b34801561007257600080fd5b5061007b610115565b604051610088919061040c565b60405180910390f35b6100ab60048036038101906100a691906105eb565b61013e565b005b3480156100b957600080fd5b506100c26101b9565b6040516100cf91906106d9565b60405180910390f35b3480156100e457600080fd5b506100ff60048036038101906100fa91906106fb565b6101f2565b005b610109610278565b61011360006102ff565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610146610278565b8273ffffffffffffffffffffffffffffffffffffffff16634f1ef2863484846040518463ffffffff1660e01b815260040161018292919061077d565b6000604051808303818588803b15801561019b57600080fd5b505af11580156101af573d6000803e3d6000fd5b5050505050505050565b6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6101fa610278565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361026c5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610263919061040c565b60405180910390fd5b610275816102ff565b50565b6102806103c3565b73ffffffffffffffffffffffffffffffffffffffff1661029e610115565b73ffffffffffffffffffffffffffffffffffffffff16146102fd576102c16103c3565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016102f4919061040c565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103f6826103cb565b9050919050565b610406816103eb565b82525050565b600060208201905061042160008301846103fd565b92915050565b6000604051905090565b600080fd5b600080fd5b6000610446826103eb565b9050919050565b6104568161043b565b811461046157600080fd5b50565b6000813590506104738161044d565b92915050565b610482816103eb565b811461048d57600080fd5b50565b60008135905061049f81610479565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6104f8826104af565b810181811067ffffffffffffffff82111715610517576105166104c0565b5b80604052505050565b600061052a610427565b905061053682826104ef565b919050565b600067ffffffffffffffff821115610556576105556104c0565b5b61055f826104af565b9050602081019050919050565b82818337600083830152505050565b600061058e6105898461053b565b610520565b9050828152602081018484840111156105aa576105a96104aa565b5b6105b584828561056c565b509392505050565b600082601f8301126105d2576105d16104a5565b5b81356105e284826020860161057b565b91505092915050565b60008060006060848603121561060457610603610431565b5b600061061286828701610464565b935050602061062386828701610490565b925050604084013567ffffffffffffffff81111561064457610643610436565b5b610650868287016105bd565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b60005b83811015610694578082015181840152602081019050610679565b60008484015250505050565b60006106ab8261065a565b6106b58185610665565b93506106c5818560208601610676565b6106ce816104af565b840191505092915050565b600060208201905081810360008301526106f381846106a0565b905092915050565b60006020828403121561071157610710610431565b5b600061071f84828501610490565b91505092915050565b600081519050919050565b600082825260208201905092915050565b600061074f82610728565b6107598185610733565b9350610769818560208601610676565b610772816104af565b840191505092915050565b600060408201905061079260008301856103fd565b81810360208301526107a48184610744565b9050939250505056fea26469706673582212207618fbcb2a391d05e882e2fcc53acd9c8d0257c7ed9e673b7bd1c2b353ab85fa64736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4A JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x715018A6 EQ PUSH2 0x4F JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x66 JUMPI DUP1 PUSH4 0x9623609D EQ PUSH2 0x91 JUMPI DUP1 PUSH4 0xAD3CB1CC EQ PUSH2 0xAD JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xD8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x64 PUSH2 0x101 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7B PUSH2 0x115 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x88 SWAP2 SWAP1 PUSH2 0x40C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xAB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xA6 SWAP2 SWAP1 PUSH2 0x5EB JUMP JUMPDEST PUSH2 0x13E JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC2 PUSH2 0x1B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCF SWAP2 SWAP1 PUSH2 0x6D9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xE4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xFF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xFA SWAP2 SWAP1 PUSH2 0x6FB JUMP JUMPDEST PUSH2 0x1F2 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x109 PUSH2 0x278 JUMP JUMPDEST PUSH2 0x113 PUSH1 0x0 PUSH2 0x2FF JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x146 PUSH2 0x278 JUMP JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4F1EF286 CALLVALUE DUP5 DUP5 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x182 SWAP3 SWAP2 SWAP1 PUSH2 0x77D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x19B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1AF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x352E302E30000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x1FA PUSH2 0x278 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x26C JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x263 SWAP2 SWAP1 PUSH2 0x40C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x275 DUP2 PUSH2 0x2FF JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x280 PUSH2 0x3C3 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x29E PUSH2 0x115 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x2FD JUMPI PUSH2 0x2C1 PUSH2 0x3C3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x118CDAA700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2F4 SWAP2 SWAP1 PUSH2 0x40C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3F6 DUP3 PUSH2 0x3CB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x406 DUP2 PUSH2 0x3EB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x421 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x3FD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x446 DUP3 PUSH2 0x3EB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x456 DUP2 PUSH2 0x43B JUMP JUMPDEST DUP2 EQ PUSH2 0x461 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x473 DUP2 PUSH2 0x44D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x482 DUP2 PUSH2 0x3EB JUMP JUMPDEST DUP2 EQ PUSH2 0x48D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x49F DUP2 PUSH2 0x479 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x4F8 DUP3 PUSH2 0x4AF JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x517 JUMPI PUSH2 0x516 PUSH2 0x4C0 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x52A PUSH2 0x427 JUMP JUMPDEST SWAP1 POP PUSH2 0x536 DUP3 DUP3 PUSH2 0x4EF JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x556 JUMPI PUSH2 0x555 PUSH2 0x4C0 JUMP JUMPDEST JUMPDEST PUSH2 0x55F DUP3 PUSH2 0x4AF JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x58E PUSH2 0x589 DUP5 PUSH2 0x53B JUMP JUMPDEST PUSH2 0x520 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x5AA JUMPI PUSH2 0x5A9 PUSH2 0x4AA JUMP JUMPDEST JUMPDEST PUSH2 0x5B5 DUP5 DUP3 DUP6 PUSH2 0x56C JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x5D2 JUMPI PUSH2 0x5D1 PUSH2 0x4A5 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x5E2 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x57B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x604 JUMPI PUSH2 0x603 PUSH2 0x431 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x612 DUP7 DUP3 DUP8 ADD PUSH2 0x464 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x623 DUP7 DUP3 DUP8 ADD PUSH2 0x490 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x644 JUMPI PUSH2 0x643 PUSH2 0x436 JUMP JUMPDEST JUMPDEST PUSH2 0x650 DUP7 DUP3 DUP8 ADD PUSH2 0x5BD JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x694 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x679 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6AB DUP3 PUSH2 0x65A JUMP JUMPDEST PUSH2 0x6B5 DUP2 DUP6 PUSH2 0x665 JUMP JUMPDEST SWAP4 POP PUSH2 0x6C5 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x676 JUMP JUMPDEST PUSH2 0x6CE DUP2 PUSH2 0x4AF JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x6F3 DUP2 DUP5 PUSH2 0x6A0 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x711 JUMPI PUSH2 0x710 PUSH2 0x431 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x71F DUP5 DUP3 DUP6 ADD PUSH2 0x490 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x74F DUP3 PUSH2 0x728 JUMP JUMPDEST PUSH2 0x759 DUP2 DUP6 PUSH2 0x733 JUMP JUMPDEST SWAP4 POP PUSH2 0x769 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x676 JUMP JUMPDEST PUSH2 0x772 DUP2 PUSH2 0x4AF JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x792 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x3FD JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x7A4 DUP2 DUP5 PUSH2 0x744 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH23 0x18FBCB2A391D05E882E2FCC53ACD9C8D0257C7ED9E673B PUSH28 0xD1C2B353AB85FA64736F6C634300081C003300000000000000000000 ","sourceMap":"256178:1442:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;205562:101;;;;;;;;;;;;;:::i;:::-;;204907:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;257373:245;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;256843:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;205812:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;205562:101;204800:13;:11;:13::i;:::-;205626:30:::1;205653:1;205626:18;:30::i;:::-;205562:101::o:0;204907:85::-;204953:7;204979:6;;;;;;;;;;;204972:13;;204907:85;:::o;257373:245::-;204800:13;:11;:13::i;:::-;257549:5:::1;:22;;;257579:9;257590:14;257606:4;257549:62;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;257373:245:::0;;;:::o;256843:58::-;;;;;;;;;;;;;;;;;;;:::o;205812:215::-;204800:13;:11;:13::i;:::-;205916:1:::1;205896:22;;:8;:22;;::::0;205892:91:::1;;205969:1;205941:31;;;;;;;;;;;:::i;:::-;;;;;;;;205892:91;205992:28;206011:8;205992:18;:28::i;:::-;205812:215:::0;:::o;205065:162::-;205135:12;:10;:12::i;:::-;205124:23;;:7;:5;:7::i;:::-;:23;;;205120:101;;205197:12;:10;:12::i;:::-;205170:40;;;;;;;;;;;:::i;:::-;;;;;;;;205120:101;205065:162::o;206181:187::-;206254:16;206273:6;;;;;;;;;;;206254:25;;206298:8;206289:6;;:17;;;;;;;;;;;;;;;;;;206352:8;206321:40;;206342:8;206321:40;;;;;;;;;;;;206244:124;206181:187;:::o;176062:96::-;176115:7;176141:10;176134:17;;176062:96;:::o;7:126:1:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o;593:75::-;626:6;659:2;653:9;643:19;;593:75;:::o;674:117::-;783:1;780;773:12;797:117;906:1;903;896:12;920:134;995:7;1024:24;1042:5;1024:24;:::i;:::-;1013:35;;920:134;;;:::o;1060:198::-;1171:62;1227:5;1171:62;:::i;:::-;1164:5;1161:73;1151:101;;1248:1;1245;1238:12;1151:101;1060:198;:::o;1264:215::-;1348:5;1386:6;1373:20;1364:29;;1402:71;1467:5;1402:71;:::i;:::-;1264:215;;;;:::o;1485:122::-;1558:24;1576:5;1558:24;:::i;:::-;1551:5;1548:35;1538:63;;1597:1;1594;1587:12;1538:63;1485:122;:::o;1613:139::-;1659:5;1697:6;1684:20;1675:29;;1713:33;1740:5;1713:33;:::i;:::-;1613:139;;;;:::o;1758:117::-;1867:1;1864;1857:12;1881:117;1990:1;1987;1980:12;2004:102;2045:6;2096:2;2092:7;2087:2;2080:5;2076:14;2072:28;2062:38;;2004:102;;;:::o;2112:180::-;2160:77;2157:1;2150:88;2257:4;2254:1;2247:15;2281:4;2278:1;2271:15;2298:281;2381:27;2403:4;2381:27;:::i;:::-;2373:6;2369:40;2511:6;2499:10;2496:22;2475:18;2463:10;2460:34;2457:62;2454:88;;;2522:18;;:::i;:::-;2454:88;2562:10;2558:2;2551:22;2341:238;2298:281;;:::o;2585:129::-;2619:6;2646:20;;:::i;:::-;2636:30;;2675:33;2703:4;2695:6;2675:33;:::i;:::-;2585:129;;;:::o;2720:307::-;2781:4;2871:18;2863:6;2860:30;2857:56;;;2893:18;;:::i;:::-;2857:56;2931:29;2953:6;2931:29;:::i;:::-;2923:37;;3015:4;3009;3005:15;2997:23;;2720:307;;;:::o;3033:148::-;3131:6;3126:3;3121;3108:30;3172:1;3163:6;3158:3;3154:16;3147:27;3033:148;;;:::o;3187:423::-;3264:5;3289:65;3305:48;3346:6;3305:48;:::i;:::-;3289:65;:::i;:::-;3280:74;;3377:6;3370:5;3363:21;3415:4;3408:5;3404:16;3453:3;3444:6;3439:3;3435:16;3432:25;3429:112;;;3460:79;;:::i;:::-;3429:112;3550:54;3597:6;3592:3;3587;3550:54;:::i;:::-;3270:340;3187:423;;;;;:::o;3629:338::-;3684:5;3733:3;3726:4;3718:6;3714:17;3710:27;3700:122;;3741:79;;:::i;:::-;3700:122;3858:6;3845:20;3883:78;3957:3;3949:6;3942:4;3934:6;3930:17;3883:78;:::i;:::-;3874:87;;3690:277;3629:338;;;;:::o;3973:873::-;4097:6;4105;4113;4162:2;4150:9;4141:7;4137:23;4133:32;4130:119;;;4168:79;;:::i;:::-;4130:119;4288:1;4313:91;4396:7;4387:6;4376:9;4372:22;4313:91;:::i;:::-;4303:101;;4259:155;4453:2;4479:53;4524:7;4515:6;4504:9;4500:22;4479:53;:::i;:::-;4469:63;;4424:118;4609:2;4598:9;4594:18;4581:32;4640:18;4632:6;4629:30;4626:117;;;4662:79;;:::i;:::-;4626:117;4767:62;4821:7;4812:6;4801:9;4797:22;4767:62;:::i;:::-;4757:72;;4552:287;3973:873;;;;;:::o;4852:99::-;4904:6;4938:5;4932:12;4922:22;;4852:99;;;:::o;4957:169::-;5041:11;5075:6;5070:3;5063:19;5115:4;5110:3;5106:14;5091:29;;4957:169;;;;:::o;5132:248::-;5214:1;5224:113;5238:6;5235:1;5232:13;5224:113;;;5323:1;5318:3;5314:11;5308:18;5304:1;5299:3;5295:11;5288:39;5260:2;5257:1;5253:10;5248:15;;5224:113;;;5371:1;5362:6;5357:3;5353:16;5346:27;5194:186;5132:248;;;:::o;5386:377::-;5474:3;5502:39;5535:5;5502:39;:::i;:::-;5557:71;5621:6;5616:3;5557:71;:::i;:::-;5550:78;;5637:65;5695:6;5690:3;5683:4;5676:5;5672:16;5637:65;:::i;:::-;5727:29;5749:6;5727:29;:::i;:::-;5722:3;5718:39;5711:46;;5478:285;5386:377;;;;:::o;5769:313::-;5882:4;5920:2;5909:9;5905:18;5897:26;;5969:9;5963:4;5959:20;5955:1;5944:9;5940:17;5933:47;5997:78;6070:4;6061:6;5997:78;:::i;:::-;5989:86;;5769:313;;;;:::o;6088:329::-;6147:6;6196:2;6184:9;6175:7;6171:23;6167:32;6164:119;;;6202:79;;:::i;:::-;6164:119;6322:1;6347:53;6392:7;6383:6;6372:9;6368:22;6347:53;:::i;:::-;6337:63;;6293:117;6088:329;;;;:::o;6423:98::-;6474:6;6508:5;6502:12;6492:22;;6423:98;;;:::o;6527:168::-;6610:11;6644:6;6639:3;6632:19;6684:4;6679:3;6675:14;6660:29;;6527:168;;;;:::o;6701:373::-;6787:3;6815:38;6847:5;6815:38;:::i;:::-;6869:70;6932:6;6927:3;6869:70;:::i;:::-;6862:77;;6948:65;7006:6;7001:3;6994:4;6987:5;6983:16;6948:65;:::i;:::-;7038:29;7060:6;7038:29;:::i;:::-;7033:3;7029:39;7022:46;;6791:283;6701:373;;;;:::o;7080:419::-;7219:4;7257:2;7246:9;7242:18;7234:26;;7270:71;7338:1;7327:9;7323:17;7314:6;7270:71;:::i;:::-;7388:9;7382:4;7378:20;7373:2;7362:9;7358:18;7351:48;7416:76;7487:4;7478:6;7416:76;:::i;:::-;7408:84;;7080:419;;;;;:::o"},"methodIdentifiers":{"UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","upgradeAndCall(address,address,bytes)":"9623609d"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ITransparentUpgradeableProxy\",\"name\":\"proxy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This is an auxiliary contract meant to be assigned as the admin of a {TransparentUpgradeableProxy}. For an explanation of why you would want to use this see the documentation for {TransparentUpgradeableProxy}.\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Sets the initial owner who can perform upgrades.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"upgradeAndCall(address,address,bytes)\":{\"details\":\"Upgrades `proxy` to `implementation` and calls a function on the new implementation. See {TransparentUpgradeableProxy-_dispatchUpgradeToAndCall}. Requirements: - This contract must be the admin of `proxy`. - If `data` is empty, `msg.value` must be zero.\"}},\"stateVariables\":{\"UPGRADE_INTERFACE_VERSION\":{\"details\":\"The version of the upgrade interface of the contract. If this getter is missing, both `upgrade(address)` and `upgradeAndCall(address,bytes)` are present, and `upgradeTo` must be used if no function should be called, while `upgradeAndCall` will invoke the `receive` function if the second argument is the empty byte string. If the getter returns `\\\"5.0.0\\\"`, only `upgradeAndCall(address,bytes)` is present, and the second argument must be the empty byte string if no function should be called, making it impossible to invoke the `receive` function during an upgrade.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Upgrades.sol\":\"ProxyAdmin\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"src/Upgrades.sol\":{\"keccak256\":\"0x420d4a351f46367d1fd8ea9409af6772fc442019d8f51bdd61b2114886ab3f98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dd2a0235e70d4f89d1d67af78ec13dd396224ec6cd87e4f906796bf50e385204\",\"dweb:/ipfs/QmULbNuaseWNiMWpBdR7ayYw5tknsYji6YtPG9KYd4k9Dp\"]}},\"version\":1}"},"SignedMath":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220df386b03058967d5776e308127b4fe1986505b0f3d5b847ee5b4bdaca7e077ca64736f6c634300081c0033","opcodes":"PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDF CODESIZE PUSH12 0x3058967D5776E308127B4FE NOT DUP7 POP JUMPDEST 0xF RETURNDATASIZE JUMPDEST DUP5 PUSH31 0xE5B4BDACA7E077CA64736F6C634300081C0033000000000000000000000000 ","sourceMap":"195771:1047:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220df386b03058967d5776e308127b4fe1986505b0f3d5b847ee5b4bdaca7e077ca64736f6c634300081c0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDF CODESIZE PUSH12 0x3058967D5776E308127B4FE NOT DUP7 POP JUMPDEST 0xF RETURNDATASIZE JUMPDEST DUP5 PUSH31 0xE5B4BDACA7E077CA64736F6C634300081C0033000000000000000000000000 ","sourceMap":"195771:1047:0:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Standard signed math utilities missing in the Solidity language.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Upgrades.sol\":\"SignedMath\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"src/Upgrades.sol\":{\"keccak256\":\"0x420d4a351f46367d1fd8ea9409af6772fc442019d8f51bdd61b2114886ab3f98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dd2a0235e70d4f89d1d67af78ec13dd396224ec6cd87e4f906796bf50e385204\",\"dweb:/ipfs/QmULbNuaseWNiMWpBdR7ayYw5tknsYji6YtPG9KYd4k9Dp\"]}},\"version\":1}"},"StorageSlot":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209cb2a424c86244506134191dcca19199340fa059a1480475dec6c08475e65a9c64736f6c634300081c0033","opcodes":"PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP13 0xB2 LOG4 0x24 0xC8 PUSH3 0x445061 CALLVALUE NOT SAR 0xCC LOG1 SWAP2 SWAP10 CALLVALUE 0xF LOG0 MSIZE LOG1 BASEFEE DIV PUSH22 0xDEC6C08475E65A9C64736F6C634300081C0033000000 ","sourceMap":"177659:2685:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209cb2a424c86244506134191dcca19199340fa059a1480475dec6c08475e65a9c64736f6c634300081c0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP13 0xB2 LOG4 0x24 0xC8 PUSH3 0x445061 CALLVALUE NOT SAR 0xCC LOG1 SWAP2 SWAP10 CALLVALUE 0xF LOG0 MSIZE LOG1 BASEFEE DIV PUSH22 0xDEC6C08475E65A9C64736F6C634300081C0033000000 ","sourceMap":"177659:2685:0:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for reading and writing primitive types to specific storage slots. Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts. This library helps with reading and writing to such slots without the need for inline assembly. The functions in this library return Slot structs that contain a `value` member that can be used to read or write. Example usage to set ERC1967 implementation slot: ```solidity contract ERC1967 { bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; function _getImplementation() internal view returns (address) { return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value; } function _setImplementation(address newImplementation) internal { require(newImplementation.code.length > 0); StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation; } } ```\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Upgrades.sol\":\"StorageSlot\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"src/Upgrades.sol\":{\"keccak256\":\"0x420d4a351f46367d1fd8ea9409af6772fc442019d8f51bdd61b2114886ab3f98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dd2a0235e70d4f89d1d67af78ec13dd396224ec6cd87e4f906796bf50e385204\",\"dweb:/ipfs/QmULbNuaseWNiMWpBdR7ayYw5tknsYji6YtPG9KYd4k9Dp\"]}},\"version\":1}"},"Strings":{"abi":[{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"}],"name":"StringsInsufficientHexLength","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212206ae49a6fea135fd8e8124a3c8b6302828462ba1eeb0849a4214a8c3749f3d1d664736f6c634300081c0033","opcodes":"PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH11 0xE49A6FEA135FD8E8124A3C DUP12 PUSH4 0x2828462 0xBA 0x1E 0xEB ADDMOD BLOBHASH LOG4 0x21 BLOBBASEFEE DUP13 CALLDATACOPY BLOBHASH RETURN 0xD1 0xD6 PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"206574:26503:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212206ae49a6fea135fd8e8124a3c8b6302828462ba1eeb0849a4214a8c3749f3d1d664736f6c634300081c0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH11 0xE49A6FEA135FD8E8124A3C DUP12 PUSH4 0x2828462 0xBA 0x1E 0xEB ADDMOD BLOBHASH LOG4 0x21 BLOBBASEFEE DUP13 CALLDATACOPY BLOBHASH RETURN 0xD1 0xD6 PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"206574:26503:0:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"StringsInsufficientHexLength\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"String operations.\",\"errors\":{\"StringsInsufficientHexLength(uint256,uint256)\":[{\"details\":\"The `value` string doesn't fit in the specified `length`.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Upgrades.sol\":\"Strings\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"src/Upgrades.sol\":{\"keccak256\":\"0x420d4a351f46367d1fd8ea9409af6772fc442019d8f51bdd61b2114886ab3f98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dd2a0235e70d4f89d1d67af78ec13dd396224ec6cd87e4f906796bf50e385204\",\"dweb:/ipfs/QmULbNuaseWNiMWpBdR7ayYw5tknsYji6YtPG9KYd4k9Dp\"]}},\"version\":1}"},"TransparentUpgradeableProxy":{"abi":[{"inputs":[{"internalType":"address","name":"_logic","type":"address"},{"internalType":"address","name":"initialOwner","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"AddressEmptyCode","type":"error"},{"inputs":[{"internalType":"address","name":"admin","type":"address"}],"name":"ERC1967InvalidAdmin","type":"error"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"name":"ERC1967InvalidImplementation","type":"error"},{"inputs":[],"name":"ERC1967NonPayable","type":"error"},{"inputs":[],"name":"FailedInnerCall","type":"error"},{"inputs":[],"name":"ProxyDeniedAdminAccess","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"stateMutability":"payable","type":"fallback"}],"evm":{"bytecode":{"functionDebugData":{"@_17230":{"entryPoint":null,"id":17230,"parameterSlots":2,"returnSlots":0},"@_17387":{"entryPoint":null,"id":17387,"parameterSlots":3,"returnSlots":0},"@_checkNonPayable_16373":{"entryPoint":776,"id":16373,"parameterSlots":0,"returnSlots":0},"@_proxyAdmin_17396":{"entryPoint":329,"id":17396,"parameterSlots":0,"returnSlots":1},"@_revert_12470":{"entryPoint":1322,"id":12470,"parameterSlots":1,"returnSlots":0},"@_setAdmin_16241":{"entryPoint":930,"id":16241,"parameterSlots":1,"returnSlots":0},"@_setImplementation_16159":{"entryPoint":427,"id":16159,"parameterSlots":1,"returnSlots":0},"@changeAdmin_16258":{"entryPoint":339,"id":16258,"parameterSlots":1,"returnSlots":0},"@functionDelegateCall_12390":{"entryPoint":638,"id":12390,"parameterSlots":2,"returnSlots":1},"@getAddressSlot_12529":{"entryPoint":1163,"id":12529,"parameterSlots":1,"returnSlots":1},"@getAdmin_16210":{"entryPoint":837,"id":16210,"parameterSlots":0,"returnSlots":1},"@upgradeToAndCall_16193":{"entryPoint":196,"id":16193,"parameterSlots":2,"returnSlots":0},"@verifyCallResultFromTarget_12430":{"entryPoint":1173,"id":12430,"parameterSlots":3,"returnSlots":1},"abi_decode_available_length_t_bytes_memory_ptr_fromMemory":{"entryPoint":1759,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address_fromMemory":{"entryPoint":1497,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_memory_ptr_fromMemory":{"entryPoint":1825,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_bytes_memory_ptr_fromMemory":{"entryPoint":1871,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":1982,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":2087,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":2136,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":1997,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed":{"entryPoint":2024,"id":null,"parameterSlots":3,"returnSlots":1},"allocate_memory":{"entryPoint":1641,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":1404,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":1668,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":2065,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":2076,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":1456,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":1424,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":1717,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":1592,"id":null,"parameterSlots":2,"returnSlots":0},"panic_error_0x41":{"entryPoint":1545,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":1518,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":1523,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":1419,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":1414,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":1528,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_address":{"entryPoint":1474,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:5637:1","nodeType":"YulBlock","src":"0:5637:1","statements":[{"body":{"nativeSrc":"47:35:1","nodeType":"YulBlock","src":"47:35:1","statements":[{"nativeSrc":"57:19:1","nodeType":"YulAssignment","src":"57:19:1","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:1","nodeType":"YulLiteral","src":"73:2:1","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:1","nodeType":"YulIdentifier","src":"67:5:1"},"nativeSrc":"67:9:1","nodeType":"YulFunctionCall","src":"67:9:1"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:1","nodeType":"YulIdentifier","src":"57:6:1"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:1","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:1","nodeType":"YulTypedName","src":"40:6:1","type":""}],"src":"7:75:1"},{"body":{"nativeSrc":"177:28:1","nodeType":"YulBlock","src":"177:28:1","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:1","nodeType":"YulLiteral","src":"194:1:1","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:1","nodeType":"YulLiteral","src":"197:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:1","nodeType":"YulIdentifier","src":"187:6:1"},"nativeSrc":"187:12:1","nodeType":"YulFunctionCall","src":"187:12:1"},"nativeSrc":"187:12:1","nodeType":"YulExpressionStatement","src":"187:12:1"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:1","nodeType":"YulFunctionDefinition","src":"88:117:1"},{"body":{"nativeSrc":"300:28:1","nodeType":"YulBlock","src":"300:28:1","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:1","nodeType":"YulLiteral","src":"317:1:1","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:1","nodeType":"YulLiteral","src":"320:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:1","nodeType":"YulIdentifier","src":"310:6:1"},"nativeSrc":"310:12:1","nodeType":"YulFunctionCall","src":"310:12:1"},"nativeSrc":"310:12:1","nodeType":"YulExpressionStatement","src":"310:12:1"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:1","nodeType":"YulFunctionDefinition","src":"211:117:1"},{"body":{"nativeSrc":"379:81:1","nodeType":"YulBlock","src":"379:81:1","statements":[{"nativeSrc":"389:65:1","nodeType":"YulAssignment","src":"389:65:1","value":{"arguments":[{"name":"value","nativeSrc":"404:5:1","nodeType":"YulIdentifier","src":"404:5:1"},{"kind":"number","nativeSrc":"411:42:1","nodeType":"YulLiteral","src":"411:42:1","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:1","nodeType":"YulIdentifier","src":"400:3:1"},"nativeSrc":"400:54:1","nodeType":"YulFunctionCall","src":"400:54:1"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:1","nodeType":"YulIdentifier","src":"389:7:1"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:1","nodeType":"YulTypedName","src":"361:5:1","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:1","nodeType":"YulTypedName","src":"371:7:1","type":""}],"src":"334:126:1"},{"body":{"nativeSrc":"511:51:1","nodeType":"YulBlock","src":"511:51:1","statements":[{"nativeSrc":"521:35:1","nodeType":"YulAssignment","src":"521:35:1","value":{"arguments":[{"name":"value","nativeSrc":"550:5:1","nodeType":"YulIdentifier","src":"550:5:1"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:1","nodeType":"YulIdentifier","src":"532:17:1"},"nativeSrc":"532:24:1","nodeType":"YulFunctionCall","src":"532:24:1"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:1","nodeType":"YulIdentifier","src":"521:7:1"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:1","nodeType":"YulTypedName","src":"493:5:1","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:1","nodeType":"YulTypedName","src":"503:7:1","type":""}],"src":"466:96:1"},{"body":{"nativeSrc":"611:79:1","nodeType":"YulBlock","src":"611:79:1","statements":[{"body":{"nativeSrc":"668:16:1","nodeType":"YulBlock","src":"668:16:1","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:1","nodeType":"YulLiteral","src":"677:1:1","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:1","nodeType":"YulLiteral","src":"680:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:1","nodeType":"YulIdentifier","src":"670:6:1"},"nativeSrc":"670:12:1","nodeType":"YulFunctionCall","src":"670:12:1"},"nativeSrc":"670:12:1","nodeType":"YulExpressionStatement","src":"670:12:1"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:1","nodeType":"YulIdentifier","src":"634:5:1"},{"arguments":[{"name":"value","nativeSrc":"659:5:1","nodeType":"YulIdentifier","src":"659:5:1"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:1","nodeType":"YulIdentifier","src":"641:17:1"},"nativeSrc":"641:24:1","nodeType":"YulFunctionCall","src":"641:24:1"}],"functionName":{"name":"eq","nativeSrc":"631:2:1","nodeType":"YulIdentifier","src":"631:2:1"},"nativeSrc":"631:35:1","nodeType":"YulFunctionCall","src":"631:35:1"}],"functionName":{"name":"iszero","nativeSrc":"624:6:1","nodeType":"YulIdentifier","src":"624:6:1"},"nativeSrc":"624:43:1","nodeType":"YulFunctionCall","src":"624:43:1"},"nativeSrc":"621:63:1","nodeType":"YulIf","src":"621:63:1"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:1","nodeType":"YulTypedName","src":"604:5:1","type":""}],"src":"568:122:1"},{"body":{"nativeSrc":"759:80:1","nodeType":"YulBlock","src":"759:80:1","statements":[{"nativeSrc":"769:22:1","nodeType":"YulAssignment","src":"769:22:1","value":{"arguments":[{"name":"offset","nativeSrc":"784:6:1","nodeType":"YulIdentifier","src":"784:6:1"}],"functionName":{"name":"mload","nativeSrc":"778:5:1","nodeType":"YulIdentifier","src":"778:5:1"},"nativeSrc":"778:13:1","nodeType":"YulFunctionCall","src":"778:13:1"},"variableNames":[{"name":"value","nativeSrc":"769:5:1","nodeType":"YulIdentifier","src":"769:5:1"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"827:5:1","nodeType":"YulIdentifier","src":"827:5:1"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"800:26:1","nodeType":"YulIdentifier","src":"800:26:1"},"nativeSrc":"800:33:1","nodeType":"YulFunctionCall","src":"800:33:1"},"nativeSrc":"800:33:1","nodeType":"YulExpressionStatement","src":"800:33:1"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"696:143:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"737:6:1","nodeType":"YulTypedName","src":"737:6:1","type":""},{"name":"end","nativeSrc":"745:3:1","nodeType":"YulTypedName","src":"745:3:1","type":""}],"returnVariables":[{"name":"value","nativeSrc":"753:5:1","nodeType":"YulTypedName","src":"753:5:1","type":""}],"src":"696:143:1"},{"body":{"nativeSrc":"934:28:1","nodeType":"YulBlock","src":"934:28:1","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"951:1:1","nodeType":"YulLiteral","src":"951:1:1","type":"","value":"0"},{"kind":"number","nativeSrc":"954:1:1","nodeType":"YulLiteral","src":"954:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"944:6:1","nodeType":"YulIdentifier","src":"944:6:1"},"nativeSrc":"944:12:1","nodeType":"YulFunctionCall","src":"944:12:1"},"nativeSrc":"944:12:1","nodeType":"YulExpressionStatement","src":"944:12:1"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"845:117:1","nodeType":"YulFunctionDefinition","src":"845:117:1"},{"body":{"nativeSrc":"1057:28:1","nodeType":"YulBlock","src":"1057:28:1","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1074:1:1","nodeType":"YulLiteral","src":"1074:1:1","type":"","value":"0"},{"kind":"number","nativeSrc":"1077:1:1","nodeType":"YulLiteral","src":"1077:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1067:6:1","nodeType":"YulIdentifier","src":"1067:6:1"},"nativeSrc":"1067:12:1","nodeType":"YulFunctionCall","src":"1067:12:1"},"nativeSrc":"1067:12:1","nodeType":"YulExpressionStatement","src":"1067:12:1"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"968:117:1","nodeType":"YulFunctionDefinition","src":"968:117:1"},{"body":{"nativeSrc":"1139:54:1","nodeType":"YulBlock","src":"1139:54:1","statements":[{"nativeSrc":"1149:38:1","nodeType":"YulAssignment","src":"1149:38:1","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1167:5:1","nodeType":"YulIdentifier","src":"1167:5:1"},{"kind":"number","nativeSrc":"1174:2:1","nodeType":"YulLiteral","src":"1174:2:1","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"1163:3:1","nodeType":"YulIdentifier","src":"1163:3:1"},"nativeSrc":"1163:14:1","nodeType":"YulFunctionCall","src":"1163:14:1"},{"arguments":[{"kind":"number","nativeSrc":"1183:2:1","nodeType":"YulLiteral","src":"1183:2:1","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"1179:3:1","nodeType":"YulIdentifier","src":"1179:3:1"},"nativeSrc":"1179:7:1","nodeType":"YulFunctionCall","src":"1179:7:1"}],"functionName":{"name":"and","nativeSrc":"1159:3:1","nodeType":"YulIdentifier","src":"1159:3:1"},"nativeSrc":"1159:28:1","nodeType":"YulFunctionCall","src":"1159:28:1"},"variableNames":[{"name":"result","nativeSrc":"1149:6:1","nodeType":"YulIdentifier","src":"1149:6:1"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"1091:102:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1122:5:1","nodeType":"YulTypedName","src":"1122:5:1","type":""}],"returnVariables":[{"name":"result","nativeSrc":"1132:6:1","nodeType":"YulTypedName","src":"1132:6:1","type":""}],"src":"1091:102:1"},{"body":{"nativeSrc":"1227:152:1","nodeType":"YulBlock","src":"1227:152:1","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1244:1:1","nodeType":"YulLiteral","src":"1244:1:1","type":"","value":"0"},{"kind":"number","nativeSrc":"1247:77:1","nodeType":"YulLiteral","src":"1247:77:1","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"1237:6:1","nodeType":"YulIdentifier","src":"1237:6:1"},"nativeSrc":"1237:88:1","nodeType":"YulFunctionCall","src":"1237:88:1"},"nativeSrc":"1237:88:1","nodeType":"YulExpressionStatement","src":"1237:88:1"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1341:1:1","nodeType":"YulLiteral","src":"1341:1:1","type":"","value":"4"},{"kind":"number","nativeSrc":"1344:4:1","nodeType":"YulLiteral","src":"1344:4:1","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"1334:6:1","nodeType":"YulIdentifier","src":"1334:6:1"},"nativeSrc":"1334:15:1","nodeType":"YulFunctionCall","src":"1334:15:1"},"nativeSrc":"1334:15:1","nodeType":"YulExpressionStatement","src":"1334:15:1"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1365:1:1","nodeType":"YulLiteral","src":"1365:1:1","type":"","value":"0"},{"kind":"number","nativeSrc":"1368:4:1","nodeType":"YulLiteral","src":"1368:4:1","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1358:6:1","nodeType":"YulIdentifier","src":"1358:6:1"},"nativeSrc":"1358:15:1","nodeType":"YulFunctionCall","src":"1358:15:1"},"nativeSrc":"1358:15:1","nodeType":"YulExpressionStatement","src":"1358:15:1"}]},"name":"panic_error_0x41","nativeSrc":"1199:180:1","nodeType":"YulFunctionDefinition","src":"1199:180:1"},{"body":{"nativeSrc":"1428:238:1","nodeType":"YulBlock","src":"1428:238:1","statements":[{"nativeSrc":"1438:58:1","nodeType":"YulVariableDeclaration","src":"1438:58:1","value":{"arguments":[{"name":"memPtr","nativeSrc":"1460:6:1","nodeType":"YulIdentifier","src":"1460:6:1"},{"arguments":[{"name":"size","nativeSrc":"1490:4:1","nodeType":"YulIdentifier","src":"1490:4:1"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"1468:21:1","nodeType":"YulIdentifier","src":"1468:21:1"},"nativeSrc":"1468:27:1","nodeType":"YulFunctionCall","src":"1468:27:1"}],"functionName":{"name":"add","nativeSrc":"1456:3:1","nodeType":"YulIdentifier","src":"1456:3:1"},"nativeSrc":"1456:40:1","nodeType":"YulFunctionCall","src":"1456:40:1"},"variables":[{"name":"newFreePtr","nativeSrc":"1442:10:1","nodeType":"YulTypedName","src":"1442:10:1","type":""}]},{"body":{"nativeSrc":"1607:22:1","nodeType":"YulBlock","src":"1607:22:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1609:16:1","nodeType":"YulIdentifier","src":"1609:16:1"},"nativeSrc":"1609:18:1","nodeType":"YulFunctionCall","src":"1609:18:1"},"nativeSrc":"1609:18:1","nodeType":"YulExpressionStatement","src":"1609:18:1"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"1550:10:1","nodeType":"YulIdentifier","src":"1550:10:1"},{"kind":"number","nativeSrc":"1562:18:1","nodeType":"YulLiteral","src":"1562:18:1","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1547:2:1","nodeType":"YulIdentifier","src":"1547:2:1"},"nativeSrc":"1547:34:1","nodeType":"YulFunctionCall","src":"1547:34:1"},{"arguments":[{"name":"newFreePtr","nativeSrc":"1586:10:1","nodeType":"YulIdentifier","src":"1586:10:1"},{"name":"memPtr","nativeSrc":"1598:6:1","nodeType":"YulIdentifier","src":"1598:6:1"}],"functionName":{"name":"lt","nativeSrc":"1583:2:1","nodeType":"YulIdentifier","src":"1583:2:1"},"nativeSrc":"1583:22:1","nodeType":"YulFunctionCall","src":"1583:22:1"}],"functionName":{"name":"or","nativeSrc":"1544:2:1","nodeType":"YulIdentifier","src":"1544:2:1"},"nativeSrc":"1544:62:1","nodeType":"YulFunctionCall","src":"1544:62:1"},"nativeSrc":"1541:88:1","nodeType":"YulIf","src":"1541:88:1"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1645:2:1","nodeType":"YulLiteral","src":"1645:2:1","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"1649:10:1","nodeType":"YulIdentifier","src":"1649:10:1"}],"functionName":{"name":"mstore","nativeSrc":"1638:6:1","nodeType":"YulIdentifier","src":"1638:6:1"},"nativeSrc":"1638:22:1","nodeType":"YulFunctionCall","src":"1638:22:1"},"nativeSrc":"1638:22:1","nodeType":"YulExpressionStatement","src":"1638:22:1"}]},"name":"finalize_allocation","nativeSrc":"1385:281:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"1414:6:1","nodeType":"YulTypedName","src":"1414:6:1","type":""},{"name":"size","nativeSrc":"1422:4:1","nodeType":"YulTypedName","src":"1422:4:1","type":""}],"src":"1385:281:1"},{"body":{"nativeSrc":"1713:88:1","nodeType":"YulBlock","src":"1713:88:1","statements":[{"nativeSrc":"1723:30:1","nodeType":"YulAssignment","src":"1723:30:1","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"1733:18:1","nodeType":"YulIdentifier","src":"1733:18:1"},"nativeSrc":"1733:20:1","nodeType":"YulFunctionCall","src":"1733:20:1"},"variableNames":[{"name":"memPtr","nativeSrc":"1723:6:1","nodeType":"YulIdentifier","src":"1723:6:1"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"1782:6:1","nodeType":"YulIdentifier","src":"1782:6:1"},{"name":"size","nativeSrc":"1790:4:1","nodeType":"YulIdentifier","src":"1790:4:1"}],"functionName":{"name":"finalize_allocation","nativeSrc":"1762:19:1","nodeType":"YulIdentifier","src":"1762:19:1"},"nativeSrc":"1762:33:1","nodeType":"YulFunctionCall","src":"1762:33:1"},"nativeSrc":"1762:33:1","nodeType":"YulExpressionStatement","src":"1762:33:1"}]},"name":"allocate_memory","nativeSrc":"1672:129:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"1697:4:1","nodeType":"YulTypedName","src":"1697:4:1","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"1706:6:1","nodeType":"YulTypedName","src":"1706:6:1","type":""}],"src":"1672:129:1"},{"body":{"nativeSrc":"1873:241:1","nodeType":"YulBlock","src":"1873:241:1","statements":[{"body":{"nativeSrc":"1978:22:1","nodeType":"YulBlock","src":"1978:22:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1980:16:1","nodeType":"YulIdentifier","src":"1980:16:1"},"nativeSrc":"1980:18:1","nodeType":"YulFunctionCall","src":"1980:18:1"},"nativeSrc":"1980:18:1","nodeType":"YulExpressionStatement","src":"1980:18:1"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"1950:6:1","nodeType":"YulIdentifier","src":"1950:6:1"},{"kind":"number","nativeSrc":"1958:18:1","nodeType":"YulLiteral","src":"1958:18:1","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1947:2:1","nodeType":"YulIdentifier","src":"1947:2:1"},"nativeSrc":"1947:30:1","nodeType":"YulFunctionCall","src":"1947:30:1"},"nativeSrc":"1944:56:1","nodeType":"YulIf","src":"1944:56:1"},{"nativeSrc":"2010:37:1","nodeType":"YulAssignment","src":"2010:37:1","value":{"arguments":[{"name":"length","nativeSrc":"2040:6:1","nodeType":"YulIdentifier","src":"2040:6:1"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"2018:21:1","nodeType":"YulIdentifier","src":"2018:21:1"},"nativeSrc":"2018:29:1","nodeType":"YulFunctionCall","src":"2018:29:1"},"variableNames":[{"name":"size","nativeSrc":"2010:4:1","nodeType":"YulIdentifier","src":"2010:4:1"}]},{"nativeSrc":"2084:23:1","nodeType":"YulAssignment","src":"2084:23:1","value":{"arguments":[{"name":"size","nativeSrc":"2096:4:1","nodeType":"YulIdentifier","src":"2096:4:1"},{"kind":"number","nativeSrc":"2102:4:1","nodeType":"YulLiteral","src":"2102:4:1","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2092:3:1","nodeType":"YulIdentifier","src":"2092:3:1"},"nativeSrc":"2092:15:1","nodeType":"YulFunctionCall","src":"2092:15:1"},"variableNames":[{"name":"size","nativeSrc":"2084:4:1","nodeType":"YulIdentifier","src":"2084:4:1"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"1807:307:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"1857:6:1","nodeType":"YulTypedName","src":"1857:6:1","type":""}],"returnVariables":[{"name":"size","nativeSrc":"1868:4:1","nodeType":"YulTypedName","src":"1868:4:1","type":""}],"src":"1807:307:1"},{"body":{"nativeSrc":"2182:186:1","nodeType":"YulBlock","src":"2182:186:1","statements":[{"nativeSrc":"2193:10:1","nodeType":"YulVariableDeclaration","src":"2193:10:1","value":{"kind":"number","nativeSrc":"2202:1:1","nodeType":"YulLiteral","src":"2202:1:1","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"2197:1:1","nodeType":"YulTypedName","src":"2197:1:1","type":""}]},{"body":{"nativeSrc":"2262:63:1","nodeType":"YulBlock","src":"2262:63:1","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"2287:3:1","nodeType":"YulIdentifier","src":"2287:3:1"},{"name":"i","nativeSrc":"2292:1:1","nodeType":"YulIdentifier","src":"2292:1:1"}],"functionName":{"name":"add","nativeSrc":"2283:3:1","nodeType":"YulIdentifier","src":"2283:3:1"},"nativeSrc":"2283:11:1","nodeType":"YulFunctionCall","src":"2283:11:1"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"2306:3:1","nodeType":"YulIdentifier","src":"2306:3:1"},{"name":"i","nativeSrc":"2311:1:1","nodeType":"YulIdentifier","src":"2311:1:1"}],"functionName":{"name":"add","nativeSrc":"2302:3:1","nodeType":"YulIdentifier","src":"2302:3:1"},"nativeSrc":"2302:11:1","nodeType":"YulFunctionCall","src":"2302:11:1"}],"functionName":{"name":"mload","nativeSrc":"2296:5:1","nodeType":"YulIdentifier","src":"2296:5:1"},"nativeSrc":"2296:18:1","nodeType":"YulFunctionCall","src":"2296:18:1"}],"functionName":{"name":"mstore","nativeSrc":"2276:6:1","nodeType":"YulIdentifier","src":"2276:6:1"},"nativeSrc":"2276:39:1","nodeType":"YulFunctionCall","src":"2276:39:1"},"nativeSrc":"2276:39:1","nodeType":"YulExpressionStatement","src":"2276:39:1"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"2223:1:1","nodeType":"YulIdentifier","src":"2223:1:1"},{"name":"length","nativeSrc":"2226:6:1","nodeType":"YulIdentifier","src":"2226:6:1"}],"functionName":{"name":"lt","nativeSrc":"2220:2:1","nodeType":"YulIdentifier","src":"2220:2:1"},"nativeSrc":"2220:13:1","nodeType":"YulFunctionCall","src":"2220:13:1"},"nativeSrc":"2212:113:1","nodeType":"YulForLoop","post":{"nativeSrc":"2234:19:1","nodeType":"YulBlock","src":"2234:19:1","statements":[{"nativeSrc":"2236:15:1","nodeType":"YulAssignment","src":"2236:15:1","value":{"arguments":[{"name":"i","nativeSrc":"2245:1:1","nodeType":"YulIdentifier","src":"2245:1:1"},{"kind":"number","nativeSrc":"2248:2:1","nodeType":"YulLiteral","src":"2248:2:1","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2241:3:1","nodeType":"YulIdentifier","src":"2241:3:1"},"nativeSrc":"2241:10:1","nodeType":"YulFunctionCall","src":"2241:10:1"},"variableNames":[{"name":"i","nativeSrc":"2236:1:1","nodeType":"YulIdentifier","src":"2236:1:1"}]}]},"pre":{"nativeSrc":"2216:3:1","nodeType":"YulBlock","src":"2216:3:1","statements":[]},"src":"2212:113:1"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"2345:3:1","nodeType":"YulIdentifier","src":"2345:3:1"},{"name":"length","nativeSrc":"2350:6:1","nodeType":"YulIdentifier","src":"2350:6:1"}],"functionName":{"name":"add","nativeSrc":"2341:3:1","nodeType":"YulIdentifier","src":"2341:3:1"},"nativeSrc":"2341:16:1","nodeType":"YulFunctionCall","src":"2341:16:1"},{"kind":"number","nativeSrc":"2359:1:1","nodeType":"YulLiteral","src":"2359:1:1","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"2334:6:1","nodeType":"YulIdentifier","src":"2334:6:1"},"nativeSrc":"2334:27:1","nodeType":"YulFunctionCall","src":"2334:27:1"},"nativeSrc":"2334:27:1","nodeType":"YulExpressionStatement","src":"2334:27:1"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"2120:248:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"2164:3:1","nodeType":"YulTypedName","src":"2164:3:1","type":""},{"name":"dst","nativeSrc":"2169:3:1","nodeType":"YulTypedName","src":"2169:3:1","type":""},{"name":"length","nativeSrc":"2174:6:1","nodeType":"YulTypedName","src":"2174:6:1","type":""}],"src":"2120:248:1"},{"body":{"nativeSrc":"2468:338:1","nodeType":"YulBlock","src":"2468:338:1","statements":[{"nativeSrc":"2478:74:1","nodeType":"YulAssignment","src":"2478:74:1","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"2544:6:1","nodeType":"YulIdentifier","src":"2544:6:1"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"2503:40:1","nodeType":"YulIdentifier","src":"2503:40:1"},"nativeSrc":"2503:48:1","nodeType":"YulFunctionCall","src":"2503:48:1"}],"functionName":{"name":"allocate_memory","nativeSrc":"2487:15:1","nodeType":"YulIdentifier","src":"2487:15:1"},"nativeSrc":"2487:65:1","nodeType":"YulFunctionCall","src":"2487:65:1"},"variableNames":[{"name":"array","nativeSrc":"2478:5:1","nodeType":"YulIdentifier","src":"2478:5:1"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"2568:5:1","nodeType":"YulIdentifier","src":"2568:5:1"},{"name":"length","nativeSrc":"2575:6:1","nodeType":"YulIdentifier","src":"2575:6:1"}],"functionName":{"name":"mstore","nativeSrc":"2561:6:1","nodeType":"YulIdentifier","src":"2561:6:1"},"nativeSrc":"2561:21:1","nodeType":"YulFunctionCall","src":"2561:21:1"},"nativeSrc":"2561:21:1","nodeType":"YulExpressionStatement","src":"2561:21:1"},{"nativeSrc":"2591:27:1","nodeType":"YulVariableDeclaration","src":"2591:27:1","value":{"arguments":[{"name":"array","nativeSrc":"2606:5:1","nodeType":"YulIdentifier","src":"2606:5:1"},{"kind":"number","nativeSrc":"2613:4:1","nodeType":"YulLiteral","src":"2613:4:1","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2602:3:1","nodeType":"YulIdentifier","src":"2602:3:1"},"nativeSrc":"2602:16:1","nodeType":"YulFunctionCall","src":"2602:16:1"},"variables":[{"name":"dst","nativeSrc":"2595:3:1","nodeType":"YulTypedName","src":"2595:3:1","type":""}]},{"body":{"nativeSrc":"2656:83:1","nodeType":"YulBlock","src":"2656:83:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"2658:77:1","nodeType":"YulIdentifier","src":"2658:77:1"},"nativeSrc":"2658:79:1","nodeType":"YulFunctionCall","src":"2658:79:1"},"nativeSrc":"2658:79:1","nodeType":"YulExpressionStatement","src":"2658:79:1"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"2637:3:1","nodeType":"YulIdentifier","src":"2637:3:1"},{"name":"length","nativeSrc":"2642:6:1","nodeType":"YulIdentifier","src":"2642:6:1"}],"functionName":{"name":"add","nativeSrc":"2633:3:1","nodeType":"YulIdentifier","src":"2633:3:1"},"nativeSrc":"2633:16:1","nodeType":"YulFunctionCall","src":"2633:16:1"},{"name":"end","nativeSrc":"2651:3:1","nodeType":"YulIdentifier","src":"2651:3:1"}],"functionName":{"name":"gt","nativeSrc":"2630:2:1","nodeType":"YulIdentifier","src":"2630:2:1"},"nativeSrc":"2630:25:1","nodeType":"YulFunctionCall","src":"2630:25:1"},"nativeSrc":"2627:112:1","nodeType":"YulIf","src":"2627:112:1"},{"expression":{"arguments":[{"name":"src","nativeSrc":"2783:3:1","nodeType":"YulIdentifier","src":"2783:3:1"},{"name":"dst","nativeSrc":"2788:3:1","nodeType":"YulIdentifier","src":"2788:3:1"},{"name":"length","nativeSrc":"2793:6:1","nodeType":"YulIdentifier","src":"2793:6:1"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"2748:34:1","nodeType":"YulIdentifier","src":"2748:34:1"},"nativeSrc":"2748:52:1","nodeType":"YulFunctionCall","src":"2748:52:1"},"nativeSrc":"2748:52:1","nodeType":"YulExpressionStatement","src":"2748:52:1"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr_fromMemory","nativeSrc":"2374:432:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"2441:3:1","nodeType":"YulTypedName","src":"2441:3:1","type":""},{"name":"length","nativeSrc":"2446:6:1","nodeType":"YulTypedName","src":"2446:6:1","type":""},{"name":"end","nativeSrc":"2454:3:1","nodeType":"YulTypedName","src":"2454:3:1","type":""}],"returnVariables":[{"name":"array","nativeSrc":"2462:5:1","nodeType":"YulTypedName","src":"2462:5:1","type":""}],"src":"2374:432:1"},{"body":{"nativeSrc":"2897:281:1","nodeType":"YulBlock","src":"2897:281:1","statements":[{"body":{"nativeSrc":"2946:83:1","nodeType":"YulBlock","src":"2946:83:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2948:77:1","nodeType":"YulIdentifier","src":"2948:77:1"},"nativeSrc":"2948:79:1","nodeType":"YulFunctionCall","src":"2948:79:1"},"nativeSrc":"2948:79:1","nodeType":"YulExpressionStatement","src":"2948:79:1"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2925:6:1","nodeType":"YulIdentifier","src":"2925:6:1"},{"kind":"number","nativeSrc":"2933:4:1","nodeType":"YulLiteral","src":"2933:4:1","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2921:3:1","nodeType":"YulIdentifier","src":"2921:3:1"},"nativeSrc":"2921:17:1","nodeType":"YulFunctionCall","src":"2921:17:1"},{"name":"end","nativeSrc":"2940:3:1","nodeType":"YulIdentifier","src":"2940:3:1"}],"functionName":{"name":"slt","nativeSrc":"2917:3:1","nodeType":"YulIdentifier","src":"2917:3:1"},"nativeSrc":"2917:27:1","nodeType":"YulFunctionCall","src":"2917:27:1"}],"functionName":{"name":"iszero","nativeSrc":"2910:6:1","nodeType":"YulIdentifier","src":"2910:6:1"},"nativeSrc":"2910:35:1","nodeType":"YulFunctionCall","src":"2910:35:1"},"nativeSrc":"2907:122:1","nodeType":"YulIf","src":"2907:122:1"},{"nativeSrc":"3038:27:1","nodeType":"YulVariableDeclaration","src":"3038:27:1","value":{"arguments":[{"name":"offset","nativeSrc":"3058:6:1","nodeType":"YulIdentifier","src":"3058:6:1"}],"functionName":{"name":"mload","nativeSrc":"3052:5:1","nodeType":"YulIdentifier","src":"3052:5:1"},"nativeSrc":"3052:13:1","nodeType":"YulFunctionCall","src":"3052:13:1"},"variables":[{"name":"length","nativeSrc":"3042:6:1","nodeType":"YulTypedName","src":"3042:6:1","type":""}]},{"nativeSrc":"3074:98:1","nodeType":"YulAssignment","src":"3074:98:1","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3145:6:1","nodeType":"YulIdentifier","src":"3145:6:1"},{"kind":"number","nativeSrc":"3153:4:1","nodeType":"YulLiteral","src":"3153:4:1","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3141:3:1","nodeType":"YulIdentifier","src":"3141:3:1"},"nativeSrc":"3141:17:1","nodeType":"YulFunctionCall","src":"3141:17:1"},{"name":"length","nativeSrc":"3160:6:1","nodeType":"YulIdentifier","src":"3160:6:1"},{"name":"end","nativeSrc":"3168:3:1","nodeType":"YulIdentifier","src":"3168:3:1"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr_fromMemory","nativeSrc":"3083:57:1","nodeType":"YulIdentifier","src":"3083:57:1"},"nativeSrc":"3083:89:1","nodeType":"YulFunctionCall","src":"3083:89:1"},"variableNames":[{"name":"array","nativeSrc":"3074:5:1","nodeType":"YulIdentifier","src":"3074:5:1"}]}]},"name":"abi_decode_t_bytes_memory_ptr_fromMemory","nativeSrc":"2825:353:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2875:6:1","nodeType":"YulTypedName","src":"2875:6:1","type":""},{"name":"end","nativeSrc":"2883:3:1","nodeType":"YulTypedName","src":"2883:3:1","type":""}],"returnVariables":[{"name":"array","nativeSrc":"2891:5:1","nodeType":"YulTypedName","src":"2891:5:1","type":""}],"src":"2825:353:1"},{"body":{"nativeSrc":"3304:714:1","nodeType":"YulBlock","src":"3304:714:1","statements":[{"body":{"nativeSrc":"3350:83:1","nodeType":"YulBlock","src":"3350:83:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3352:77:1","nodeType":"YulIdentifier","src":"3352:77:1"},"nativeSrc":"3352:79:1","nodeType":"YulFunctionCall","src":"3352:79:1"},"nativeSrc":"3352:79:1","nodeType":"YulExpressionStatement","src":"3352:79:1"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3325:7:1","nodeType":"YulIdentifier","src":"3325:7:1"},{"name":"headStart","nativeSrc":"3334:9:1","nodeType":"YulIdentifier","src":"3334:9:1"}],"functionName":{"name":"sub","nativeSrc":"3321:3:1","nodeType":"YulIdentifier","src":"3321:3:1"},"nativeSrc":"3321:23:1","nodeType":"YulFunctionCall","src":"3321:23:1"},{"kind":"number","nativeSrc":"3346:2:1","nodeType":"YulLiteral","src":"3346:2:1","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"3317:3:1","nodeType":"YulIdentifier","src":"3317:3:1"},"nativeSrc":"3317:32:1","nodeType":"YulFunctionCall","src":"3317:32:1"},"nativeSrc":"3314:119:1","nodeType":"YulIf","src":"3314:119:1"},{"nativeSrc":"3443:128:1","nodeType":"YulBlock","src":"3443:128:1","statements":[{"nativeSrc":"3458:15:1","nodeType":"YulVariableDeclaration","src":"3458:15:1","value":{"kind":"number","nativeSrc":"3472:1:1","nodeType":"YulLiteral","src":"3472:1:1","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3462:6:1","nodeType":"YulTypedName","src":"3462:6:1","type":""}]},{"nativeSrc":"3487:74:1","nodeType":"YulAssignment","src":"3487:74:1","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3533:9:1","nodeType":"YulIdentifier","src":"3533:9:1"},{"name":"offset","nativeSrc":"3544:6:1","nodeType":"YulIdentifier","src":"3544:6:1"}],"functionName":{"name":"add","nativeSrc":"3529:3:1","nodeType":"YulIdentifier","src":"3529:3:1"},"nativeSrc":"3529:22:1","nodeType":"YulFunctionCall","src":"3529:22:1"},{"name":"dataEnd","nativeSrc":"3553:7:1","nodeType":"YulIdentifier","src":"3553:7:1"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"3497:31:1","nodeType":"YulIdentifier","src":"3497:31:1"},"nativeSrc":"3497:64:1","nodeType":"YulFunctionCall","src":"3497:64:1"},"variableNames":[{"name":"value0","nativeSrc":"3487:6:1","nodeType":"YulIdentifier","src":"3487:6:1"}]}]},{"nativeSrc":"3581:129:1","nodeType":"YulBlock","src":"3581:129:1","statements":[{"nativeSrc":"3596:16:1","nodeType":"YulVariableDeclaration","src":"3596:16:1","value":{"kind":"number","nativeSrc":"3610:2:1","nodeType":"YulLiteral","src":"3610:2:1","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"3600:6:1","nodeType":"YulTypedName","src":"3600:6:1","type":""}]},{"nativeSrc":"3626:74:1","nodeType":"YulAssignment","src":"3626:74:1","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3672:9:1","nodeType":"YulIdentifier","src":"3672:9:1"},{"name":"offset","nativeSrc":"3683:6:1","nodeType":"YulIdentifier","src":"3683:6:1"}],"functionName":{"name":"add","nativeSrc":"3668:3:1","nodeType":"YulIdentifier","src":"3668:3:1"},"nativeSrc":"3668:22:1","nodeType":"YulFunctionCall","src":"3668:22:1"},{"name":"dataEnd","nativeSrc":"3692:7:1","nodeType":"YulIdentifier","src":"3692:7:1"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"3636:31:1","nodeType":"YulIdentifier","src":"3636:31:1"},"nativeSrc":"3636:64:1","nodeType":"YulFunctionCall","src":"3636:64:1"},"variableNames":[{"name":"value1","nativeSrc":"3626:6:1","nodeType":"YulIdentifier","src":"3626:6:1"}]}]},{"nativeSrc":"3720:291:1","nodeType":"YulBlock","src":"3720:291:1","statements":[{"nativeSrc":"3735:39:1","nodeType":"YulVariableDeclaration","src":"3735:39:1","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3759:9:1","nodeType":"YulIdentifier","src":"3759:9:1"},{"kind":"number","nativeSrc":"3770:2:1","nodeType":"YulLiteral","src":"3770:2:1","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3755:3:1","nodeType":"YulIdentifier","src":"3755:3:1"},"nativeSrc":"3755:18:1","nodeType":"YulFunctionCall","src":"3755:18:1"}],"functionName":{"name":"mload","nativeSrc":"3749:5:1","nodeType":"YulIdentifier","src":"3749:5:1"},"nativeSrc":"3749:25:1","nodeType":"YulFunctionCall","src":"3749:25:1"},"variables":[{"name":"offset","nativeSrc":"3739:6:1","nodeType":"YulTypedName","src":"3739:6:1","type":""}]},{"body":{"nativeSrc":"3821:83:1","nodeType":"YulBlock","src":"3821:83:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"3823:77:1","nodeType":"YulIdentifier","src":"3823:77:1"},"nativeSrc":"3823:79:1","nodeType":"YulFunctionCall","src":"3823:79:1"},"nativeSrc":"3823:79:1","nodeType":"YulExpressionStatement","src":"3823:79:1"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3793:6:1","nodeType":"YulIdentifier","src":"3793:6:1"},{"kind":"number","nativeSrc":"3801:18:1","nodeType":"YulLiteral","src":"3801:18:1","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3790:2:1","nodeType":"YulIdentifier","src":"3790:2:1"},"nativeSrc":"3790:30:1","nodeType":"YulFunctionCall","src":"3790:30:1"},"nativeSrc":"3787:117:1","nodeType":"YulIf","src":"3787:117:1"},{"nativeSrc":"3918:83:1","nodeType":"YulAssignment","src":"3918:83:1","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3973:9:1","nodeType":"YulIdentifier","src":"3973:9:1"},{"name":"offset","nativeSrc":"3984:6:1","nodeType":"YulIdentifier","src":"3984:6:1"}],"functionName":{"name":"add","nativeSrc":"3969:3:1","nodeType":"YulIdentifier","src":"3969:3:1"},"nativeSrc":"3969:22:1","nodeType":"YulFunctionCall","src":"3969:22:1"},{"name":"dataEnd","nativeSrc":"3993:7:1","nodeType":"YulIdentifier","src":"3993:7:1"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr_fromMemory","nativeSrc":"3928:40:1","nodeType":"YulIdentifier","src":"3928:40:1"},"nativeSrc":"3928:73:1","nodeType":"YulFunctionCall","src":"3928:73:1"},"variableNames":[{"name":"value2","nativeSrc":"3918:6:1","nodeType":"YulIdentifier","src":"3918:6:1"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_bytes_memory_ptr_fromMemory","nativeSrc":"3184:834:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3258:9:1","nodeType":"YulTypedName","src":"3258:9:1","type":""},{"name":"dataEnd","nativeSrc":"3269:7:1","nodeType":"YulTypedName","src":"3269:7:1","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3281:6:1","nodeType":"YulTypedName","src":"3281:6:1","type":""},{"name":"value1","nativeSrc":"3289:6:1","nodeType":"YulTypedName","src":"3289:6:1","type":""},{"name":"value2","nativeSrc":"3297:6:1","nodeType":"YulTypedName","src":"3297:6:1","type":""}],"src":"3184:834:1"},{"body":{"nativeSrc":"4089:53:1","nodeType":"YulBlock","src":"4089:53:1","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4106:3:1","nodeType":"YulIdentifier","src":"4106:3:1"},{"arguments":[{"name":"value","nativeSrc":"4129:5:1","nodeType":"YulIdentifier","src":"4129:5:1"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"4111:17:1","nodeType":"YulIdentifier","src":"4111:17:1"},"nativeSrc":"4111:24:1","nodeType":"YulFunctionCall","src":"4111:24:1"}],"functionName":{"name":"mstore","nativeSrc":"4099:6:1","nodeType":"YulIdentifier","src":"4099:6:1"},"nativeSrc":"4099:37:1","nodeType":"YulFunctionCall","src":"4099:37:1"},"nativeSrc":"4099:37:1","nodeType":"YulExpressionStatement","src":"4099:37:1"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"4024:118:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4077:5:1","nodeType":"YulTypedName","src":"4077:5:1","type":""},{"name":"pos","nativeSrc":"4084:3:1","nodeType":"YulTypedName","src":"4084:3:1","type":""}],"src":"4024:118:1"},{"body":{"nativeSrc":"4246:124:1","nodeType":"YulBlock","src":"4246:124:1","statements":[{"nativeSrc":"4256:26:1","nodeType":"YulAssignment","src":"4256:26:1","value":{"arguments":[{"name":"headStart","nativeSrc":"4268:9:1","nodeType":"YulIdentifier","src":"4268:9:1"},{"kind":"number","nativeSrc":"4279:2:1","nodeType":"YulLiteral","src":"4279:2:1","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4264:3:1","nodeType":"YulIdentifier","src":"4264:3:1"},"nativeSrc":"4264:18:1","nodeType":"YulFunctionCall","src":"4264:18:1"},"variableNames":[{"name":"tail","nativeSrc":"4256:4:1","nodeType":"YulIdentifier","src":"4256:4:1"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4336:6:1","nodeType":"YulIdentifier","src":"4336:6:1"},{"arguments":[{"name":"headStart","nativeSrc":"4349:9:1","nodeType":"YulIdentifier","src":"4349:9:1"},{"kind":"number","nativeSrc":"4360:1:1","nodeType":"YulLiteral","src":"4360:1:1","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4345:3:1","nodeType":"YulIdentifier","src":"4345:3:1"},"nativeSrc":"4345:17:1","nodeType":"YulFunctionCall","src":"4345:17:1"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"4292:43:1","nodeType":"YulIdentifier","src":"4292:43:1"},"nativeSrc":"4292:71:1","nodeType":"YulFunctionCall","src":"4292:71:1"},"nativeSrc":"4292:71:1","nodeType":"YulExpressionStatement","src":"4292:71:1"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"4148:222:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4218:9:1","nodeType":"YulTypedName","src":"4218:9:1","type":""},{"name":"value0","nativeSrc":"4230:6:1","nodeType":"YulTypedName","src":"4230:6:1","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4241:4:1","nodeType":"YulTypedName","src":"4241:4:1","type":""}],"src":"4148:222:1"},{"body":{"nativeSrc":"4502:206:1","nodeType":"YulBlock","src":"4502:206:1","statements":[{"nativeSrc":"4512:26:1","nodeType":"YulAssignment","src":"4512:26:1","value":{"arguments":[{"name":"headStart","nativeSrc":"4524:9:1","nodeType":"YulIdentifier","src":"4524:9:1"},{"kind":"number","nativeSrc":"4535:2:1","nodeType":"YulLiteral","src":"4535:2:1","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4520:3:1","nodeType":"YulIdentifier","src":"4520:3:1"},"nativeSrc":"4520:18:1","nodeType":"YulFunctionCall","src":"4520:18:1"},"variableNames":[{"name":"tail","nativeSrc":"4512:4:1","nodeType":"YulIdentifier","src":"4512:4:1"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4592:6:1","nodeType":"YulIdentifier","src":"4592:6:1"},{"arguments":[{"name":"headStart","nativeSrc":"4605:9:1","nodeType":"YulIdentifier","src":"4605:9:1"},{"kind":"number","nativeSrc":"4616:1:1","nodeType":"YulLiteral","src":"4616:1:1","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4601:3:1","nodeType":"YulIdentifier","src":"4601:3:1"},"nativeSrc":"4601:17:1","nodeType":"YulFunctionCall","src":"4601:17:1"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"4548:43:1","nodeType":"YulIdentifier","src":"4548:43:1"},"nativeSrc":"4548:71:1","nodeType":"YulFunctionCall","src":"4548:71:1"},"nativeSrc":"4548:71:1","nodeType":"YulExpressionStatement","src":"4548:71:1"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"4673:6:1","nodeType":"YulIdentifier","src":"4673:6:1"},{"arguments":[{"name":"headStart","nativeSrc":"4686:9:1","nodeType":"YulIdentifier","src":"4686:9:1"},{"kind":"number","nativeSrc":"4697:2:1","nodeType":"YulLiteral","src":"4697:2:1","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4682:3:1","nodeType":"YulIdentifier","src":"4682:3:1"},"nativeSrc":"4682:18:1","nodeType":"YulFunctionCall","src":"4682:18:1"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"4629:43:1","nodeType":"YulIdentifier","src":"4629:43:1"},"nativeSrc":"4629:72:1","nodeType":"YulFunctionCall","src":"4629:72:1"},"nativeSrc":"4629:72:1","nodeType":"YulExpressionStatement","src":"4629:72:1"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nativeSrc":"4376:332:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4466:9:1","nodeType":"YulTypedName","src":"4466:9:1","type":""},{"name":"value1","nativeSrc":"4478:6:1","nodeType":"YulTypedName","src":"4478:6:1","type":""},{"name":"value0","nativeSrc":"4486:6:1","nodeType":"YulTypedName","src":"4486:6:1","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4497:4:1","nodeType":"YulTypedName","src":"4497:4:1","type":""}],"src":"4376:332:1"},{"body":{"nativeSrc":"4772:40:1","nodeType":"YulBlock","src":"4772:40:1","statements":[{"nativeSrc":"4783:22:1","nodeType":"YulAssignment","src":"4783:22:1","value":{"arguments":[{"name":"value","nativeSrc":"4799:5:1","nodeType":"YulIdentifier","src":"4799:5:1"}],"functionName":{"name":"mload","nativeSrc":"4793:5:1","nodeType":"YulIdentifier","src":"4793:5:1"},"nativeSrc":"4793:12:1","nodeType":"YulFunctionCall","src":"4793:12:1"},"variableNames":[{"name":"length","nativeSrc":"4783:6:1","nodeType":"YulIdentifier","src":"4783:6:1"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"4714:98:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4755:5:1","nodeType":"YulTypedName","src":"4755:5:1","type":""}],"returnVariables":[{"name":"length","nativeSrc":"4765:6:1","nodeType":"YulTypedName","src":"4765:6:1","type":""}],"src":"4714:98:1"},{"body":{"nativeSrc":"4931:34:1","nodeType":"YulBlock","src":"4931:34:1","statements":[{"nativeSrc":"4941:18:1","nodeType":"YulAssignment","src":"4941:18:1","value":{"name":"pos","nativeSrc":"4956:3:1","nodeType":"YulIdentifier","src":"4956:3:1"},"variableNames":[{"name":"updated_pos","nativeSrc":"4941:11:1","nodeType":"YulIdentifier","src":"4941:11:1"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"4818:147:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"4903:3:1","nodeType":"YulTypedName","src":"4903:3:1","type":""},{"name":"length","nativeSrc":"4908:6:1","nodeType":"YulTypedName","src":"4908:6:1","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"4919:11:1","nodeType":"YulTypedName","src":"4919:11:1","type":""}],"src":"4818:147:1"},{"body":{"nativeSrc":"5079:278:1","nodeType":"YulBlock","src":"5079:278:1","statements":[{"nativeSrc":"5089:52:1","nodeType":"YulVariableDeclaration","src":"5089:52:1","value":{"arguments":[{"name":"value","nativeSrc":"5135:5:1","nodeType":"YulIdentifier","src":"5135:5:1"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"5103:31:1","nodeType":"YulIdentifier","src":"5103:31:1"},"nativeSrc":"5103:38:1","nodeType":"YulFunctionCall","src":"5103:38:1"},"variables":[{"name":"length","nativeSrc":"5093:6:1","nodeType":"YulTypedName","src":"5093:6:1","type":""}]},{"nativeSrc":"5150:95:1","nodeType":"YulAssignment","src":"5150:95:1","value":{"arguments":[{"name":"pos","nativeSrc":"5233:3:1","nodeType":"YulIdentifier","src":"5233:3:1"},{"name":"length","nativeSrc":"5238:6:1","nodeType":"YulIdentifier","src":"5238:6:1"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"5157:75:1","nodeType":"YulIdentifier","src":"5157:75:1"},"nativeSrc":"5157:88:1","nodeType":"YulFunctionCall","src":"5157:88:1"},"variableNames":[{"name":"pos","nativeSrc":"5150:3:1","nodeType":"YulIdentifier","src":"5150:3:1"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5293:5:1","nodeType":"YulIdentifier","src":"5293:5:1"},{"kind":"number","nativeSrc":"5300:4:1","nodeType":"YulLiteral","src":"5300:4:1","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5289:3:1","nodeType":"YulIdentifier","src":"5289:3:1"},"nativeSrc":"5289:16:1","nodeType":"YulFunctionCall","src":"5289:16:1"},{"name":"pos","nativeSrc":"5307:3:1","nodeType":"YulIdentifier","src":"5307:3:1"},{"name":"length","nativeSrc":"5312:6:1","nodeType":"YulIdentifier","src":"5312:6:1"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"5254:34:1","nodeType":"YulIdentifier","src":"5254:34:1"},"nativeSrc":"5254:65:1","nodeType":"YulFunctionCall","src":"5254:65:1"},"nativeSrc":"5254:65:1","nodeType":"YulExpressionStatement","src":"5254:65:1"},{"nativeSrc":"5328:23:1","nodeType":"YulAssignment","src":"5328:23:1","value":{"arguments":[{"name":"pos","nativeSrc":"5339:3:1","nodeType":"YulIdentifier","src":"5339:3:1"},{"name":"length","nativeSrc":"5344:6:1","nodeType":"YulIdentifier","src":"5344:6:1"}],"functionName":{"name":"add","nativeSrc":"5335:3:1","nodeType":"YulIdentifier","src":"5335:3:1"},"nativeSrc":"5335:16:1","nodeType":"YulFunctionCall","src":"5335:16:1"},"variableNames":[{"name":"end","nativeSrc":"5328:3:1","nodeType":"YulIdentifier","src":"5328:3:1"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"4971:386:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5060:5:1","nodeType":"YulTypedName","src":"5060:5:1","type":""},{"name":"pos","nativeSrc":"5067:3:1","nodeType":"YulTypedName","src":"5067:3:1","type":""}],"returnVariables":[{"name":"end","nativeSrc":"5075:3:1","nodeType":"YulTypedName","src":"5075:3:1","type":""}],"src":"4971:386:1"},{"body":{"nativeSrc":"5497:137:1","nodeType":"YulBlock","src":"5497:137:1","statements":[{"nativeSrc":"5508:100:1","nodeType":"YulAssignment","src":"5508:100:1","value":{"arguments":[{"name":"value0","nativeSrc":"5595:6:1","nodeType":"YulIdentifier","src":"5595:6:1"},{"name":"pos","nativeSrc":"5604:3:1","nodeType":"YulIdentifier","src":"5604:3:1"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"5515:79:1","nodeType":"YulIdentifier","src":"5515:79:1"},"nativeSrc":"5515:93:1","nodeType":"YulFunctionCall","src":"5515:93:1"},"variableNames":[{"name":"pos","nativeSrc":"5508:3:1","nodeType":"YulIdentifier","src":"5508:3:1"}]},{"nativeSrc":"5618:10:1","nodeType":"YulAssignment","src":"5618:10:1","value":{"name":"pos","nativeSrc":"5625:3:1","nodeType":"YulIdentifier","src":"5625:3:1"},"variableNames":[{"name":"end","nativeSrc":"5618:3:1","nodeType":"YulIdentifier","src":"5618:3:1"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"5363:271:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"5476:3:1","nodeType":"YulTypedName","src":"5476:3:1","type":""},{"name":"value0","nativeSrc":"5482:6:1","nodeType":"YulTypedName","src":"5482:6:1","type":""}],"returnVariables":[{"name":"end","nativeSrc":"5493:3:1","nodeType":"YulTypedName","src":"5493:3:1","type":""}],"src":"5363:271:1"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr_fromMemory(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_memory_to_memory_with_cleanup(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := mload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_addresst_addresst_bytes_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := mload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2 := abi_decode_t_bytes_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n end := pos\n }\n\n}\n","id":1,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60a0604052604051611ae5380380611ae58339818101604052810190610025919061074f565b828161003782826100c460201b60201c565b5050816040516100469061056f565b61005091906107cd565b604051809103906000f08015801561006c573d6000803e3d6000fd5b5073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506100bc6100b161014960201b60201c565b61015360201b60201c565b50505061086f565b6100d3826101ab60201b60201c565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a260008151111561013657610130828261027e60201b60201c565b50610145565b61014461030860201b60201c565b5b5050565b6000608051905090565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61018261034560201b60201c565b826040516101919291906107e8565b60405180910390a16101a8816103a260201b60201c565b50565b60008173ffffffffffffffffffffffffffffffffffffffff163b0361020757806040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526004016101fe91906107cd565b60405180910390fd5b8061023a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61048b60201b60201c565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606000808473ffffffffffffffffffffffffffffffffffffffff16846040516102a89190610858565b600060405180830381855af49150503d80600081146102e3576040519150601f19603f3d011682016040523d82523d6000602084013e6102e8565b606091505b50915091506102fe85838361049560201b60201c565b9250505092915050565b6000341115610343576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60006103797fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610360001b61048b60201b60201c565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036104145760006040517f62e77ba200000000000000000000000000000000000000000000000000000000815260040161040b91906107cd565b60405180910390fd5b806104477fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610360001b61048b60201b60201c565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000819050919050565b6060826104b0576104ab8261052a60201b60201c565b610522565b600082511480156104d8575060008473ffffffffffffffffffffffffffffffffffffffff163b145b1561051a57836040517f9996b31500000000000000000000000000000000000000000000000000000000815260040161051191906107cd565b60405180910390fd5b819050610523565b5b9392505050565b60008151111561053d5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a2b806110ba83390190565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006105bb82610590565b9050919050565b6105cb816105b0565b81146105d657600080fd5b50565b6000815190506105e8816105c2565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610641826105f8565b810181811067ffffffffffffffff821117156106605761065f610609565b5b80604052505050565b600061067361057c565b905061067f8282610638565b919050565b600067ffffffffffffffff82111561069f5761069e610609565b5b6106a8826105f8565b9050602081019050919050565b60005b838110156106d35780820151818401526020810190506106b8565b60008484015250505050565b60006106f26106ed84610684565b610669565b90508281526020810184848401111561070e5761070d6105f3565b5b6107198482856106b5565b509392505050565b600082601f830112610736576107356105ee565b5b81516107468482602086016106df565b91505092915050565b60008060006060848603121561076857610767610586565b5b6000610776868287016105d9565b9350506020610787868287016105d9565b925050604084015167ffffffffffffffff8111156107a8576107a761058b565b5b6107b486828701610721565b9150509250925092565b6107c7816105b0565b82525050565b60006020820190506107e260008301846107be565b92915050565b60006040820190506107fd60008301856107be565b61080a60208301846107be565b9392505050565b600081519050919050565b600081905092915050565b600061083282610811565b61083c818561081c565b935061084c8185602086016106b5565b80840191505092915050565b60006108648284610827565b915081905092915050565b60805161083061088a600039600061010601526108306000f3fe608060405261000c61000e565b005b610016610102565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16036100f757634f1ef28660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166000357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146100ea576040517fd2b576ec00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6100f261012a565b610100565b6100ff610160565b5b565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b6000806000366004908092610141939291906104f1565b81019061014e91906106da565b9150915061015c8282610172565b5050565b61017061016b6101e5565b6101f4565b565b61017b8261021a565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a26000815111156101d8576101d282826102e7565b506101e1565b6101e061036b565b5b5050565b60006101ef6103a8565b905090565b3660008037600080366000845af43d6000803e8060008114610215573d6000f35b3d6000fd5b60008173ffffffffffffffffffffffffffffffffffffffff163b0361027657806040517f4c9c8ce300000000000000000000000000000000000000000000000000000000815260040161026d9190610757565b60405180910390fd5b806102a37f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6103ff565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606000808473ffffffffffffffffffffffffffffffffffffffff168460405161031191906107e3565b600060405180830381855af49150503d806000811461034c576040519150601f19603f3d011682016040523d82523d6000602084013e610351565b606091505b5091509150610361858383610409565b9250505092915050565b60003411156103a6576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60006103d67f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6103ff565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b60608261041e5761041982610498565b610490565b60008251148015610446575060008473ffffffffffffffffffffffffffffffffffffffff163b145b1561048857836040517f9996b31500000000000000000000000000000000000000000000000000000000815260040161047f9190610757565b60405180910390fd5b819050610491565b5b9392505050565b6000815111156104ab5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000604051905090565b600080fd5b600080fd5b60008085851115610505576105046104e7565b5b83861115610516576105156104ec565b5b6001850283019150848603905094509492505050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061056182610536565b9050919050565b61057181610556565b811461057c57600080fd5b50565b60008135905061058e81610568565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6105e78261059e565b810181811067ffffffffffffffff82111715610606576106056105af565b5b80604052505050565b60006106196104dd565b905061062582826105de565b919050565b600067ffffffffffffffff821115610645576106446105af565b5b61064e8261059e565b9050602081019050919050565b82818337600083830152505050565b600061067d6106788461062a565b61060f565b90508281526020810184848401111561069957610698610599565b5b6106a484828561065b565b509392505050565b600082601f8301126106c1576106c0610594565b5b81356106d184826020860161066a565b91505092915050565b600080604083850312156106f1576106f061052c565b5b60006106ff8582860161057f565b925050602083013567ffffffffffffffff8111156107205761071f610531565b5b61072c858286016106ac565b9150509250929050565b600061074182610536565b9050919050565b61075181610736565b82525050565b600060208201905061076c6000830184610748565b92915050565b600081519050919050565b600081905092915050565b60005b838110156107a657808201518184015260208101905061078b565b60008484015250505050565b60006107bd82610772565b6107c7818561077d565b93506107d7818560208601610788565b80840191505092915050565b60006107ef82846107b2565b91508190509291505056fea26469706673582212206be732332064e778aac95f60931947bf328cda42bd2ec28b7e8b830cda74729164736f6c634300081c0033608060405234801561001057600080fd5b50604051610a2b380380610a2b833981810160405281019061003291906101e2565b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100a55760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161009c919061021e565b60405180910390fd5b6100b4816100bb60201b60201c565b5050610239565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006101af82610184565b9050919050565b6101bf816101a4565b81146101ca57600080fd5b50565b6000815190506101dc816101b6565b92915050565b6000602082840312156101f8576101f761017f565b5b6000610206848285016101cd565b91505092915050565b610218816101a4565b82525050565b6000602082019050610233600083018461020f565b92915050565b6107e3806102486000396000f3fe60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610091578063ad3cb1cc146100ad578063f2fde38b146100d8575b600080fd5b34801561005b57600080fd5b50610064610101565b005b34801561007257600080fd5b5061007b610115565b604051610088919061040c565b60405180910390f35b6100ab60048036038101906100a691906105eb565b61013e565b005b3480156100b957600080fd5b506100c26101b9565b6040516100cf91906106d9565b60405180910390f35b3480156100e457600080fd5b506100ff60048036038101906100fa91906106fb565b6101f2565b005b610109610278565b61011360006102ff565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610146610278565b8273ffffffffffffffffffffffffffffffffffffffff16634f1ef2863484846040518463ffffffff1660e01b815260040161018292919061077d565b6000604051808303818588803b15801561019b57600080fd5b505af11580156101af573d6000803e3d6000fd5b5050505050505050565b6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6101fa610278565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361026c5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610263919061040c565b60405180910390fd5b610275816102ff565b50565b6102806103c3565b73ffffffffffffffffffffffffffffffffffffffff1661029e610115565b73ffffffffffffffffffffffffffffffffffffffff16146102fd576102c16103c3565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016102f4919061040c565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103f6826103cb565b9050919050565b610406816103eb565b82525050565b600060208201905061042160008301846103fd565b92915050565b6000604051905090565b600080fd5b600080fd5b6000610446826103eb565b9050919050565b6104568161043b565b811461046157600080fd5b50565b6000813590506104738161044d565b92915050565b610482816103eb565b811461048d57600080fd5b50565b60008135905061049f81610479565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6104f8826104af565b810181811067ffffffffffffffff82111715610517576105166104c0565b5b80604052505050565b600061052a610427565b905061053682826104ef565b919050565b600067ffffffffffffffff821115610556576105556104c0565b5b61055f826104af565b9050602081019050919050565b82818337600083830152505050565b600061058e6105898461053b565b610520565b9050828152602081018484840111156105aa576105a96104aa565b5b6105b584828561056c565b509392505050565b600082601f8301126105d2576105d16104a5565b5b81356105e284826020860161057b565b91505092915050565b60008060006060848603121561060457610603610431565b5b600061061286828701610464565b935050602061062386828701610490565b925050604084013567ffffffffffffffff81111561064457610643610436565b5b610650868287016105bd565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b60005b83811015610694578082015181840152602081019050610679565b60008484015250505050565b60006106ab8261065a565b6106b58185610665565b93506106c5818560208601610676565b6106ce816104af565b840191505092915050565b600060208201905081810360008301526106f381846106a0565b905092915050565b60006020828403121561071157610710610431565b5b600061071f84828501610490565b91505092915050565b600081519050919050565b600082825260208201905092915050565b600061074f82610728565b6107598185610733565b9350610769818560208601610676565b610772816104af565b840191505092915050565b600060408201905061079260008301856103fd565b81810360208301526107a48184610744565b9050939250505056fea26469706673582212207618fbcb2a391d05e882e2fcc53acd9c8d0257c7ed9e673b7bd1c2b353ab85fa64736f6c634300081c0033","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x1AE5 CODESIZE SUB DUP1 PUSH2 0x1AE5 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x25 SWAP2 SWAP1 PUSH2 0x74F JUMP JUMPDEST DUP3 DUP2 PUSH2 0x37 DUP3 DUP3 PUSH2 0xC4 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP POP DUP2 PUSH1 0x40 MLOAD PUSH2 0x46 SWAP1 PUSH2 0x56F JUMP JUMPDEST PUSH2 0x50 SWAP2 SWAP1 PUSH2 0x7CD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0x6C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x80 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP PUSH2 0xBC PUSH2 0xB1 PUSH2 0x149 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x153 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP POP POP PUSH2 0x86F JUMP JUMPDEST PUSH2 0xD3 DUP3 PUSH2 0x1AB PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x136 JUMPI PUSH2 0x130 DUP3 DUP3 PUSH2 0x27E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP PUSH2 0x145 JUMP JUMPDEST PUSH2 0x144 PUSH2 0x308 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH32 0x7E644D79422F17C01E4894B5F4F588D331EBFA28653D42AE832DC59E38C9798F PUSH2 0x182 PUSH2 0x345 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST DUP3 PUSH1 0x40 MLOAD PUSH2 0x191 SWAP3 SWAP2 SWAP1 PUSH2 0x7E8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0x1A8 DUP2 PUSH2 0x3A2 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE SUB PUSH2 0x207 JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x4C9C8CE300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1FE SWAP2 SWAP1 PUSH2 0x7CD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH2 0x23A PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC PUSH1 0x0 SHL PUSH2 0x48B PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH1 0x40 MLOAD PUSH2 0x2A8 SWAP2 SWAP1 PUSH2 0x858 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x2E3 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x2E8 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x2FE DUP6 DUP4 DUP4 PUSH2 0x495 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLVALUE GT ISZERO PUSH2 0x343 JUMPI PUSH1 0x40 MLOAD PUSH32 0xB398979F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH2 0x379 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 PUSH1 0x0 SHL PUSH2 0x48B PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x414 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x62E77BA200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x40B SWAP2 SWAP1 PUSH2 0x7CD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH2 0x447 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 PUSH1 0x0 SHL PUSH2 0x48B PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 DUP3 PUSH2 0x4B0 JUMPI PUSH2 0x4AB DUP3 PUSH2 0x52A PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x522 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD EQ DUP1 ISZERO PUSH2 0x4D8 JUMPI POP PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE EQ JUMPDEST ISZERO PUSH2 0x51A JUMPI DUP4 PUSH1 0x40 MLOAD PUSH32 0x9996B31500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x511 SWAP2 SWAP1 PUSH2 0x7CD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 SWAP1 POP PUSH2 0x523 JUMP JUMPDEST JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x53D JUMPI DUP1 MLOAD DUP1 DUP3 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x1425EA4200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xA2B DUP1 PUSH2 0x10BA DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5BB DUP3 PUSH2 0x590 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x5CB DUP2 PUSH2 0x5B0 JUMP JUMPDEST DUP2 EQ PUSH2 0x5D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x5E8 DUP2 PUSH2 0x5C2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x641 DUP3 PUSH2 0x5F8 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x660 JUMPI PUSH2 0x65F PUSH2 0x609 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x673 PUSH2 0x57C JUMP JUMPDEST SWAP1 POP PUSH2 0x67F DUP3 DUP3 PUSH2 0x638 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x69F JUMPI PUSH2 0x69E PUSH2 0x609 JUMP JUMPDEST JUMPDEST PUSH2 0x6A8 DUP3 PUSH2 0x5F8 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x6D3 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x6B8 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6F2 PUSH2 0x6ED DUP5 PUSH2 0x684 JUMP JUMPDEST PUSH2 0x669 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x70E JUMPI PUSH2 0x70D PUSH2 0x5F3 JUMP JUMPDEST JUMPDEST PUSH2 0x719 DUP5 DUP3 DUP6 PUSH2 0x6B5 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x736 JUMPI PUSH2 0x735 PUSH2 0x5EE JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH2 0x746 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x6DF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x768 JUMPI PUSH2 0x767 PUSH2 0x586 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x776 DUP7 DUP3 DUP8 ADD PUSH2 0x5D9 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x787 DUP7 DUP3 DUP8 ADD PUSH2 0x5D9 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x7A8 JUMPI PUSH2 0x7A7 PUSH2 0x58B JUMP JUMPDEST JUMPDEST PUSH2 0x7B4 DUP7 DUP3 DUP8 ADD PUSH2 0x721 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0x7C7 DUP2 PUSH2 0x5B0 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x7E2 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x7BE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x7FD PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x7BE JUMP JUMPDEST PUSH2 0x80A PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x7BE JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x832 DUP3 PUSH2 0x811 JUMP JUMPDEST PUSH2 0x83C DUP2 DUP6 PUSH2 0x81C JUMP JUMPDEST SWAP4 POP PUSH2 0x84C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x6B5 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x864 DUP3 DUP5 PUSH2 0x827 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x830 PUSH2 0x88A PUSH1 0x0 CODECOPY PUSH1 0x0 PUSH2 0x106 ADD MSTORE PUSH2 0x830 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH2 0xC PUSH2 0xE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x16 PUSH2 0x102 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xF7 JUMPI PUSH4 0x4F1EF286 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x0 CALLDATALOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0xEA JUMPI PUSH1 0x40 MLOAD PUSH32 0xD2B576EC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xF2 PUSH2 0x12A JUMP JUMPDEST PUSH2 0x100 JUMP JUMPDEST PUSH2 0xFF PUSH2 0x160 JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 CALLDATASIZE PUSH1 0x4 SWAP1 DUP1 SWAP3 PUSH2 0x141 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4F1 JUMP JUMPDEST DUP2 ADD SWAP1 PUSH2 0x14E SWAP2 SWAP1 PUSH2 0x6DA JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x15C DUP3 DUP3 PUSH2 0x172 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x170 PUSH2 0x16B PUSH2 0x1E5 JUMP JUMPDEST PUSH2 0x1F4 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x17B DUP3 PUSH2 0x21A JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x1D8 JUMPI PUSH2 0x1D2 DUP3 DUP3 PUSH2 0x2E7 JUMP JUMPDEST POP PUSH2 0x1E1 JUMP JUMPDEST PUSH2 0x1E0 PUSH2 0x36B JUMP JUMPDEST JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EF PUSH2 0x3A8 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST CALLDATASIZE PUSH1 0x0 DUP1 CALLDATACOPY PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x215 JUMPI RETURNDATASIZE PUSH1 0x0 RETURN JUMPDEST RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE SUB PUSH2 0x276 JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x4C9C8CE300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x26D SWAP2 SWAP1 PUSH2 0x757 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH2 0x2A3 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC PUSH1 0x0 SHL PUSH2 0x3FF JUMP JUMPDEST PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH1 0x40 MLOAD PUSH2 0x311 SWAP2 SWAP1 PUSH2 0x7E3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x34C JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x351 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x361 DUP6 DUP4 DUP4 PUSH2 0x409 JUMP JUMPDEST SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLVALUE GT ISZERO PUSH2 0x3A6 JUMPI PUSH1 0x40 MLOAD PUSH32 0xB398979F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3D6 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC PUSH1 0x0 SHL PUSH2 0x3FF JUMP JUMPDEST PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 DUP3 PUSH2 0x41E JUMPI PUSH2 0x419 DUP3 PUSH2 0x498 JUMP JUMPDEST PUSH2 0x490 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD EQ DUP1 ISZERO PUSH2 0x446 JUMPI POP PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE EQ JUMPDEST ISZERO PUSH2 0x488 JUMPI DUP4 PUSH1 0x40 MLOAD PUSH32 0x9996B31500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x47F SWAP2 SWAP1 PUSH2 0x757 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 SWAP1 POP PUSH2 0x491 JUMP JUMPDEST JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x4AB JUMPI DUP1 MLOAD DUP1 DUP3 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x1425EA4200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP6 DUP6 GT ISZERO PUSH2 0x505 JUMPI PUSH2 0x504 PUSH2 0x4E7 JUMP JUMPDEST JUMPDEST DUP4 DUP7 GT ISZERO PUSH2 0x516 JUMPI PUSH2 0x515 PUSH2 0x4EC JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP6 MUL DUP4 ADD SWAP2 POP DUP5 DUP7 SUB SWAP1 POP SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x561 DUP3 PUSH2 0x536 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x571 DUP2 PUSH2 0x556 JUMP JUMPDEST DUP2 EQ PUSH2 0x57C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x58E DUP2 PUSH2 0x568 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x5E7 DUP3 PUSH2 0x59E JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x606 JUMPI PUSH2 0x605 PUSH2 0x5AF JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x619 PUSH2 0x4DD JUMP JUMPDEST SWAP1 POP PUSH2 0x625 DUP3 DUP3 PUSH2 0x5DE JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x645 JUMPI PUSH2 0x644 PUSH2 0x5AF JUMP JUMPDEST JUMPDEST PUSH2 0x64E DUP3 PUSH2 0x59E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x67D PUSH2 0x678 DUP5 PUSH2 0x62A JUMP JUMPDEST PUSH2 0x60F JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x699 JUMPI PUSH2 0x698 PUSH2 0x599 JUMP JUMPDEST JUMPDEST PUSH2 0x6A4 DUP5 DUP3 DUP6 PUSH2 0x65B JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x6C1 JUMPI PUSH2 0x6C0 PUSH2 0x594 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x6D1 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x66A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x6F1 JUMPI PUSH2 0x6F0 PUSH2 0x52C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x6FF DUP6 DUP3 DUP7 ADD PUSH2 0x57F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x720 JUMPI PUSH2 0x71F PUSH2 0x531 JUMP JUMPDEST JUMPDEST PUSH2 0x72C DUP6 DUP3 DUP7 ADD PUSH2 0x6AC JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x741 DUP3 PUSH2 0x536 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x751 DUP2 PUSH2 0x736 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x76C PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x748 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x7A6 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x78B JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7BD DUP3 PUSH2 0x772 JUMP JUMPDEST PUSH2 0x7C7 DUP2 DUP6 PUSH2 0x77D JUMP JUMPDEST SWAP4 POP PUSH2 0x7D7 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x788 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7EF DUP3 DUP5 PUSH2 0x7B2 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH12 0xE732332064E778AAC95F6093 NOT SELFBALANCE 0xBF ORIGIN DUP13 0xDA TIMESTAMP 0xBD 0x2E 0xC2 DUP12 PUSH31 0x8B830CDA74729164736F6C634300081C003360806040523480156100105760 STOP DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0xA2B CODESIZE SUB DUP1 PUSH2 0xA2B DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x32 SWAP2 SWAP1 PUSH2 0x1E2 JUMP JUMPDEST DUP1 PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA5 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9C SWAP2 SWAP1 PUSH2 0x21E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xB4 DUP2 PUSH2 0xBB PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP POP PUSH2 0x239 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1AF DUP3 PUSH2 0x184 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1BF DUP2 PUSH2 0x1A4 JUMP JUMPDEST DUP2 EQ PUSH2 0x1CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1DC DUP2 PUSH2 0x1B6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1F8 JUMPI PUSH2 0x1F7 PUSH2 0x17F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x206 DUP5 DUP3 DUP6 ADD PUSH2 0x1CD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x218 DUP2 PUSH2 0x1A4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x233 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x20F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x7E3 DUP1 PUSH2 0x248 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4A JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x715018A6 EQ PUSH2 0x4F JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x66 JUMPI DUP1 PUSH4 0x9623609D EQ PUSH2 0x91 JUMPI DUP1 PUSH4 0xAD3CB1CC EQ PUSH2 0xAD JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xD8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x64 PUSH2 0x101 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7B PUSH2 0x115 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x88 SWAP2 SWAP1 PUSH2 0x40C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xAB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xA6 SWAP2 SWAP1 PUSH2 0x5EB JUMP JUMPDEST PUSH2 0x13E JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC2 PUSH2 0x1B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCF SWAP2 SWAP1 PUSH2 0x6D9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xE4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xFF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xFA SWAP2 SWAP1 PUSH2 0x6FB JUMP JUMPDEST PUSH2 0x1F2 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x109 PUSH2 0x278 JUMP JUMPDEST PUSH2 0x113 PUSH1 0x0 PUSH2 0x2FF JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x146 PUSH2 0x278 JUMP JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4F1EF286 CALLVALUE DUP5 DUP5 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x182 SWAP3 SWAP2 SWAP1 PUSH2 0x77D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x19B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1AF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x352E302E30000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x1FA PUSH2 0x278 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x26C JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x263 SWAP2 SWAP1 PUSH2 0x40C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x275 DUP2 PUSH2 0x2FF JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x280 PUSH2 0x3C3 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x29E PUSH2 0x115 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x2FD JUMPI PUSH2 0x2C1 PUSH2 0x3C3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x118CDAA700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2F4 SWAP2 SWAP1 PUSH2 0x40C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3F6 DUP3 PUSH2 0x3CB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x406 DUP2 PUSH2 0x3EB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x421 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x3FD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x446 DUP3 PUSH2 0x3EB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x456 DUP2 PUSH2 0x43B JUMP JUMPDEST DUP2 EQ PUSH2 0x461 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x473 DUP2 PUSH2 0x44D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x482 DUP2 PUSH2 0x3EB JUMP JUMPDEST DUP2 EQ PUSH2 0x48D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x49F DUP2 PUSH2 0x479 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x4F8 DUP3 PUSH2 0x4AF JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x517 JUMPI PUSH2 0x516 PUSH2 0x4C0 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x52A PUSH2 0x427 JUMP JUMPDEST SWAP1 POP PUSH2 0x536 DUP3 DUP3 PUSH2 0x4EF JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x556 JUMPI PUSH2 0x555 PUSH2 0x4C0 JUMP JUMPDEST JUMPDEST PUSH2 0x55F DUP3 PUSH2 0x4AF JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x58E PUSH2 0x589 DUP5 PUSH2 0x53B JUMP JUMPDEST PUSH2 0x520 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x5AA JUMPI PUSH2 0x5A9 PUSH2 0x4AA JUMP JUMPDEST JUMPDEST PUSH2 0x5B5 DUP5 DUP3 DUP6 PUSH2 0x56C JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x5D2 JUMPI PUSH2 0x5D1 PUSH2 0x4A5 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x5E2 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x57B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x604 JUMPI PUSH2 0x603 PUSH2 0x431 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x612 DUP7 DUP3 DUP8 ADD PUSH2 0x464 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x623 DUP7 DUP3 DUP8 ADD PUSH2 0x490 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x644 JUMPI PUSH2 0x643 PUSH2 0x436 JUMP JUMPDEST JUMPDEST PUSH2 0x650 DUP7 DUP3 DUP8 ADD PUSH2 0x5BD JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x694 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x679 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6AB DUP3 PUSH2 0x65A JUMP JUMPDEST PUSH2 0x6B5 DUP2 DUP6 PUSH2 0x665 JUMP JUMPDEST SWAP4 POP PUSH2 0x6C5 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x676 JUMP JUMPDEST PUSH2 0x6CE DUP2 PUSH2 0x4AF JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x6F3 DUP2 DUP5 PUSH2 0x6A0 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x711 JUMPI PUSH2 0x710 PUSH2 0x431 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x71F DUP5 DUP3 DUP6 ADD PUSH2 0x490 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x74F DUP3 PUSH2 0x728 JUMP JUMPDEST PUSH2 0x759 DUP2 DUP6 PUSH2 0x733 JUMP JUMPDEST SWAP4 POP PUSH2 0x769 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x676 JUMP JUMPDEST PUSH2 0x772 DUP2 PUSH2 0x4AF JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x792 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x3FD JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x7A4 DUP2 DUP5 PUSH2 0x744 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH23 0x18FBCB2A391D05E882E2FCC53ACD9C8D0257C7ED9E673B PUSH28 0xD1C2B353AB85FA64736F6C634300081C003300000000000000000000 ","sourceMap":"261621:2226:0:-:0;;;262464:296;;;;;;;;;;;;;;;;;;;;;:::i;:::-;262555:6;262563:5;252961:52;252991:14;253007:5;252961:29;;;:52;;:::i;:::-;252887:133;;262612:12:::1;262597:28;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;262580:46;;;;;;;;::::0;::::1;262714:39;262739:13;:11;;;:13;;:::i;:::-;262714:24;;;:39;;:::i;:::-;262464:296:::0;;;261621:2226;;235757:335;235848:37;235867:17;235848:18;;;:37;;:::i;:::-;235909:17;235900:27;;;;;;;;;;;;235956:1;235942:4;:11;:15;235938:148;;;235973:53;236002:17;236021:4;235973:28;;;:53;;:::i;:::-;;235938:148;;;236057:18;:16;;;:18;;:::i;:::-;235938:148;235757:335;;:::o;262827:88::-;262876:7;262902:6;;262895:13;;262827:88;:::o;237309:133::-;237372:34;237385:10;:8;;;:10;;:::i;:::-;237397:8;237372:34;;;;;;;:::i;:::-;;;;;;;;237416:19;237426:8;237416:9;;;:19;;:::i;:::-;237309:133;:::o;235164:281::-;235274:1;235241:17;:29;;;:34;235237:119;;235327:17;235298:47;;;;;;;;;;;:::i;:::-;;;;;;;;235237:119;235421:17;235365:47;234305:66;235392:19;;235365:26;;;:47;;:::i;:::-;:53;;;:73;;;;;;;;;;;;;;;;;;235164:281;:::o;173209:253::-;173292:12;173317;173331:23;173358:6;:19;;173378:4;173358:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;173316:67;;;;173400:55;173427:6;173435:7;173444:10;173400:26;;;:55;;:::i;:::-;173393:62;;;;173209:253;;;;:::o;239576:122::-;239638:1;239626:9;:13;239622:70;;;239662:19;;;;;;;;;;;;;;239622:70;239576:122::o;236770:120::-;236813:7;236839:38;236352:66;236866:10;;236839:26;;;:38;;:::i;:::-;:44;;;;;;;;;;;;236832:51;;236770:120;:::o;236972:217::-;237051:1;237031:22;;:8;:22;;;237027:91;;237104:1;237076:31;;;;;;;;;;;:::i;:::-;;;;;;;;237027:91;237174:8;237127:38;236352:66;237154:10;;237127:26;;;:38;;:::i;:::-;:44;;;:55;;;;;;;;;;;;;;;;;;236972:217;:::o;178098:190::-;178159:21;178268:4;178258:14;;178098:190;;;:::o;173728:582::-;173872:12;173901:7;173896:408;;173924:19;173932:10;173924:7;;;:19;;:::i;:::-;173896:408;;;174169:1;174148:10;:17;:22;:49;;;;;174196:1;174174:6;:18;;;:23;174148:49;174144:119;;;174241:6;174224:24;;;;;;;;;;;:::i;:::-;;;;;;;;174144:119;174283:10;174276:17;;;;173896:408;173728:582;;;;;;:::o;174846:516::-;174997:1;174977:10;:17;:21;174973:383;;;175205:10;175199:17;175261:15;175248:10;175244:2;175240:19;175233:44;174973:383;175328:17;;;;;;;;;;;;;;261621:2226;;;;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:117::-;954:1;951;944:12;968:117;1077:1;1074;1067:12;1091:102;1132:6;1183:2;1179:7;1174:2;1167:5;1163:14;1159:28;1149:38;;1091:102;;;:::o;1199:180::-;1247:77;1244:1;1237:88;1344:4;1341:1;1334:15;1368:4;1365:1;1358:15;1385:281;1468:27;1490:4;1468:27;:::i;:::-;1460:6;1456:40;1598:6;1586:10;1583:22;1562:18;1550:10;1547:34;1544:62;1541:88;;;1609:18;;:::i;:::-;1541:88;1649:10;1645:2;1638:22;1428:238;1385:281;;:::o;1672:129::-;1706:6;1733:20;;:::i;:::-;1723:30;;1762:33;1790:4;1782:6;1762:33;:::i;:::-;1672:129;;;:::o;1807:307::-;1868:4;1958:18;1950:6;1947:30;1944:56;;;1980:18;;:::i;:::-;1944:56;2018:29;2040:6;2018:29;:::i;:::-;2010:37;;2102:4;2096;2092:15;2084:23;;1807:307;;;:::o;2120:248::-;2202:1;2212:113;2226:6;2223:1;2220:13;2212:113;;;2311:1;2306:3;2302:11;2296:18;2292:1;2287:3;2283:11;2276:39;2248:2;2245:1;2241:10;2236:15;;2212:113;;;2359:1;2350:6;2345:3;2341:16;2334:27;2182:186;2120:248;;;:::o;2374:432::-;2462:5;2487:65;2503:48;2544:6;2503:48;:::i;:::-;2487:65;:::i;:::-;2478:74;;2575:6;2568:5;2561:21;2613:4;2606:5;2602:16;2651:3;2642:6;2637:3;2633:16;2630:25;2627:112;;;2658:79;;:::i;:::-;2627:112;2748:52;2793:6;2788:3;2783;2748:52;:::i;:::-;2468:338;2374:432;;;;;:::o;2825:353::-;2891:5;2940:3;2933:4;2925:6;2921:17;2917:27;2907:122;;2948:79;;:::i;:::-;2907:122;3058:6;3052:13;3083:89;3168:3;3160:6;3153:4;3145:6;3141:17;3083:89;:::i;:::-;3074:98;;2897:281;2825:353;;;;:::o;3184:834::-;3281:6;3289;3297;3346:2;3334:9;3325:7;3321:23;3317:32;3314:119;;;3352:79;;:::i;:::-;3314:119;3472:1;3497:64;3553:7;3544:6;3533:9;3529:22;3497:64;:::i;:::-;3487:74;;3443:128;3610:2;3636:64;3692:7;3683:6;3672:9;3668:22;3636:64;:::i;:::-;3626:74;;3581:129;3770:2;3759:9;3755:18;3749:25;3801:18;3793:6;3790:30;3787:117;;;3823:79;;:::i;:::-;3787:117;3928:73;3993:7;3984:6;3973:9;3969:22;3928:73;:::i;:::-;3918:83;;3720:291;3184:834;;;;;:::o;4024:118::-;4111:24;4129:5;4111:24;:::i;:::-;4106:3;4099:37;4024:118;;:::o;4148:222::-;4241:4;4279:2;4268:9;4264:18;4256:26;;4292:71;4360:1;4349:9;4345:17;4336:6;4292:71;:::i;:::-;4148:222;;;;:::o;4376:332::-;4497:4;4535:2;4524:9;4520:18;4512:26;;4548:71;4616:1;4605:9;4601:17;4592:6;4548:71;:::i;:::-;4629:72;4697:2;4686:9;4682:18;4673:6;4629:72;:::i;:::-;4376:332;;;;;:::o;4714:98::-;4765:6;4799:5;4793:12;4783:22;;4714:98;;;:::o;4818:147::-;4919:11;4956:3;4941:18;;4818:147;;;;:::o;4971:386::-;5075:3;5103:38;5135:5;5103:38;:::i;:::-;5157:88;5238:6;5233:3;5157:88;:::i;:::-;5150:95;;5254:65;5312:6;5307:3;5300:4;5293:5;5289:16;5254:65;:::i;:::-;5344:6;5339:3;5335:16;5328:23;;5079:278;4971:386;;;;:::o;5363:271::-;5493:3;5515:93;5604:3;5595:6;5515:93;:::i;:::-;5508:100;;5625:3;5618:10;;5363:271;;;;:::o;261621:2226:0:-;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_12211":{"entryPoint":null,"id":12211,"parameterSlots":0,"returnSlots":0},"@_checkNonPayable_16373":{"entryPoint":875,"id":16373,"parameterSlots":0,"returnSlots":0},"@_delegate_12187":{"entryPoint":500,"id":12187,"parameterSlots":1,"returnSlots":0},"@_dispatchUpgradeToAndCall_17459":{"entryPoint":298,"id":17459,"parameterSlots":0,"returnSlots":0},"@_fallback_12203":{"entryPoint":352,"id":12203,"parameterSlots":0,"returnSlots":0},"@_fallback_17430":{"entryPoint":14,"id":17430,"parameterSlots":0,"returnSlots":0},"@_implementation_17242":{"entryPoint":485,"id":17242,"parameterSlots":0,"returnSlots":1},"@_proxyAdmin_17396":{"entryPoint":258,"id":17396,"parameterSlots":0,"returnSlots":1},"@_revert_12470":{"entryPoint":1176,"id":12470,"parameterSlots":1,"returnSlots":0},"@_setImplementation_16159":{"entryPoint":538,"id":16159,"parameterSlots":1,"returnSlots":0},"@functionDelegateCall_12390":{"entryPoint":743,"id":12390,"parameterSlots":2,"returnSlots":1},"@getAddressSlot_12529":{"entryPoint":1023,"id":12529,"parameterSlots":1,"returnSlots":1},"@getImplementation_16132":{"entryPoint":936,"id":16132,"parameterSlots":0,"returnSlots":1},"@upgradeToAndCall_16193":{"entryPoint":370,"id":16193,"parameterSlots":2,"returnSlots":0},"@verifyCallResultFromTarget_12430":{"entryPoint":1033,"id":12430,"parameterSlots":3,"returnSlots":1},"abi_decode_available_length_t_bytes_memory_ptr":{"entryPoint":1642,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address_payable":{"entryPoint":1407,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_memory_ptr":{"entryPoint":1708,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_payablet_bytes_memory_ptr":{"entryPoint":1754,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":1864,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":1970,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":2019,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":1879,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":1551,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":1245,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":1578,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":1906,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":1917,"id":null,"parameterSlots":2,"returnSlots":1},"calldata_array_index_range_access_t_bytes_calldata_ptr":{"entryPoint":1265,"id":null,"parameterSlots":4,"returnSlots":2},"cleanup_t_address":{"entryPoint":1846,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_address_payable":{"entryPoint":1366,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":1334,"id":null,"parameterSlots":1,"returnSlots":1},"copy_calldata_to_memory_with_cleanup":{"entryPoint":1627,"id":null,"parameterSlots":3,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":1928,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":1502,"id":null,"parameterSlots":2,"returnSlots":0},"panic_error_0x41":{"entryPoint":1455,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":1428,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_46e3e63c93837e9efa638abb3b4e76ced8c11259a873f1381a0abdf6ae6a823c":{"entryPoint":1260,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_7678404c0552a58cf14944d1a786cf4c81aab3563e2735cb332aee47bbb57c4a":{"entryPoint":1255,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":1433,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":1329,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":1324,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":1438,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_address_payable":{"entryPoint":1384,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:6122:1","nodeType":"YulBlock","src":"0:6122:1","statements":[{"body":{"nativeSrc":"47:35:1","nodeType":"YulBlock","src":"47:35:1","statements":[{"nativeSrc":"57:19:1","nodeType":"YulAssignment","src":"57:19:1","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:1","nodeType":"YulLiteral","src":"73:2:1","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:1","nodeType":"YulIdentifier","src":"67:5:1"},"nativeSrc":"67:9:1","nodeType":"YulFunctionCall","src":"67:9:1"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:1","nodeType":"YulIdentifier","src":"57:6:1"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:1","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:1","nodeType":"YulTypedName","src":"40:6:1","type":""}],"src":"7:75:1"},{"body":{"nativeSrc":"177:28:1","nodeType":"YulBlock","src":"177:28:1","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:1","nodeType":"YulLiteral","src":"194:1:1","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:1","nodeType":"YulLiteral","src":"197:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:1","nodeType":"YulIdentifier","src":"187:6:1"},"nativeSrc":"187:12:1","nodeType":"YulFunctionCall","src":"187:12:1"},"nativeSrc":"187:12:1","nodeType":"YulExpressionStatement","src":"187:12:1"}]},"name":"revert_error_7678404c0552a58cf14944d1a786cf4c81aab3563e2735cb332aee47bbb57c4a","nativeSrc":"88:117:1","nodeType":"YulFunctionDefinition","src":"88:117:1"},{"body":{"nativeSrc":"300:28:1","nodeType":"YulBlock","src":"300:28:1","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:1","nodeType":"YulLiteral","src":"317:1:1","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:1","nodeType":"YulLiteral","src":"320:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:1","nodeType":"YulIdentifier","src":"310:6:1"},"nativeSrc":"310:12:1","nodeType":"YulFunctionCall","src":"310:12:1"},"nativeSrc":"310:12:1","nodeType":"YulExpressionStatement","src":"310:12:1"}]},"name":"revert_error_46e3e63c93837e9efa638abb3b4e76ced8c11259a873f1381a0abdf6ae6a823c","nativeSrc":"211:117:1","nodeType":"YulFunctionDefinition","src":"211:117:1"},{"body":{"nativeSrc":"460:343:1","nodeType":"YulBlock","src":"460:343:1","statements":[{"body":{"nativeSrc":"498:83:1","nodeType":"YulBlock","src":"498:83:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_7678404c0552a58cf14944d1a786cf4c81aab3563e2735cb332aee47bbb57c4a","nativeSrc":"500:77:1","nodeType":"YulIdentifier","src":"500:77:1"},"nativeSrc":"500:79:1","nodeType":"YulFunctionCall","src":"500:79:1"},"nativeSrc":"500:79:1","nodeType":"YulExpressionStatement","src":"500:79:1"}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"476:10:1","nodeType":"YulIdentifier","src":"476:10:1"},{"name":"endIndex","nativeSrc":"488:8:1","nodeType":"YulIdentifier","src":"488:8:1"}],"functionName":{"name":"gt","nativeSrc":"473:2:1","nodeType":"YulIdentifier","src":"473:2:1"},"nativeSrc":"473:24:1","nodeType":"YulFunctionCall","src":"473:24:1"},"nativeSrc":"470:111:1","nodeType":"YulIf","src":"470:111:1"},{"body":{"nativeSrc":"614:83:1","nodeType":"YulBlock","src":"614:83:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_46e3e63c93837e9efa638abb3b4e76ced8c11259a873f1381a0abdf6ae6a823c","nativeSrc":"616:77:1","nodeType":"YulIdentifier","src":"616:77:1"},"nativeSrc":"616:79:1","nodeType":"YulFunctionCall","src":"616:79:1"},"nativeSrc":"616:79:1","nodeType":"YulExpressionStatement","src":"616:79:1"}]},"condition":{"arguments":[{"name":"endIndex","nativeSrc":"596:8:1","nodeType":"YulIdentifier","src":"596:8:1"},{"name":"length","nativeSrc":"606:6:1","nodeType":"YulIdentifier","src":"606:6:1"}],"functionName":{"name":"gt","nativeSrc":"593:2:1","nodeType":"YulIdentifier","src":"593:2:1"},"nativeSrc":"593:20:1","nodeType":"YulFunctionCall","src":"593:20:1"},"nativeSrc":"590:107:1","nodeType":"YulIf","src":"590:107:1"},{"nativeSrc":"706:44:1","nodeType":"YulAssignment","src":"706:44:1","value":{"arguments":[{"name":"offset","nativeSrc":"723:6:1","nodeType":"YulIdentifier","src":"723:6:1"},{"arguments":[{"name":"startIndex","nativeSrc":"735:10:1","nodeType":"YulIdentifier","src":"735:10:1"},{"kind":"number","nativeSrc":"747:1:1","nodeType":"YulLiteral","src":"747:1:1","type":"","value":"1"}],"functionName":{"name":"mul","nativeSrc":"731:3:1","nodeType":"YulIdentifier","src":"731:3:1"},"nativeSrc":"731:18:1","nodeType":"YulFunctionCall","src":"731:18:1"}],"functionName":{"name":"add","nativeSrc":"719:3:1","nodeType":"YulIdentifier","src":"719:3:1"},"nativeSrc":"719:31:1","nodeType":"YulFunctionCall","src":"719:31:1"},"variableNames":[{"name":"offsetOut","nativeSrc":"706:9:1","nodeType":"YulIdentifier","src":"706:9:1"}]},{"nativeSrc":"759:38:1","nodeType":"YulAssignment","src":"759:38:1","value":{"arguments":[{"name":"endIndex","nativeSrc":"776:8:1","nodeType":"YulIdentifier","src":"776:8:1"},{"name":"startIndex","nativeSrc":"786:10:1","nodeType":"YulIdentifier","src":"786:10:1"}],"functionName":{"name":"sub","nativeSrc":"772:3:1","nodeType":"YulIdentifier","src":"772:3:1"},"nativeSrc":"772:25:1","nodeType":"YulFunctionCall","src":"772:25:1"},"variableNames":[{"name":"lengthOut","nativeSrc":"759:9:1","nodeType":"YulIdentifier","src":"759:9:1"}]}]},"name":"calldata_array_index_range_access_t_bytes_calldata_ptr","nativeSrc":"334:469:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"398:6:1","nodeType":"YulTypedName","src":"398:6:1","type":""},{"name":"length","nativeSrc":"406:6:1","nodeType":"YulTypedName","src":"406:6:1","type":""},{"name":"startIndex","nativeSrc":"414:10:1","nodeType":"YulTypedName","src":"414:10:1","type":""},{"name":"endIndex","nativeSrc":"426:8:1","nodeType":"YulTypedName","src":"426:8:1","type":""}],"returnVariables":[{"name":"offsetOut","nativeSrc":"439:9:1","nodeType":"YulTypedName","src":"439:9:1","type":""},{"name":"lengthOut","nativeSrc":"450:9:1","nodeType":"YulTypedName","src":"450:9:1","type":""}],"src":"334:469:1"},{"body":{"nativeSrc":"898:28:1","nodeType":"YulBlock","src":"898:28:1","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"915:1:1","nodeType":"YulLiteral","src":"915:1:1","type":"","value":"0"},{"kind":"number","nativeSrc":"918:1:1","nodeType":"YulLiteral","src":"918:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"908:6:1","nodeType":"YulIdentifier","src":"908:6:1"},"nativeSrc":"908:12:1","nodeType":"YulFunctionCall","src":"908:12:1"},"nativeSrc":"908:12:1","nodeType":"YulExpressionStatement","src":"908:12:1"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"809:117:1","nodeType":"YulFunctionDefinition","src":"809:117:1"},{"body":{"nativeSrc":"1021:28:1","nodeType":"YulBlock","src":"1021:28:1","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1038:1:1","nodeType":"YulLiteral","src":"1038:1:1","type":"","value":"0"},{"kind":"number","nativeSrc":"1041:1:1","nodeType":"YulLiteral","src":"1041:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1031:6:1","nodeType":"YulIdentifier","src":"1031:6:1"},"nativeSrc":"1031:12:1","nodeType":"YulFunctionCall","src":"1031:12:1"},"nativeSrc":"1031:12:1","nodeType":"YulExpressionStatement","src":"1031:12:1"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"932:117:1","nodeType":"YulFunctionDefinition","src":"932:117:1"},{"body":{"nativeSrc":"1100:81:1","nodeType":"YulBlock","src":"1100:81:1","statements":[{"nativeSrc":"1110:65:1","nodeType":"YulAssignment","src":"1110:65:1","value":{"arguments":[{"name":"value","nativeSrc":"1125:5:1","nodeType":"YulIdentifier","src":"1125:5:1"},{"kind":"number","nativeSrc":"1132:42:1","nodeType":"YulLiteral","src":"1132:42:1","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"1121:3:1","nodeType":"YulIdentifier","src":"1121:3:1"},"nativeSrc":"1121:54:1","nodeType":"YulFunctionCall","src":"1121:54:1"},"variableNames":[{"name":"cleaned","nativeSrc":"1110:7:1","nodeType":"YulIdentifier","src":"1110:7:1"}]}]},"name":"cleanup_t_uint160","nativeSrc":"1055:126:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1082:5:1","nodeType":"YulTypedName","src":"1082:5:1","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1092:7:1","nodeType":"YulTypedName","src":"1092:7:1","type":""}],"src":"1055:126:1"},{"body":{"nativeSrc":"1240:51:1","nodeType":"YulBlock","src":"1240:51:1","statements":[{"nativeSrc":"1250:35:1","nodeType":"YulAssignment","src":"1250:35:1","value":{"arguments":[{"name":"value","nativeSrc":"1279:5:1","nodeType":"YulIdentifier","src":"1279:5:1"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"1261:17:1","nodeType":"YulIdentifier","src":"1261:17:1"},"nativeSrc":"1261:24:1","nodeType":"YulFunctionCall","src":"1261:24:1"},"variableNames":[{"name":"cleaned","nativeSrc":"1250:7:1","nodeType":"YulIdentifier","src":"1250:7:1"}]}]},"name":"cleanup_t_address_payable","nativeSrc":"1187:104:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1222:5:1","nodeType":"YulTypedName","src":"1222:5:1","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1232:7:1","nodeType":"YulTypedName","src":"1232:7:1","type":""}],"src":"1187:104:1"},{"body":{"nativeSrc":"1348:87:1","nodeType":"YulBlock","src":"1348:87:1","statements":[{"body":{"nativeSrc":"1413:16:1","nodeType":"YulBlock","src":"1413:16:1","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1422:1:1","nodeType":"YulLiteral","src":"1422:1:1","type":"","value":"0"},{"kind":"number","nativeSrc":"1425:1:1","nodeType":"YulLiteral","src":"1425:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1415:6:1","nodeType":"YulIdentifier","src":"1415:6:1"},"nativeSrc":"1415:12:1","nodeType":"YulFunctionCall","src":"1415:12:1"},"nativeSrc":"1415:12:1","nodeType":"YulExpressionStatement","src":"1415:12:1"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1371:5:1","nodeType":"YulIdentifier","src":"1371:5:1"},{"arguments":[{"name":"value","nativeSrc":"1404:5:1","nodeType":"YulIdentifier","src":"1404:5:1"}],"functionName":{"name":"cleanup_t_address_payable","nativeSrc":"1378:25:1","nodeType":"YulIdentifier","src":"1378:25:1"},"nativeSrc":"1378:32:1","nodeType":"YulFunctionCall","src":"1378:32:1"}],"functionName":{"name":"eq","nativeSrc":"1368:2:1","nodeType":"YulIdentifier","src":"1368:2:1"},"nativeSrc":"1368:43:1","nodeType":"YulFunctionCall","src":"1368:43:1"}],"functionName":{"name":"iszero","nativeSrc":"1361:6:1","nodeType":"YulIdentifier","src":"1361:6:1"},"nativeSrc":"1361:51:1","nodeType":"YulFunctionCall","src":"1361:51:1"},"nativeSrc":"1358:71:1","nodeType":"YulIf","src":"1358:71:1"}]},"name":"validator_revert_t_address_payable","nativeSrc":"1297:138:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1341:5:1","nodeType":"YulTypedName","src":"1341:5:1","type":""}],"src":"1297:138:1"},{"body":{"nativeSrc":"1501:95:1","nodeType":"YulBlock","src":"1501:95:1","statements":[{"nativeSrc":"1511:29:1","nodeType":"YulAssignment","src":"1511:29:1","value":{"arguments":[{"name":"offset","nativeSrc":"1533:6:1","nodeType":"YulIdentifier","src":"1533:6:1"}],"functionName":{"name":"calldataload","nativeSrc":"1520:12:1","nodeType":"YulIdentifier","src":"1520:12:1"},"nativeSrc":"1520:20:1","nodeType":"YulFunctionCall","src":"1520:20:1"},"variableNames":[{"name":"value","nativeSrc":"1511:5:1","nodeType":"YulIdentifier","src":"1511:5:1"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1584:5:1","nodeType":"YulIdentifier","src":"1584:5:1"}],"functionName":{"name":"validator_revert_t_address_payable","nativeSrc":"1549:34:1","nodeType":"YulIdentifier","src":"1549:34:1"},"nativeSrc":"1549:41:1","nodeType":"YulFunctionCall","src":"1549:41:1"},"nativeSrc":"1549:41:1","nodeType":"YulExpressionStatement","src":"1549:41:1"}]},"name":"abi_decode_t_address_payable","nativeSrc":"1441:155:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1479:6:1","nodeType":"YulTypedName","src":"1479:6:1","type":""},{"name":"end","nativeSrc":"1487:3:1","nodeType":"YulTypedName","src":"1487:3:1","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1495:5:1","nodeType":"YulTypedName","src":"1495:5:1","type":""}],"src":"1441:155:1"},{"body":{"nativeSrc":"1691:28:1","nodeType":"YulBlock","src":"1691:28:1","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1708:1:1","nodeType":"YulLiteral","src":"1708:1:1","type":"","value":"0"},{"kind":"number","nativeSrc":"1711:1:1","nodeType":"YulLiteral","src":"1711:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1701:6:1","nodeType":"YulIdentifier","src":"1701:6:1"},"nativeSrc":"1701:12:1","nodeType":"YulFunctionCall","src":"1701:12:1"},"nativeSrc":"1701:12:1","nodeType":"YulExpressionStatement","src":"1701:12:1"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"1602:117:1","nodeType":"YulFunctionDefinition","src":"1602:117:1"},{"body":{"nativeSrc":"1814:28:1","nodeType":"YulBlock","src":"1814:28:1","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1831:1:1","nodeType":"YulLiteral","src":"1831:1:1","type":"","value":"0"},{"kind":"number","nativeSrc":"1834:1:1","nodeType":"YulLiteral","src":"1834:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1824:6:1","nodeType":"YulIdentifier","src":"1824:6:1"},"nativeSrc":"1824:12:1","nodeType":"YulFunctionCall","src":"1824:12:1"},"nativeSrc":"1824:12:1","nodeType":"YulExpressionStatement","src":"1824:12:1"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"1725:117:1","nodeType":"YulFunctionDefinition","src":"1725:117:1"},{"body":{"nativeSrc":"1896:54:1","nodeType":"YulBlock","src":"1896:54:1","statements":[{"nativeSrc":"1906:38:1","nodeType":"YulAssignment","src":"1906:38:1","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1924:5:1","nodeType":"YulIdentifier","src":"1924:5:1"},{"kind":"number","nativeSrc":"1931:2:1","nodeType":"YulLiteral","src":"1931:2:1","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"1920:3:1","nodeType":"YulIdentifier","src":"1920:3:1"},"nativeSrc":"1920:14:1","nodeType":"YulFunctionCall","src":"1920:14:1"},{"arguments":[{"kind":"number","nativeSrc":"1940:2:1","nodeType":"YulLiteral","src":"1940:2:1","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"1936:3:1","nodeType":"YulIdentifier","src":"1936:3:1"},"nativeSrc":"1936:7:1","nodeType":"YulFunctionCall","src":"1936:7:1"}],"functionName":{"name":"and","nativeSrc":"1916:3:1","nodeType":"YulIdentifier","src":"1916:3:1"},"nativeSrc":"1916:28:1","nodeType":"YulFunctionCall","src":"1916:28:1"},"variableNames":[{"name":"result","nativeSrc":"1906:6:1","nodeType":"YulIdentifier","src":"1906:6:1"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"1848:102:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1879:5:1","nodeType":"YulTypedName","src":"1879:5:1","type":""}],"returnVariables":[{"name":"result","nativeSrc":"1889:6:1","nodeType":"YulTypedName","src":"1889:6:1","type":""}],"src":"1848:102:1"},{"body":{"nativeSrc":"1984:152:1","nodeType":"YulBlock","src":"1984:152:1","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2001:1:1","nodeType":"YulLiteral","src":"2001:1:1","type":"","value":"0"},{"kind":"number","nativeSrc":"2004:77:1","nodeType":"YulLiteral","src":"2004:77:1","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"1994:6:1","nodeType":"YulIdentifier","src":"1994:6:1"},"nativeSrc":"1994:88:1","nodeType":"YulFunctionCall","src":"1994:88:1"},"nativeSrc":"1994:88:1","nodeType":"YulExpressionStatement","src":"1994:88:1"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2098:1:1","nodeType":"YulLiteral","src":"2098:1:1","type":"","value":"4"},{"kind":"number","nativeSrc":"2101:4:1","nodeType":"YulLiteral","src":"2101:4:1","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"2091:6:1","nodeType":"YulIdentifier","src":"2091:6:1"},"nativeSrc":"2091:15:1","nodeType":"YulFunctionCall","src":"2091:15:1"},"nativeSrc":"2091:15:1","nodeType":"YulExpressionStatement","src":"2091:15:1"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2122:1:1","nodeType":"YulLiteral","src":"2122:1:1","type":"","value":"0"},{"kind":"number","nativeSrc":"2125:4:1","nodeType":"YulLiteral","src":"2125:4:1","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"2115:6:1","nodeType":"YulIdentifier","src":"2115:6:1"},"nativeSrc":"2115:15:1","nodeType":"YulFunctionCall","src":"2115:15:1"},"nativeSrc":"2115:15:1","nodeType":"YulExpressionStatement","src":"2115:15:1"}]},"name":"panic_error_0x41","nativeSrc":"1956:180:1","nodeType":"YulFunctionDefinition","src":"1956:180:1"},{"body":{"nativeSrc":"2185:238:1","nodeType":"YulBlock","src":"2185:238:1","statements":[{"nativeSrc":"2195:58:1","nodeType":"YulVariableDeclaration","src":"2195:58:1","value":{"arguments":[{"name":"memPtr","nativeSrc":"2217:6:1","nodeType":"YulIdentifier","src":"2217:6:1"},{"arguments":[{"name":"size","nativeSrc":"2247:4:1","nodeType":"YulIdentifier","src":"2247:4:1"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"2225:21:1","nodeType":"YulIdentifier","src":"2225:21:1"},"nativeSrc":"2225:27:1","nodeType":"YulFunctionCall","src":"2225:27:1"}],"functionName":{"name":"add","nativeSrc":"2213:3:1","nodeType":"YulIdentifier","src":"2213:3:1"},"nativeSrc":"2213:40:1","nodeType":"YulFunctionCall","src":"2213:40:1"},"variables":[{"name":"newFreePtr","nativeSrc":"2199:10:1","nodeType":"YulTypedName","src":"2199:10:1","type":""}]},{"body":{"nativeSrc":"2364:22:1","nodeType":"YulBlock","src":"2364:22:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"2366:16:1","nodeType":"YulIdentifier","src":"2366:16:1"},"nativeSrc":"2366:18:1","nodeType":"YulFunctionCall","src":"2366:18:1"},"nativeSrc":"2366:18:1","nodeType":"YulExpressionStatement","src":"2366:18:1"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"2307:10:1","nodeType":"YulIdentifier","src":"2307:10:1"},{"kind":"number","nativeSrc":"2319:18:1","nodeType":"YulLiteral","src":"2319:18:1","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2304:2:1","nodeType":"YulIdentifier","src":"2304:2:1"},"nativeSrc":"2304:34:1","nodeType":"YulFunctionCall","src":"2304:34:1"},{"arguments":[{"name":"newFreePtr","nativeSrc":"2343:10:1","nodeType":"YulIdentifier","src":"2343:10:1"},{"name":"memPtr","nativeSrc":"2355:6:1","nodeType":"YulIdentifier","src":"2355:6:1"}],"functionName":{"name":"lt","nativeSrc":"2340:2:1","nodeType":"YulIdentifier","src":"2340:2:1"},"nativeSrc":"2340:22:1","nodeType":"YulFunctionCall","src":"2340:22:1"}],"functionName":{"name":"or","nativeSrc":"2301:2:1","nodeType":"YulIdentifier","src":"2301:2:1"},"nativeSrc":"2301:62:1","nodeType":"YulFunctionCall","src":"2301:62:1"},"nativeSrc":"2298:88:1","nodeType":"YulIf","src":"2298:88:1"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2402:2:1","nodeType":"YulLiteral","src":"2402:2:1","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"2406:10:1","nodeType":"YulIdentifier","src":"2406:10:1"}],"functionName":{"name":"mstore","nativeSrc":"2395:6:1","nodeType":"YulIdentifier","src":"2395:6:1"},"nativeSrc":"2395:22:1","nodeType":"YulFunctionCall","src":"2395:22:1"},"nativeSrc":"2395:22:1","nodeType":"YulExpressionStatement","src":"2395:22:1"}]},"name":"finalize_allocation","nativeSrc":"2142:281:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"2171:6:1","nodeType":"YulTypedName","src":"2171:6:1","type":""},{"name":"size","nativeSrc":"2179:4:1","nodeType":"YulTypedName","src":"2179:4:1","type":""}],"src":"2142:281:1"},{"body":{"nativeSrc":"2470:88:1","nodeType":"YulBlock","src":"2470:88:1","statements":[{"nativeSrc":"2480:30:1","nodeType":"YulAssignment","src":"2480:30:1","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"2490:18:1","nodeType":"YulIdentifier","src":"2490:18:1"},"nativeSrc":"2490:20:1","nodeType":"YulFunctionCall","src":"2490:20:1"},"variableNames":[{"name":"memPtr","nativeSrc":"2480:6:1","nodeType":"YulIdentifier","src":"2480:6:1"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"2539:6:1","nodeType":"YulIdentifier","src":"2539:6:1"},{"name":"size","nativeSrc":"2547:4:1","nodeType":"YulIdentifier","src":"2547:4:1"}],"functionName":{"name":"finalize_allocation","nativeSrc":"2519:19:1","nodeType":"YulIdentifier","src":"2519:19:1"},"nativeSrc":"2519:33:1","nodeType":"YulFunctionCall","src":"2519:33:1"},"nativeSrc":"2519:33:1","nodeType":"YulExpressionStatement","src":"2519:33:1"}]},"name":"allocate_memory","nativeSrc":"2429:129:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"2454:4:1","nodeType":"YulTypedName","src":"2454:4:1","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"2463:6:1","nodeType":"YulTypedName","src":"2463:6:1","type":""}],"src":"2429:129:1"},{"body":{"nativeSrc":"2630:241:1","nodeType":"YulBlock","src":"2630:241:1","statements":[{"body":{"nativeSrc":"2735:22:1","nodeType":"YulBlock","src":"2735:22:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"2737:16:1","nodeType":"YulIdentifier","src":"2737:16:1"},"nativeSrc":"2737:18:1","nodeType":"YulFunctionCall","src":"2737:18:1"},"nativeSrc":"2737:18:1","nodeType":"YulExpressionStatement","src":"2737:18:1"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"2707:6:1","nodeType":"YulIdentifier","src":"2707:6:1"},{"kind":"number","nativeSrc":"2715:18:1","nodeType":"YulLiteral","src":"2715:18:1","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2704:2:1","nodeType":"YulIdentifier","src":"2704:2:1"},"nativeSrc":"2704:30:1","nodeType":"YulFunctionCall","src":"2704:30:1"},"nativeSrc":"2701:56:1","nodeType":"YulIf","src":"2701:56:1"},{"nativeSrc":"2767:37:1","nodeType":"YulAssignment","src":"2767:37:1","value":{"arguments":[{"name":"length","nativeSrc":"2797:6:1","nodeType":"YulIdentifier","src":"2797:6:1"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"2775:21:1","nodeType":"YulIdentifier","src":"2775:21:1"},"nativeSrc":"2775:29:1","nodeType":"YulFunctionCall","src":"2775:29:1"},"variableNames":[{"name":"size","nativeSrc":"2767:4:1","nodeType":"YulIdentifier","src":"2767:4:1"}]},{"nativeSrc":"2841:23:1","nodeType":"YulAssignment","src":"2841:23:1","value":{"arguments":[{"name":"size","nativeSrc":"2853:4:1","nodeType":"YulIdentifier","src":"2853:4:1"},{"kind":"number","nativeSrc":"2859:4:1","nodeType":"YulLiteral","src":"2859:4:1","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2849:3:1","nodeType":"YulIdentifier","src":"2849:3:1"},"nativeSrc":"2849:15:1","nodeType":"YulFunctionCall","src":"2849:15:1"},"variableNames":[{"name":"size","nativeSrc":"2841:4:1","nodeType":"YulIdentifier","src":"2841:4:1"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"2564:307:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"2614:6:1","nodeType":"YulTypedName","src":"2614:6:1","type":""}],"returnVariables":[{"name":"size","nativeSrc":"2625:4:1","nodeType":"YulTypedName","src":"2625:4:1","type":""}],"src":"2564:307:1"},{"body":{"nativeSrc":"2941:84:1","nodeType":"YulBlock","src":"2941:84:1","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"2965:3:1","nodeType":"YulIdentifier","src":"2965:3:1"},{"name":"src","nativeSrc":"2970:3:1","nodeType":"YulIdentifier","src":"2970:3:1"},{"name":"length","nativeSrc":"2975:6:1","nodeType":"YulIdentifier","src":"2975:6:1"}],"functionName":{"name":"calldatacopy","nativeSrc":"2952:12:1","nodeType":"YulIdentifier","src":"2952:12:1"},"nativeSrc":"2952:30:1","nodeType":"YulFunctionCall","src":"2952:30:1"},"nativeSrc":"2952:30:1","nodeType":"YulExpressionStatement","src":"2952:30:1"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"3002:3:1","nodeType":"YulIdentifier","src":"3002:3:1"},{"name":"length","nativeSrc":"3007:6:1","nodeType":"YulIdentifier","src":"3007:6:1"}],"functionName":{"name":"add","nativeSrc":"2998:3:1","nodeType":"YulIdentifier","src":"2998:3:1"},"nativeSrc":"2998:16:1","nodeType":"YulFunctionCall","src":"2998:16:1"},{"kind":"number","nativeSrc":"3016:1:1","nodeType":"YulLiteral","src":"3016:1:1","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"2991:6:1","nodeType":"YulIdentifier","src":"2991:6:1"},"nativeSrc":"2991:27:1","nodeType":"YulFunctionCall","src":"2991:27:1"},"nativeSrc":"2991:27:1","nodeType":"YulExpressionStatement","src":"2991:27:1"}]},"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"2877:148:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"2923:3:1","nodeType":"YulTypedName","src":"2923:3:1","type":""},{"name":"dst","nativeSrc":"2928:3:1","nodeType":"YulTypedName","src":"2928:3:1","type":""},{"name":"length","nativeSrc":"2933:6:1","nodeType":"YulTypedName","src":"2933:6:1","type":""}],"src":"2877:148:1"},{"body":{"nativeSrc":"3114:340:1","nodeType":"YulBlock","src":"3114:340:1","statements":[{"nativeSrc":"3124:74:1","nodeType":"YulAssignment","src":"3124:74:1","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"3190:6:1","nodeType":"YulIdentifier","src":"3190:6:1"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"3149:40:1","nodeType":"YulIdentifier","src":"3149:40:1"},"nativeSrc":"3149:48:1","nodeType":"YulFunctionCall","src":"3149:48:1"}],"functionName":{"name":"allocate_memory","nativeSrc":"3133:15:1","nodeType":"YulIdentifier","src":"3133:15:1"},"nativeSrc":"3133:65:1","nodeType":"YulFunctionCall","src":"3133:65:1"},"variableNames":[{"name":"array","nativeSrc":"3124:5:1","nodeType":"YulIdentifier","src":"3124:5:1"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"3214:5:1","nodeType":"YulIdentifier","src":"3214:5:1"},{"name":"length","nativeSrc":"3221:6:1","nodeType":"YulIdentifier","src":"3221:6:1"}],"functionName":{"name":"mstore","nativeSrc":"3207:6:1","nodeType":"YulIdentifier","src":"3207:6:1"},"nativeSrc":"3207:21:1","nodeType":"YulFunctionCall","src":"3207:21:1"},"nativeSrc":"3207:21:1","nodeType":"YulExpressionStatement","src":"3207:21:1"},{"nativeSrc":"3237:27:1","nodeType":"YulVariableDeclaration","src":"3237:27:1","value":{"arguments":[{"name":"array","nativeSrc":"3252:5:1","nodeType":"YulIdentifier","src":"3252:5:1"},{"kind":"number","nativeSrc":"3259:4:1","nodeType":"YulLiteral","src":"3259:4:1","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3248:3:1","nodeType":"YulIdentifier","src":"3248:3:1"},"nativeSrc":"3248:16:1","nodeType":"YulFunctionCall","src":"3248:16:1"},"variables":[{"name":"dst","nativeSrc":"3241:3:1","nodeType":"YulTypedName","src":"3241:3:1","type":""}]},{"body":{"nativeSrc":"3302:83:1","nodeType":"YulBlock","src":"3302:83:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"3304:77:1","nodeType":"YulIdentifier","src":"3304:77:1"},"nativeSrc":"3304:79:1","nodeType":"YulFunctionCall","src":"3304:79:1"},"nativeSrc":"3304:79:1","nodeType":"YulExpressionStatement","src":"3304:79:1"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"3283:3:1","nodeType":"YulIdentifier","src":"3283:3:1"},{"name":"length","nativeSrc":"3288:6:1","nodeType":"YulIdentifier","src":"3288:6:1"}],"functionName":{"name":"add","nativeSrc":"3279:3:1","nodeType":"YulIdentifier","src":"3279:3:1"},"nativeSrc":"3279:16:1","nodeType":"YulFunctionCall","src":"3279:16:1"},{"name":"end","nativeSrc":"3297:3:1","nodeType":"YulIdentifier","src":"3297:3:1"}],"functionName":{"name":"gt","nativeSrc":"3276:2:1","nodeType":"YulIdentifier","src":"3276:2:1"},"nativeSrc":"3276:25:1","nodeType":"YulFunctionCall","src":"3276:25:1"},"nativeSrc":"3273:112:1","nodeType":"YulIf","src":"3273:112:1"},{"expression":{"arguments":[{"name":"src","nativeSrc":"3431:3:1","nodeType":"YulIdentifier","src":"3431:3:1"},{"name":"dst","nativeSrc":"3436:3:1","nodeType":"YulIdentifier","src":"3436:3:1"},{"name":"length","nativeSrc":"3441:6:1","nodeType":"YulIdentifier","src":"3441:6:1"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"3394:36:1","nodeType":"YulIdentifier","src":"3394:36:1"},"nativeSrc":"3394:54:1","nodeType":"YulFunctionCall","src":"3394:54:1"},"nativeSrc":"3394:54:1","nodeType":"YulExpressionStatement","src":"3394:54:1"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"3031:423:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"3087:3:1","nodeType":"YulTypedName","src":"3087:3:1","type":""},{"name":"length","nativeSrc":"3092:6:1","nodeType":"YulTypedName","src":"3092:6:1","type":""},{"name":"end","nativeSrc":"3100:3:1","nodeType":"YulTypedName","src":"3100:3:1","type":""}],"returnVariables":[{"name":"array","nativeSrc":"3108:5:1","nodeType":"YulTypedName","src":"3108:5:1","type":""}],"src":"3031:423:1"},{"body":{"nativeSrc":"3534:277:1","nodeType":"YulBlock","src":"3534:277:1","statements":[{"body":{"nativeSrc":"3583:83:1","nodeType":"YulBlock","src":"3583:83:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"3585:77:1","nodeType":"YulIdentifier","src":"3585:77:1"},"nativeSrc":"3585:79:1","nodeType":"YulFunctionCall","src":"3585:79:1"},"nativeSrc":"3585:79:1","nodeType":"YulExpressionStatement","src":"3585:79:1"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3562:6:1","nodeType":"YulIdentifier","src":"3562:6:1"},{"kind":"number","nativeSrc":"3570:4:1","nodeType":"YulLiteral","src":"3570:4:1","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"3558:3:1","nodeType":"YulIdentifier","src":"3558:3:1"},"nativeSrc":"3558:17:1","nodeType":"YulFunctionCall","src":"3558:17:1"},{"name":"end","nativeSrc":"3577:3:1","nodeType":"YulIdentifier","src":"3577:3:1"}],"functionName":{"name":"slt","nativeSrc":"3554:3:1","nodeType":"YulIdentifier","src":"3554:3:1"},"nativeSrc":"3554:27:1","nodeType":"YulFunctionCall","src":"3554:27:1"}],"functionName":{"name":"iszero","nativeSrc":"3547:6:1","nodeType":"YulIdentifier","src":"3547:6:1"},"nativeSrc":"3547:35:1","nodeType":"YulFunctionCall","src":"3547:35:1"},"nativeSrc":"3544:122:1","nodeType":"YulIf","src":"3544:122:1"},{"nativeSrc":"3675:34:1","nodeType":"YulVariableDeclaration","src":"3675:34:1","value":{"arguments":[{"name":"offset","nativeSrc":"3702:6:1","nodeType":"YulIdentifier","src":"3702:6:1"}],"functionName":{"name":"calldataload","nativeSrc":"3689:12:1","nodeType":"YulIdentifier","src":"3689:12:1"},"nativeSrc":"3689:20:1","nodeType":"YulFunctionCall","src":"3689:20:1"},"variables":[{"name":"length","nativeSrc":"3679:6:1","nodeType":"YulTypedName","src":"3679:6:1","type":""}]},{"nativeSrc":"3718:87:1","nodeType":"YulAssignment","src":"3718:87:1","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3778:6:1","nodeType":"YulIdentifier","src":"3778:6:1"},{"kind":"number","nativeSrc":"3786:4:1","nodeType":"YulLiteral","src":"3786:4:1","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3774:3:1","nodeType":"YulIdentifier","src":"3774:3:1"},"nativeSrc":"3774:17:1","nodeType":"YulFunctionCall","src":"3774:17:1"},{"name":"length","nativeSrc":"3793:6:1","nodeType":"YulIdentifier","src":"3793:6:1"},{"name":"end","nativeSrc":"3801:3:1","nodeType":"YulIdentifier","src":"3801:3:1"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"3727:46:1","nodeType":"YulIdentifier","src":"3727:46:1"},"nativeSrc":"3727:78:1","nodeType":"YulFunctionCall","src":"3727:78:1"},"variableNames":[{"name":"array","nativeSrc":"3718:5:1","nodeType":"YulIdentifier","src":"3718:5:1"}]}]},"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"3473:338:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3512:6:1","nodeType":"YulTypedName","src":"3512:6:1","type":""},{"name":"end","nativeSrc":"3520:3:1","nodeType":"YulTypedName","src":"3520:3:1","type":""}],"returnVariables":[{"name":"array","nativeSrc":"3528:5:1","nodeType":"YulTypedName","src":"3528:5:1","type":""}],"src":"3473:338:1"},{"body":{"nativeSrc":"3917:568:1","nodeType":"YulBlock","src":"3917:568:1","statements":[{"body":{"nativeSrc":"3963:83:1","nodeType":"YulBlock","src":"3963:83:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3965:77:1","nodeType":"YulIdentifier","src":"3965:77:1"},"nativeSrc":"3965:79:1","nodeType":"YulFunctionCall","src":"3965:79:1"},"nativeSrc":"3965:79:1","nodeType":"YulExpressionStatement","src":"3965:79:1"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3938:7:1","nodeType":"YulIdentifier","src":"3938:7:1"},{"name":"headStart","nativeSrc":"3947:9:1","nodeType":"YulIdentifier","src":"3947:9:1"}],"functionName":{"name":"sub","nativeSrc":"3934:3:1","nodeType":"YulIdentifier","src":"3934:3:1"},"nativeSrc":"3934:23:1","nodeType":"YulFunctionCall","src":"3934:23:1"},{"kind":"number","nativeSrc":"3959:2:1","nodeType":"YulLiteral","src":"3959:2:1","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"3930:3:1","nodeType":"YulIdentifier","src":"3930:3:1"},"nativeSrc":"3930:32:1","nodeType":"YulFunctionCall","src":"3930:32:1"},"nativeSrc":"3927:119:1","nodeType":"YulIf","src":"3927:119:1"},{"nativeSrc":"4056:125:1","nodeType":"YulBlock","src":"4056:125:1","statements":[{"nativeSrc":"4071:15:1","nodeType":"YulVariableDeclaration","src":"4071:15:1","value":{"kind":"number","nativeSrc":"4085:1:1","nodeType":"YulLiteral","src":"4085:1:1","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"4075:6:1","nodeType":"YulTypedName","src":"4075:6:1","type":""}]},{"nativeSrc":"4100:71:1","nodeType":"YulAssignment","src":"4100:71:1","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4143:9:1","nodeType":"YulIdentifier","src":"4143:9:1"},{"name":"offset","nativeSrc":"4154:6:1","nodeType":"YulIdentifier","src":"4154:6:1"}],"functionName":{"name":"add","nativeSrc":"4139:3:1","nodeType":"YulIdentifier","src":"4139:3:1"},"nativeSrc":"4139:22:1","nodeType":"YulFunctionCall","src":"4139:22:1"},{"name":"dataEnd","nativeSrc":"4163:7:1","nodeType":"YulIdentifier","src":"4163:7:1"}],"functionName":{"name":"abi_decode_t_address_payable","nativeSrc":"4110:28:1","nodeType":"YulIdentifier","src":"4110:28:1"},"nativeSrc":"4110:61:1","nodeType":"YulFunctionCall","src":"4110:61:1"},"variableNames":[{"name":"value0","nativeSrc":"4100:6:1","nodeType":"YulIdentifier","src":"4100:6:1"}]}]},{"nativeSrc":"4191:287:1","nodeType":"YulBlock","src":"4191:287:1","statements":[{"nativeSrc":"4206:46:1","nodeType":"YulVariableDeclaration","src":"4206:46:1","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4237:9:1","nodeType":"YulIdentifier","src":"4237:9:1"},{"kind":"number","nativeSrc":"4248:2:1","nodeType":"YulLiteral","src":"4248:2:1","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4233:3:1","nodeType":"YulIdentifier","src":"4233:3:1"},"nativeSrc":"4233:18:1","nodeType":"YulFunctionCall","src":"4233:18:1"}],"functionName":{"name":"calldataload","nativeSrc":"4220:12:1","nodeType":"YulIdentifier","src":"4220:12:1"},"nativeSrc":"4220:32:1","nodeType":"YulFunctionCall","src":"4220:32:1"},"variables":[{"name":"offset","nativeSrc":"4210:6:1","nodeType":"YulTypedName","src":"4210:6:1","type":""}]},{"body":{"nativeSrc":"4299:83:1","nodeType":"YulBlock","src":"4299:83:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"4301:77:1","nodeType":"YulIdentifier","src":"4301:77:1"},"nativeSrc":"4301:79:1","nodeType":"YulFunctionCall","src":"4301:79:1"},"nativeSrc":"4301:79:1","nodeType":"YulExpressionStatement","src":"4301:79:1"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"4271:6:1","nodeType":"YulIdentifier","src":"4271:6:1"},{"kind":"number","nativeSrc":"4279:18:1","nodeType":"YulLiteral","src":"4279:18:1","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4268:2:1","nodeType":"YulIdentifier","src":"4268:2:1"},"nativeSrc":"4268:30:1","nodeType":"YulFunctionCall","src":"4268:30:1"},"nativeSrc":"4265:117:1","nodeType":"YulIf","src":"4265:117:1"},{"nativeSrc":"4396:72:1","nodeType":"YulAssignment","src":"4396:72:1","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4440:9:1","nodeType":"YulIdentifier","src":"4440:9:1"},{"name":"offset","nativeSrc":"4451:6:1","nodeType":"YulIdentifier","src":"4451:6:1"}],"functionName":{"name":"add","nativeSrc":"4436:3:1","nodeType":"YulIdentifier","src":"4436:3:1"},"nativeSrc":"4436:22:1","nodeType":"YulFunctionCall","src":"4436:22:1"},{"name":"dataEnd","nativeSrc":"4460:7:1","nodeType":"YulIdentifier","src":"4460:7:1"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"4406:29:1","nodeType":"YulIdentifier","src":"4406:29:1"},"nativeSrc":"4406:62:1","nodeType":"YulFunctionCall","src":"4406:62:1"},"variableNames":[{"name":"value1","nativeSrc":"4396:6:1","nodeType":"YulIdentifier","src":"4396:6:1"}]}]}]},"name":"abi_decode_tuple_t_address_payablet_bytes_memory_ptr","nativeSrc":"3817:668:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3879:9:1","nodeType":"YulTypedName","src":"3879:9:1","type":""},{"name":"dataEnd","nativeSrc":"3890:7:1","nodeType":"YulTypedName","src":"3890:7:1","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3902:6:1","nodeType":"YulTypedName","src":"3902:6:1","type":""},{"name":"value1","nativeSrc":"3910:6:1","nodeType":"YulTypedName","src":"3910:6:1","type":""}],"src":"3817:668:1"},{"body":{"nativeSrc":"4536:51:1","nodeType":"YulBlock","src":"4536:51:1","statements":[{"nativeSrc":"4546:35:1","nodeType":"YulAssignment","src":"4546:35:1","value":{"arguments":[{"name":"value","nativeSrc":"4575:5:1","nodeType":"YulIdentifier","src":"4575:5:1"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"4557:17:1","nodeType":"YulIdentifier","src":"4557:17:1"},"nativeSrc":"4557:24:1","nodeType":"YulFunctionCall","src":"4557:24:1"},"variableNames":[{"name":"cleaned","nativeSrc":"4546:7:1","nodeType":"YulIdentifier","src":"4546:7:1"}]}]},"name":"cleanup_t_address","nativeSrc":"4491:96:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4518:5:1","nodeType":"YulTypedName","src":"4518:5:1","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4528:7:1","nodeType":"YulTypedName","src":"4528:7:1","type":""}],"src":"4491:96:1"},{"body":{"nativeSrc":"4658:53:1","nodeType":"YulBlock","src":"4658:53:1","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4675:3:1","nodeType":"YulIdentifier","src":"4675:3:1"},{"arguments":[{"name":"value","nativeSrc":"4698:5:1","nodeType":"YulIdentifier","src":"4698:5:1"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"4680:17:1","nodeType":"YulIdentifier","src":"4680:17:1"},"nativeSrc":"4680:24:1","nodeType":"YulFunctionCall","src":"4680:24:1"}],"functionName":{"name":"mstore","nativeSrc":"4668:6:1","nodeType":"YulIdentifier","src":"4668:6:1"},"nativeSrc":"4668:37:1","nodeType":"YulFunctionCall","src":"4668:37:1"},"nativeSrc":"4668:37:1","nodeType":"YulExpressionStatement","src":"4668:37:1"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"4593:118:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4646:5:1","nodeType":"YulTypedName","src":"4646:5:1","type":""},{"name":"pos","nativeSrc":"4653:3:1","nodeType":"YulTypedName","src":"4653:3:1","type":""}],"src":"4593:118:1"},{"body":{"nativeSrc":"4815:124:1","nodeType":"YulBlock","src":"4815:124:1","statements":[{"nativeSrc":"4825:26:1","nodeType":"YulAssignment","src":"4825:26:1","value":{"arguments":[{"name":"headStart","nativeSrc":"4837:9:1","nodeType":"YulIdentifier","src":"4837:9:1"},{"kind":"number","nativeSrc":"4848:2:1","nodeType":"YulLiteral","src":"4848:2:1","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4833:3:1","nodeType":"YulIdentifier","src":"4833:3:1"},"nativeSrc":"4833:18:1","nodeType":"YulFunctionCall","src":"4833:18:1"},"variableNames":[{"name":"tail","nativeSrc":"4825:4:1","nodeType":"YulIdentifier","src":"4825:4:1"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4905:6:1","nodeType":"YulIdentifier","src":"4905:6:1"},{"arguments":[{"name":"headStart","nativeSrc":"4918:9:1","nodeType":"YulIdentifier","src":"4918:9:1"},{"kind":"number","nativeSrc":"4929:1:1","nodeType":"YulLiteral","src":"4929:1:1","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4914:3:1","nodeType":"YulIdentifier","src":"4914:3:1"},"nativeSrc":"4914:17:1","nodeType":"YulFunctionCall","src":"4914:17:1"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"4861:43:1","nodeType":"YulIdentifier","src":"4861:43:1"},"nativeSrc":"4861:71:1","nodeType":"YulFunctionCall","src":"4861:71:1"},"nativeSrc":"4861:71:1","nodeType":"YulExpressionStatement","src":"4861:71:1"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"4717:222:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4787:9:1","nodeType":"YulTypedName","src":"4787:9:1","type":""},{"name":"value0","nativeSrc":"4799:6:1","nodeType":"YulTypedName","src":"4799:6:1","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4810:4:1","nodeType":"YulTypedName","src":"4810:4:1","type":""}],"src":"4717:222:1"},{"body":{"nativeSrc":"5003:40:1","nodeType":"YulBlock","src":"5003:40:1","statements":[{"nativeSrc":"5014:22:1","nodeType":"YulAssignment","src":"5014:22:1","value":{"arguments":[{"name":"value","nativeSrc":"5030:5:1","nodeType":"YulIdentifier","src":"5030:5:1"}],"functionName":{"name":"mload","nativeSrc":"5024:5:1","nodeType":"YulIdentifier","src":"5024:5:1"},"nativeSrc":"5024:12:1","nodeType":"YulFunctionCall","src":"5024:12:1"},"variableNames":[{"name":"length","nativeSrc":"5014:6:1","nodeType":"YulIdentifier","src":"5014:6:1"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"4945:98:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4986:5:1","nodeType":"YulTypedName","src":"4986:5:1","type":""}],"returnVariables":[{"name":"length","nativeSrc":"4996:6:1","nodeType":"YulTypedName","src":"4996:6:1","type":""}],"src":"4945:98:1"},{"body":{"nativeSrc":"5162:34:1","nodeType":"YulBlock","src":"5162:34:1","statements":[{"nativeSrc":"5172:18:1","nodeType":"YulAssignment","src":"5172:18:1","value":{"name":"pos","nativeSrc":"5187:3:1","nodeType":"YulIdentifier","src":"5187:3:1"},"variableNames":[{"name":"updated_pos","nativeSrc":"5172:11:1","nodeType":"YulIdentifier","src":"5172:11:1"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"5049:147:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"5134:3:1","nodeType":"YulTypedName","src":"5134:3:1","type":""},{"name":"length","nativeSrc":"5139:6:1","nodeType":"YulTypedName","src":"5139:6:1","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"5150:11:1","nodeType":"YulTypedName","src":"5150:11:1","type":""}],"src":"5049:147:1"},{"body":{"nativeSrc":"5264:186:1","nodeType":"YulBlock","src":"5264:186:1","statements":[{"nativeSrc":"5275:10:1","nodeType":"YulVariableDeclaration","src":"5275:10:1","value":{"kind":"number","nativeSrc":"5284:1:1","nodeType":"YulLiteral","src":"5284:1:1","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"5279:1:1","nodeType":"YulTypedName","src":"5279:1:1","type":""}]},{"body":{"nativeSrc":"5344:63:1","nodeType":"YulBlock","src":"5344:63:1","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"5369:3:1","nodeType":"YulIdentifier","src":"5369:3:1"},{"name":"i","nativeSrc":"5374:1:1","nodeType":"YulIdentifier","src":"5374:1:1"}],"functionName":{"name":"add","nativeSrc":"5365:3:1","nodeType":"YulIdentifier","src":"5365:3:1"},"nativeSrc":"5365:11:1","nodeType":"YulFunctionCall","src":"5365:11:1"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"5388:3:1","nodeType":"YulIdentifier","src":"5388:3:1"},{"name":"i","nativeSrc":"5393:1:1","nodeType":"YulIdentifier","src":"5393:1:1"}],"functionName":{"name":"add","nativeSrc":"5384:3:1","nodeType":"YulIdentifier","src":"5384:3:1"},"nativeSrc":"5384:11:1","nodeType":"YulFunctionCall","src":"5384:11:1"}],"functionName":{"name":"mload","nativeSrc":"5378:5:1","nodeType":"YulIdentifier","src":"5378:5:1"},"nativeSrc":"5378:18:1","nodeType":"YulFunctionCall","src":"5378:18:1"}],"functionName":{"name":"mstore","nativeSrc":"5358:6:1","nodeType":"YulIdentifier","src":"5358:6:1"},"nativeSrc":"5358:39:1","nodeType":"YulFunctionCall","src":"5358:39:1"},"nativeSrc":"5358:39:1","nodeType":"YulExpressionStatement","src":"5358:39:1"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"5305:1:1","nodeType":"YulIdentifier","src":"5305:1:1"},{"name":"length","nativeSrc":"5308:6:1","nodeType":"YulIdentifier","src":"5308:6:1"}],"functionName":{"name":"lt","nativeSrc":"5302:2:1","nodeType":"YulIdentifier","src":"5302:2:1"},"nativeSrc":"5302:13:1","nodeType":"YulFunctionCall","src":"5302:13:1"},"nativeSrc":"5294:113:1","nodeType":"YulForLoop","post":{"nativeSrc":"5316:19:1","nodeType":"YulBlock","src":"5316:19:1","statements":[{"nativeSrc":"5318:15:1","nodeType":"YulAssignment","src":"5318:15:1","value":{"arguments":[{"name":"i","nativeSrc":"5327:1:1","nodeType":"YulIdentifier","src":"5327:1:1"},{"kind":"number","nativeSrc":"5330:2:1","nodeType":"YulLiteral","src":"5330:2:1","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5323:3:1","nodeType":"YulIdentifier","src":"5323:3:1"},"nativeSrc":"5323:10:1","nodeType":"YulFunctionCall","src":"5323:10:1"},"variableNames":[{"name":"i","nativeSrc":"5318:1:1","nodeType":"YulIdentifier","src":"5318:1:1"}]}]},"pre":{"nativeSrc":"5298:3:1","nodeType":"YulBlock","src":"5298:3:1","statements":[]},"src":"5294:113:1"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"5427:3:1","nodeType":"YulIdentifier","src":"5427:3:1"},{"name":"length","nativeSrc":"5432:6:1","nodeType":"YulIdentifier","src":"5432:6:1"}],"functionName":{"name":"add","nativeSrc":"5423:3:1","nodeType":"YulIdentifier","src":"5423:3:1"},"nativeSrc":"5423:16:1","nodeType":"YulFunctionCall","src":"5423:16:1"},{"kind":"number","nativeSrc":"5441:1:1","nodeType":"YulLiteral","src":"5441:1:1","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"5416:6:1","nodeType":"YulIdentifier","src":"5416:6:1"},"nativeSrc":"5416:27:1","nodeType":"YulFunctionCall","src":"5416:27:1"},"nativeSrc":"5416:27:1","nodeType":"YulExpressionStatement","src":"5416:27:1"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"5202:248:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"5246:3:1","nodeType":"YulTypedName","src":"5246:3:1","type":""},{"name":"dst","nativeSrc":"5251:3:1","nodeType":"YulTypedName","src":"5251:3:1","type":""},{"name":"length","nativeSrc":"5256:6:1","nodeType":"YulTypedName","src":"5256:6:1","type":""}],"src":"5202:248:1"},{"body":{"nativeSrc":"5564:278:1","nodeType":"YulBlock","src":"5564:278:1","statements":[{"nativeSrc":"5574:52:1","nodeType":"YulVariableDeclaration","src":"5574:52:1","value":{"arguments":[{"name":"value","nativeSrc":"5620:5:1","nodeType":"YulIdentifier","src":"5620:5:1"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"5588:31:1","nodeType":"YulIdentifier","src":"5588:31:1"},"nativeSrc":"5588:38:1","nodeType":"YulFunctionCall","src":"5588:38:1"},"variables":[{"name":"length","nativeSrc":"5578:6:1","nodeType":"YulTypedName","src":"5578:6:1","type":""}]},{"nativeSrc":"5635:95:1","nodeType":"YulAssignment","src":"5635:95:1","value":{"arguments":[{"name":"pos","nativeSrc":"5718:3:1","nodeType":"YulIdentifier","src":"5718:3:1"},{"name":"length","nativeSrc":"5723:6:1","nodeType":"YulIdentifier","src":"5723:6:1"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"5642:75:1","nodeType":"YulIdentifier","src":"5642:75:1"},"nativeSrc":"5642:88:1","nodeType":"YulFunctionCall","src":"5642:88:1"},"variableNames":[{"name":"pos","nativeSrc":"5635:3:1","nodeType":"YulIdentifier","src":"5635:3:1"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5778:5:1","nodeType":"YulIdentifier","src":"5778:5:1"},{"kind":"number","nativeSrc":"5785:4:1","nodeType":"YulLiteral","src":"5785:4:1","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5774:3:1","nodeType":"YulIdentifier","src":"5774:3:1"},"nativeSrc":"5774:16:1","nodeType":"YulFunctionCall","src":"5774:16:1"},{"name":"pos","nativeSrc":"5792:3:1","nodeType":"YulIdentifier","src":"5792:3:1"},{"name":"length","nativeSrc":"5797:6:1","nodeType":"YulIdentifier","src":"5797:6:1"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"5739:34:1","nodeType":"YulIdentifier","src":"5739:34:1"},"nativeSrc":"5739:65:1","nodeType":"YulFunctionCall","src":"5739:65:1"},"nativeSrc":"5739:65:1","nodeType":"YulExpressionStatement","src":"5739:65:1"},{"nativeSrc":"5813:23:1","nodeType":"YulAssignment","src":"5813:23:1","value":{"arguments":[{"name":"pos","nativeSrc":"5824:3:1","nodeType":"YulIdentifier","src":"5824:3:1"},{"name":"length","nativeSrc":"5829:6:1","nodeType":"YulIdentifier","src":"5829:6:1"}],"functionName":{"name":"add","nativeSrc":"5820:3:1","nodeType":"YulIdentifier","src":"5820:3:1"},"nativeSrc":"5820:16:1","nodeType":"YulFunctionCall","src":"5820:16:1"},"variableNames":[{"name":"end","nativeSrc":"5813:3:1","nodeType":"YulIdentifier","src":"5813:3:1"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"5456:386:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5545:5:1","nodeType":"YulTypedName","src":"5545:5:1","type":""},{"name":"pos","nativeSrc":"5552:3:1","nodeType":"YulTypedName","src":"5552:3:1","type":""}],"returnVariables":[{"name":"end","nativeSrc":"5560:3:1","nodeType":"YulTypedName","src":"5560:3:1","type":""}],"src":"5456:386:1"},{"body":{"nativeSrc":"5982:137:1","nodeType":"YulBlock","src":"5982:137:1","statements":[{"nativeSrc":"5993:100:1","nodeType":"YulAssignment","src":"5993:100:1","value":{"arguments":[{"name":"value0","nativeSrc":"6080:6:1","nodeType":"YulIdentifier","src":"6080:6:1"},{"name":"pos","nativeSrc":"6089:3:1","nodeType":"YulIdentifier","src":"6089:3:1"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"6000:79:1","nodeType":"YulIdentifier","src":"6000:79:1"},"nativeSrc":"6000:93:1","nodeType":"YulFunctionCall","src":"6000:93:1"},"variableNames":[{"name":"pos","nativeSrc":"5993:3:1","nodeType":"YulIdentifier","src":"5993:3:1"}]},{"nativeSrc":"6103:10:1","nodeType":"YulAssignment","src":"6103:10:1","value":{"name":"pos","nativeSrc":"6110:3:1","nodeType":"YulIdentifier","src":"6110:3:1"},"variableNames":[{"name":"end","nativeSrc":"6103:3:1","nodeType":"YulIdentifier","src":"6103:3:1"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"5848:271:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"5961:3:1","nodeType":"YulTypedName","src":"5961:3:1","type":""},{"name":"value0","nativeSrc":"5967:6:1","nodeType":"YulTypedName","src":"5967:6:1","type":""}],"returnVariables":[{"name":"end","nativeSrc":"5978:3:1","nodeType":"YulTypedName","src":"5978:3:1","type":""}],"src":"5848:271:1"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_7678404c0552a58cf14944d1a786cf4c81aab3563e2735cb332aee47bbb57c4a() {\n revert(0, 0)\n }\n\n function revert_error_46e3e63c93837e9efa638abb3b4e76ced8c11259a873f1381a0abdf6ae6a823c() {\n revert(0, 0)\n }\n\n function calldata_array_index_range_access_t_bytes_calldata_ptr(offset, length, startIndex, endIndex) -> offsetOut, lengthOut {\n if gt(startIndex, endIndex) { revert_error_7678404c0552a58cf14944d1a786cf4c81aab3563e2735cb332aee47bbb57c4a() }\n if gt(endIndex, length) { revert_error_46e3e63c93837e9efa638abb3b4e76ced8c11259a873f1381a0abdf6ae6a823c() }\n offsetOut := add(offset, mul(startIndex, 1))\n lengthOut := sub(endIndex, startIndex)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address_payable(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address_payable(value) {\n if iszero(eq(value, cleanup_t_address_payable(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_payable(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address_payable(value)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory_with_cleanup(src, dst, length) {\n\n calldatacopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory_with_cleanup(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_address_payablet_bytes_memory_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_payable(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n end := pos\n }\n\n}\n","id":1,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"17351":[{"length":32,"start":262}]},"linkReferences":{},"object":"608060405261000c61000e565b005b610016610102565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16036100f757634f1ef28660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166000357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146100ea576040517fd2b576ec00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6100f261012a565b610100565b6100ff610160565b5b565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b6000806000366004908092610141939291906104f1565b81019061014e91906106da565b9150915061015c8282610172565b5050565b61017061016b6101e5565b6101f4565b565b61017b8261021a565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a26000815111156101d8576101d282826102e7565b506101e1565b6101e061036b565b5b5050565b60006101ef6103a8565b905090565b3660008037600080366000845af43d6000803e8060008114610215573d6000f35b3d6000fd5b60008173ffffffffffffffffffffffffffffffffffffffff163b0361027657806040517f4c9c8ce300000000000000000000000000000000000000000000000000000000815260040161026d9190610757565b60405180910390fd5b806102a37f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6103ff565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606000808473ffffffffffffffffffffffffffffffffffffffff168460405161031191906107e3565b600060405180830381855af49150503d806000811461034c576040519150601f19603f3d011682016040523d82523d6000602084013e610351565b606091505b5091509150610361858383610409565b9250505092915050565b60003411156103a6576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60006103d67f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6103ff565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b60608261041e5761041982610498565b610490565b60008251148015610446575060008473ffffffffffffffffffffffffffffffffffffffff163b145b1561048857836040517f9996b31500000000000000000000000000000000000000000000000000000000815260040161047f9190610757565b60405180910390fd5b819050610491565b5b9392505050565b6000815111156104ab5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000604051905090565b600080fd5b600080fd5b60008085851115610505576105046104e7565b5b83861115610516576105156104ec565b5b6001850283019150848603905094509492505050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061056182610536565b9050919050565b61057181610556565b811461057c57600080fd5b50565b60008135905061058e81610568565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6105e78261059e565b810181811067ffffffffffffffff82111715610606576106056105af565b5b80604052505050565b60006106196104dd565b905061062582826105de565b919050565b600067ffffffffffffffff821115610645576106446105af565b5b61064e8261059e565b9050602081019050919050565b82818337600083830152505050565b600061067d6106788461062a565b61060f565b90508281526020810184848401111561069957610698610599565b5b6106a484828561065b565b509392505050565b600082601f8301126106c1576106c0610594565b5b81356106d184826020860161066a565b91505092915050565b600080604083850312156106f1576106f061052c565b5b60006106ff8582860161057f565b925050602083013567ffffffffffffffff8111156107205761071f610531565b5b61072c858286016106ac565b9150509250929050565b600061074182610536565b9050919050565b61075181610736565b82525050565b600060208201905061076c6000830184610748565b92915050565b600081519050919050565b600081905092915050565b60005b838110156107a657808201518184015260208101905061078b565b60008484015250505050565b60006107bd82610772565b6107c7818561077d565b93506107d7818560208601610788565b80840191505092915050565b60006107ef82846107b2565b91508190509291505056fea26469706673582212206be732332064e778aac95f60931947bf328cda42bd2ec28b7e8b830cda74729164736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH2 0xC PUSH2 0xE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x16 PUSH2 0x102 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xF7 JUMPI PUSH4 0x4F1EF286 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x0 CALLDATALOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0xEA JUMPI PUSH1 0x40 MLOAD PUSH32 0xD2B576EC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xF2 PUSH2 0x12A JUMP JUMPDEST PUSH2 0x100 JUMP JUMPDEST PUSH2 0xFF PUSH2 0x160 JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 CALLDATASIZE PUSH1 0x4 SWAP1 DUP1 SWAP3 PUSH2 0x141 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4F1 JUMP JUMPDEST DUP2 ADD SWAP1 PUSH2 0x14E SWAP2 SWAP1 PUSH2 0x6DA JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x15C DUP3 DUP3 PUSH2 0x172 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x170 PUSH2 0x16B PUSH2 0x1E5 JUMP JUMPDEST PUSH2 0x1F4 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x17B DUP3 PUSH2 0x21A JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x1D8 JUMPI PUSH2 0x1D2 DUP3 DUP3 PUSH2 0x2E7 JUMP JUMPDEST POP PUSH2 0x1E1 JUMP JUMPDEST PUSH2 0x1E0 PUSH2 0x36B JUMP JUMPDEST JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EF PUSH2 0x3A8 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST CALLDATASIZE PUSH1 0x0 DUP1 CALLDATACOPY PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x215 JUMPI RETURNDATASIZE PUSH1 0x0 RETURN JUMPDEST RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE SUB PUSH2 0x276 JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x4C9C8CE300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x26D SWAP2 SWAP1 PUSH2 0x757 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH2 0x2A3 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC PUSH1 0x0 SHL PUSH2 0x3FF JUMP JUMPDEST PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH1 0x40 MLOAD PUSH2 0x311 SWAP2 SWAP1 PUSH2 0x7E3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x34C JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x351 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x361 DUP6 DUP4 DUP4 PUSH2 0x409 JUMP JUMPDEST SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLVALUE GT ISZERO PUSH2 0x3A6 JUMPI PUSH1 0x40 MLOAD PUSH32 0xB398979F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3D6 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC PUSH1 0x0 SHL PUSH2 0x3FF JUMP JUMPDEST PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 DUP3 PUSH2 0x41E JUMPI PUSH2 0x419 DUP3 PUSH2 0x498 JUMP JUMPDEST PUSH2 0x490 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD EQ DUP1 ISZERO PUSH2 0x446 JUMPI POP PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE EQ JUMPDEST ISZERO PUSH2 0x488 JUMPI DUP4 PUSH1 0x40 MLOAD PUSH32 0x9996B31500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x47F SWAP2 SWAP1 PUSH2 0x757 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 SWAP1 POP PUSH2 0x491 JUMP JUMPDEST JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x4AB JUMPI DUP1 MLOAD DUP1 DUP3 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x1425EA4200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP6 DUP6 GT ISZERO PUSH2 0x505 JUMPI PUSH2 0x504 PUSH2 0x4E7 JUMP JUMPDEST JUMPDEST DUP4 DUP7 GT ISZERO PUSH2 0x516 JUMPI PUSH2 0x515 PUSH2 0x4EC JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP6 MUL DUP4 ADD SWAP2 POP DUP5 DUP7 SUB SWAP1 POP SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x561 DUP3 PUSH2 0x536 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x571 DUP2 PUSH2 0x556 JUMP JUMPDEST DUP2 EQ PUSH2 0x57C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x58E DUP2 PUSH2 0x568 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x5E7 DUP3 PUSH2 0x59E JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x606 JUMPI PUSH2 0x605 PUSH2 0x5AF JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x619 PUSH2 0x4DD JUMP JUMPDEST SWAP1 POP PUSH2 0x625 DUP3 DUP3 PUSH2 0x5DE JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x645 JUMPI PUSH2 0x644 PUSH2 0x5AF JUMP JUMPDEST JUMPDEST PUSH2 0x64E DUP3 PUSH2 0x59E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x67D PUSH2 0x678 DUP5 PUSH2 0x62A JUMP JUMPDEST PUSH2 0x60F JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x699 JUMPI PUSH2 0x698 PUSH2 0x599 JUMP JUMPDEST JUMPDEST PUSH2 0x6A4 DUP5 DUP3 DUP6 PUSH2 0x65B JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x6C1 JUMPI PUSH2 0x6C0 PUSH2 0x594 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x6D1 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x66A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x6F1 JUMPI PUSH2 0x6F0 PUSH2 0x52C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x6FF DUP6 DUP3 DUP7 ADD PUSH2 0x57F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x720 JUMPI PUSH2 0x71F PUSH2 0x531 JUMP JUMPDEST JUMPDEST PUSH2 0x72C DUP6 DUP3 DUP7 ADD PUSH2 0x6AC JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x741 DUP3 PUSH2 0x536 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x751 DUP2 PUSH2 0x736 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x76C PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x748 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x7A6 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x78B JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7BD DUP3 PUSH2 0x772 JUMP JUMPDEST PUSH2 0x7C7 DUP2 DUP6 PUSH2 0x77D JUMP JUMPDEST SWAP4 POP PUSH2 0x7D7 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x788 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7EF DUP3 DUP5 PUSH2 0x7B2 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH12 0xE732332064E778AAC95F6093 NOT SELFBALANCE 0xBF ORIGIN DUP13 0xDA TIMESTAMP 0xBD 0x2E 0xC2 DUP12 PUSH31 0x8B830CDA74729164736F6C634300081C003300000000000000000000000000 ","sourceMap":"261621:2226:0:-:0;;;168521:11;:9;:11::i;:::-;261621:2226;263057:369;263132:13;:11;:13::i;:::-;263118:27;;:10;:27;;;263114:306;;263176:54;;;263165:65;;;:7;;;;:65;;;;263161:201;;263257:24;;;;;;;;;;;;;;263161:201;263320:27;:25;:27::i;:::-;263114:306;;;263392:17;:15;:17::i;:::-;263114:306;263057:369::o;262827:88::-;262876:7;262902:6;262895:13;;262827:88;:::o;263628:217::-;263684:25;263711:17;263743:8;;263752:1;263743:12;;;;;;;;;:::i;:::-;263732:42;;;;;;;:::i;:::-;263683:91;;;;263784:54;263814:17;263833:4;263784:29;:54::i;:::-;263673:172;;263628:217::o;168195:83::-;168243:28;168253:17;:15;:17::i;:::-;168243:9;:28::i;:::-;168195:83::o;235757:335::-;235848:37;235867:17;235848:18;:37::i;:::-;235909:17;235900:27;;;;;;;;;;;;235956:1;235942:4;:11;:15;235938:148;;;235973:53;236002:17;236021:4;235973:28;:53::i;:::-;;235938:148;;;236057:18;:16;:18::i;:::-;235938:148;235757:335;;:::o;253388:132::-;253455:7;253481:32;:30;:32::i;:::-;253474:39;;253388:132;:::o;166821:895::-;167159:14;167156:1;167153;167140:34;167373:1;167370;167354:14;167351:1;167335:14;167328:5;167315:60;167449:16;167446:1;167443;167428:38;167487:6;167559:1;167554:66;;;;167669:16;167666:1;167659:27;167554:66;167589:16;167586:1;167579:27;235164:281;235274:1;235241:17;:29;;;:34;235237:119;;235327:17;235298:47;;;;;;;;;;;:::i;:::-;;;;;;;;235237:119;235421:17;235365:47;234305:66;235392:19;;235365:26;:47::i;:::-;:53;;;:73;;;;;;;;;;;;;;;;;;235164:281;:::o;173209:253::-;173292:12;173317;173331:23;173358:6;:19;;173378:4;173358:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;173316:67;;;;173400:55;173427:6;173435:7;173444:10;173400:26;:55::i;:::-;173393:62;;;;173209:253;;;;:::o;239576:122::-;239638:1;239626:9;:13;239622:70;;;239662:19;;;;;;;;;;;;;;239622:70;239576:122::o;234935:138::-;234987:7;235013:47;234305:66;235040:19;;235013:26;:47::i;:::-;:53;;;;;;;;;;;;235006:60;;234935:138;:::o;178098:190::-;178159:21;178268:4;178258:14;;178098:190;;;:::o;173728:582::-;173872:12;173901:7;173896:408;;173924:19;173932:10;173924:7;:19::i;:::-;173896:408;;;174169:1;174148:10;:17;:22;:49;;;;;174196:1;174174:6;:18;;;:23;174148:49;174144:119;;;174241:6;174224:24;;;;;;;;;;;:::i;:::-;;;;;;;;174144:119;174283:10;174276:17;;;;173896:408;173728:582;;;;;;:::o;174846:516::-;174997:1;174977:10;:17;:21;174973:383;;;175205:10;175199:17;175261:15;175248:10;175244:2;175240:19;175233:44;174973:383;175328:17;;;;;;;;;;;;;;7:75:1;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:469;439:9;450;488:8;476:10;473:24;470:111;;;500:79;;:::i;:::-;470:111;606:6;596:8;593:20;590:107;;;616:79;;:::i;:::-;590:107;747:1;735:10;731:18;723:6;719:31;706:44;;786:10;776:8;772:25;759:38;;334:469;;;;;;;:::o;809:117::-;918:1;915;908:12;932:117;1041:1;1038;1031:12;1055:126;1092:7;1132:42;1125:5;1121:54;1110:65;;1055:126;;;:::o;1187:104::-;1232:7;1261:24;1279:5;1261:24;:::i;:::-;1250:35;;1187:104;;;:::o;1297:138::-;1378:32;1404:5;1378:32;:::i;:::-;1371:5;1368:43;1358:71;;1425:1;1422;1415:12;1358:71;1297:138;:::o;1441:155::-;1495:5;1533:6;1520:20;1511:29;;1549:41;1584:5;1549:41;:::i;:::-;1441:155;;;;:::o;1602:117::-;1711:1;1708;1701:12;1725:117;1834:1;1831;1824:12;1848:102;1889:6;1940:2;1936:7;1931:2;1924:5;1920:14;1916:28;1906:38;;1848:102;;;:::o;1956:180::-;2004:77;2001:1;1994:88;2101:4;2098:1;2091:15;2125:4;2122:1;2115:15;2142:281;2225:27;2247:4;2225:27;:::i;:::-;2217:6;2213:40;2355:6;2343:10;2340:22;2319:18;2307:10;2304:34;2301:62;2298:88;;;2366:18;;:::i;:::-;2298:88;2406:10;2402:2;2395:22;2185:238;2142:281;;:::o;2429:129::-;2463:6;2490:20;;:::i;:::-;2480:30;;2519:33;2547:4;2539:6;2519:33;:::i;:::-;2429:129;;;:::o;2564:307::-;2625:4;2715:18;2707:6;2704:30;2701:56;;;2737:18;;:::i;:::-;2701:56;2775:29;2797:6;2775:29;:::i;:::-;2767:37;;2859:4;2853;2849:15;2841:23;;2564:307;;;:::o;2877:148::-;2975:6;2970:3;2965;2952:30;3016:1;3007:6;3002:3;2998:16;2991:27;2877:148;;;:::o;3031:423::-;3108:5;3133:65;3149:48;3190:6;3149:48;:::i;:::-;3133:65;:::i;:::-;3124:74;;3221:6;3214:5;3207:21;3259:4;3252:5;3248:16;3297:3;3288:6;3283:3;3279:16;3276:25;3273:112;;;3304:79;;:::i;:::-;3273:112;3394:54;3441:6;3436:3;3431;3394:54;:::i;:::-;3114:340;3031:423;;;;;:::o;3473:338::-;3528:5;3577:3;3570:4;3562:6;3558:17;3554:27;3544:122;;3585:79;;:::i;:::-;3544:122;3702:6;3689:20;3727:78;3801:3;3793:6;3786:4;3778:6;3774:17;3727:78;:::i;:::-;3718:87;;3534:277;3473:338;;;;:::o;3817:668::-;3902:6;3910;3959:2;3947:9;3938:7;3934:23;3930:32;3927:119;;;3965:79;;:::i;:::-;3927:119;4085:1;4110:61;4163:7;4154:6;4143:9;4139:22;4110:61;:::i;:::-;4100:71;;4056:125;4248:2;4237:9;4233:18;4220:32;4279:18;4271:6;4268:30;4265:117;;;4301:79;;:::i;:::-;4265:117;4406:62;4460:7;4451:6;4440:9;4436:22;4406:62;:::i;:::-;4396:72;;4191:287;3817:668;;;;;:::o;4491:96::-;4528:7;4557:24;4575:5;4557:24;:::i;:::-;4546:35;;4491:96;;;:::o;4593:118::-;4680:24;4698:5;4680:24;:::i;:::-;4675:3;4668:37;4593:118;;:::o;4717:222::-;4810:4;4848:2;4837:9;4833:18;4825:26;;4861:71;4929:1;4918:9;4914:17;4905:6;4861:71;:::i;:::-;4717:222;;;;:::o;4945:98::-;4996:6;5030:5;5024:12;5014:22;;4945:98;;;:::o;5049:147::-;5150:11;5187:3;5172:18;;5049:147;;;;:::o;5202:248::-;5284:1;5294:113;5308:6;5305:1;5302:13;5294:113;;;5393:1;5388:3;5384:11;5378:18;5374:1;5369:3;5365:11;5358:39;5330:2;5327:1;5323:10;5318:15;;5294:113;;;5441:1;5432:6;5427:3;5423:16;5416:27;5264:186;5202:248;;;:::o;5456:386::-;5560:3;5588:38;5620:5;5588:38;:::i;:::-;5642:88;5723:6;5718:3;5642:88;:::i;:::-;5635:95;;5739:65;5797:6;5792:3;5785:4;5778:5;5774:16;5739:65;:::i;:::-;5829:6;5824:3;5820:16;5813:23;;5564:278;5456:386;;;;:::o;5848:271::-;5978:3;6000:93;6089:3;6080:6;6000:93;:::i;:::-;5993:100;;6110:3;6103:10;;5848:271;;;;:::o"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_logic\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidAdmin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProxyDeniedAdminAccess\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"}],\"devdoc\":{\"details\":\"This contract implements a proxy that is upgradeable through an associated {ProxyAdmin} instance. To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector clashing], which can potentially be used in an attack, this contract uses the https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two things that go hand in hand: 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if that call matches the {ITransparentUpgradeableProxy-upgradeToAndCall} function exposed by the proxy itself. 2. If the admin calls the proxy, it can call the `upgradeToAndCall` function but any other call won't be forwarded to the implementation. If the admin tries to call a function on the implementation it will fail with an error indicating the proxy admin cannot fallback to the target implementation. These properties mean that the admin account can only be used for upgrading the proxy, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due to sudden errors when trying to call a function from the proxy implementation. For this reason, the proxy deploys an instance of {ProxyAdmin} and allows upgrades only if they come through it. You should think of the `ProxyAdmin` instance as the administrative interface of the proxy, including the ability to change who can trigger upgrades by transferring ownership. NOTE: The real interface of this proxy is that defined in `ITransparentUpgradeableProxy`. This contract does not inherit from that interface, and instead `upgradeToAndCall` is implicitly implemented using a custom dispatch mechanism in `_fallback`. Consequently, the compiler will not produce an ABI for this contract. This is necessary to fully implement transparency without decoding reverts caused by selector clashes between the proxy and the implementation. NOTE: This proxy does not inherit from {Context} deliberately. The {ProxyAdmin} of this contract won't send a meta-transaction in any way, and any other meta-transaction setup should be made in the implementation contract. IMPORTANT: This contract avoids unnecessary storage reads by setting the admin only during construction as an immutable variable, preventing any changes thereafter. However, the admin slot defined in ERC-1967 can still be overwritten by the implementation logic pointed to by this proxy. In such cases, the contract may end up in an undesirable state where the admin slot is different from the actual admin. WARNING: It is not recommended to extend this contract to add additional external functions. If you do so, the compiler will not check that there are no selector conflicts, due to the note above. A selector clash between any new function and the functions declared in {ITransparentUpgradeableProxy} will be resolved in favor of the new one. This could render the `upgradeToAndCall` function inaccessible, preventing upgradeability and compromising transparency.\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidAdmin(address)\":[{\"details\":\"The `admin` of the proxy is invalid.\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"ProxyDeniedAdminAccess()\":[{\"details\":\"The proxy caller is the current admin, and can't fallback to the proxy target.\"}]},\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes an upgradeable proxy managed by an instance of a {ProxyAdmin} with an `initialOwner`, backed by the implementation at `_logic`, and optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Upgrades.sol\":\"TransparentUpgradeableProxy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"src/Upgrades.sol\":{\"keccak256\":\"0x420d4a351f46367d1fd8ea9409af6772fc442019d8f51bdd61b2114886ab3f98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dd2a0235e70d4f89d1d67af78ec13dd396224ec6cd87e4f906796bf50e385204\",\"dweb:/ipfs/QmULbNuaseWNiMWpBdR7ayYw5tknsYji6YtPG9KYd4k9Dp\"]}},\"version\":1}"},"UnsafeUpgrades":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220021baba273bb1070b6a33b08942cd622816824addddc5b60f199328ef00c981164736f6c634300081c0033","opcodes":"PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MUL SHL 0xAB LOG2 PUSH20 0xBB1070B6A33B08942CD622816824ADDDDC5B60F1 SWAP10 ORIGIN DUP15 CREATE 0xC SWAP9 GT PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"323275:6207:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220021baba273bb1070b6a33b08942cd622816824addddc5b60f199328ef00c981164736f6c634300081c0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MUL SHL 0xAB LOG2 PUSH20 0xBB1070B6A33B08942CD622816824ADDDDC5B60F1 SWAP10 ORIGIN DUP15 CREATE 0xC SWAP9 GT PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"323275:6207:0:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for deploying and managing upgradeable contracts from Forge tests, without validations. Can be used with `forge coverage`. Requires implementation contracts to be instantiated first. Does not require `--ffi` and does not require a clean compilation before each run. Not supported for OpenZeppelin Defender deployments. WARNING: Not recommended for use in Forge scripts. `UnsafeUpgrades` does not validate whether your contracts are upgrade safe or whether new implementations are compatible with previous ones. Use `Upgrades` if you want validations to be run. NOTE: Requires OpenZeppelin Contracts v5 or higher.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Upgrades.sol\":\"UnsafeUpgrades\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"src/Upgrades.sol\":{\"keccak256\":\"0x420d4a351f46367d1fd8ea9409af6772fc442019d8f51bdd61b2114886ab3f98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dd2a0235e70d4f89d1d67af78ec13dd396224ec6cd87e4f906796bf50e385204\",\"dweb:/ipfs/QmULbNuaseWNiMWpBdR7ayYw5tknsYji6YtPG9KYd4k9Dp\"]}},\"version\":1}"},"UpgradeableBeacon":{"abi":[{"inputs":[{"internalType":"address","name":"implementation_","type":"address"},{"internalType":"address","name":"initialOwner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"name":"BeaconInvalidImplementation","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_13905":{"entryPoint":null,"id":13905,"parameterSlots":1,"returnSlots":0},"@_16407":{"entryPoint":null,"id":16407,"parameterSlots":2,"returnSlots":0},"@_setImplementation_16455":{"entryPoint":399,"id":16455,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_14001":{"entryPoint":203,"id":14001,"parameterSlots":1,"returnSlots":0},"abi_decode_t_address_fromMemory":{"entryPoint":704,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address_fromMemory":{"entryPoint":725,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":789,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":804,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"cleanup_t_address":{"entryPoint":663,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":631,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":626,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_t_address":{"entryPoint":681,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:1707:1","nodeType":"YulBlock","src":"0:1707:1","statements":[{"body":{"nativeSrc":"47:35:1","nodeType":"YulBlock","src":"47:35:1","statements":[{"nativeSrc":"57:19:1","nodeType":"YulAssignment","src":"57:19:1","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:1","nodeType":"YulLiteral","src":"73:2:1","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:1","nodeType":"YulIdentifier","src":"67:5:1"},"nativeSrc":"67:9:1","nodeType":"YulFunctionCall","src":"67:9:1"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:1","nodeType":"YulIdentifier","src":"57:6:1"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:1","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:1","nodeType":"YulTypedName","src":"40:6:1","type":""}],"src":"7:75:1"},{"body":{"nativeSrc":"177:28:1","nodeType":"YulBlock","src":"177:28:1","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:1","nodeType":"YulLiteral","src":"194:1:1","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:1","nodeType":"YulLiteral","src":"197:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:1","nodeType":"YulIdentifier","src":"187:6:1"},"nativeSrc":"187:12:1","nodeType":"YulFunctionCall","src":"187:12:1"},"nativeSrc":"187:12:1","nodeType":"YulExpressionStatement","src":"187:12:1"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:1","nodeType":"YulFunctionDefinition","src":"88:117:1"},{"body":{"nativeSrc":"300:28:1","nodeType":"YulBlock","src":"300:28:1","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:1","nodeType":"YulLiteral","src":"317:1:1","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:1","nodeType":"YulLiteral","src":"320:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:1","nodeType":"YulIdentifier","src":"310:6:1"},"nativeSrc":"310:12:1","nodeType":"YulFunctionCall","src":"310:12:1"},"nativeSrc":"310:12:1","nodeType":"YulExpressionStatement","src":"310:12:1"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:1","nodeType":"YulFunctionDefinition","src":"211:117:1"},{"body":{"nativeSrc":"379:81:1","nodeType":"YulBlock","src":"379:81:1","statements":[{"nativeSrc":"389:65:1","nodeType":"YulAssignment","src":"389:65:1","value":{"arguments":[{"name":"value","nativeSrc":"404:5:1","nodeType":"YulIdentifier","src":"404:5:1"},{"kind":"number","nativeSrc":"411:42:1","nodeType":"YulLiteral","src":"411:42:1","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:1","nodeType":"YulIdentifier","src":"400:3:1"},"nativeSrc":"400:54:1","nodeType":"YulFunctionCall","src":"400:54:1"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:1","nodeType":"YulIdentifier","src":"389:7:1"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:1","nodeType":"YulTypedName","src":"361:5:1","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:1","nodeType":"YulTypedName","src":"371:7:1","type":""}],"src":"334:126:1"},{"body":{"nativeSrc":"511:51:1","nodeType":"YulBlock","src":"511:51:1","statements":[{"nativeSrc":"521:35:1","nodeType":"YulAssignment","src":"521:35:1","value":{"arguments":[{"name":"value","nativeSrc":"550:5:1","nodeType":"YulIdentifier","src":"550:5:1"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:1","nodeType":"YulIdentifier","src":"532:17:1"},"nativeSrc":"532:24:1","nodeType":"YulFunctionCall","src":"532:24:1"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:1","nodeType":"YulIdentifier","src":"521:7:1"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:1","nodeType":"YulTypedName","src":"493:5:1","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:1","nodeType":"YulTypedName","src":"503:7:1","type":""}],"src":"466:96:1"},{"body":{"nativeSrc":"611:79:1","nodeType":"YulBlock","src":"611:79:1","statements":[{"body":{"nativeSrc":"668:16:1","nodeType":"YulBlock","src":"668:16:1","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:1","nodeType":"YulLiteral","src":"677:1:1","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:1","nodeType":"YulLiteral","src":"680:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:1","nodeType":"YulIdentifier","src":"670:6:1"},"nativeSrc":"670:12:1","nodeType":"YulFunctionCall","src":"670:12:1"},"nativeSrc":"670:12:1","nodeType":"YulExpressionStatement","src":"670:12:1"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:1","nodeType":"YulIdentifier","src":"634:5:1"},{"arguments":[{"name":"value","nativeSrc":"659:5:1","nodeType":"YulIdentifier","src":"659:5:1"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:1","nodeType":"YulIdentifier","src":"641:17:1"},"nativeSrc":"641:24:1","nodeType":"YulFunctionCall","src":"641:24:1"}],"functionName":{"name":"eq","nativeSrc":"631:2:1","nodeType":"YulIdentifier","src":"631:2:1"},"nativeSrc":"631:35:1","nodeType":"YulFunctionCall","src":"631:35:1"}],"functionName":{"name":"iszero","nativeSrc":"624:6:1","nodeType":"YulIdentifier","src":"624:6:1"},"nativeSrc":"624:43:1","nodeType":"YulFunctionCall","src":"624:43:1"},"nativeSrc":"621:63:1","nodeType":"YulIf","src":"621:63:1"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:1","nodeType":"YulTypedName","src":"604:5:1","type":""}],"src":"568:122:1"},{"body":{"nativeSrc":"759:80:1","nodeType":"YulBlock","src":"759:80:1","statements":[{"nativeSrc":"769:22:1","nodeType":"YulAssignment","src":"769:22:1","value":{"arguments":[{"name":"offset","nativeSrc":"784:6:1","nodeType":"YulIdentifier","src":"784:6:1"}],"functionName":{"name":"mload","nativeSrc":"778:5:1","nodeType":"YulIdentifier","src":"778:5:1"},"nativeSrc":"778:13:1","nodeType":"YulFunctionCall","src":"778:13:1"},"variableNames":[{"name":"value","nativeSrc":"769:5:1","nodeType":"YulIdentifier","src":"769:5:1"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"827:5:1","nodeType":"YulIdentifier","src":"827:5:1"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"800:26:1","nodeType":"YulIdentifier","src":"800:26:1"},"nativeSrc":"800:33:1","nodeType":"YulFunctionCall","src":"800:33:1"},"nativeSrc":"800:33:1","nodeType":"YulExpressionStatement","src":"800:33:1"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"696:143:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"737:6:1","nodeType":"YulTypedName","src":"737:6:1","type":""},{"name":"end","nativeSrc":"745:3:1","nodeType":"YulTypedName","src":"745:3:1","type":""}],"returnVariables":[{"name":"value","nativeSrc":"753:5:1","nodeType":"YulTypedName","src":"753:5:1","type":""}],"src":"696:143:1"},{"body":{"nativeSrc":"939:413:1","nodeType":"YulBlock","src":"939:413:1","statements":[{"body":{"nativeSrc":"985:83:1","nodeType":"YulBlock","src":"985:83:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"987:77:1","nodeType":"YulIdentifier","src":"987:77:1"},"nativeSrc":"987:79:1","nodeType":"YulFunctionCall","src":"987:79:1"},"nativeSrc":"987:79:1","nodeType":"YulExpressionStatement","src":"987:79:1"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"960:7:1","nodeType":"YulIdentifier","src":"960:7:1"},{"name":"headStart","nativeSrc":"969:9:1","nodeType":"YulIdentifier","src":"969:9:1"}],"functionName":{"name":"sub","nativeSrc":"956:3:1","nodeType":"YulIdentifier","src":"956:3:1"},"nativeSrc":"956:23:1","nodeType":"YulFunctionCall","src":"956:23:1"},{"kind":"number","nativeSrc":"981:2:1","nodeType":"YulLiteral","src":"981:2:1","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"952:3:1","nodeType":"YulIdentifier","src":"952:3:1"},"nativeSrc":"952:32:1","nodeType":"YulFunctionCall","src":"952:32:1"},"nativeSrc":"949:119:1","nodeType":"YulIf","src":"949:119:1"},{"nativeSrc":"1078:128:1","nodeType":"YulBlock","src":"1078:128:1","statements":[{"nativeSrc":"1093:15:1","nodeType":"YulVariableDeclaration","src":"1093:15:1","value":{"kind":"number","nativeSrc":"1107:1:1","nodeType":"YulLiteral","src":"1107:1:1","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1097:6:1","nodeType":"YulTypedName","src":"1097:6:1","type":""}]},{"nativeSrc":"1122:74:1","nodeType":"YulAssignment","src":"1122:74:1","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1168:9:1","nodeType":"YulIdentifier","src":"1168:9:1"},{"name":"offset","nativeSrc":"1179:6:1","nodeType":"YulIdentifier","src":"1179:6:1"}],"functionName":{"name":"add","nativeSrc":"1164:3:1","nodeType":"YulIdentifier","src":"1164:3:1"},"nativeSrc":"1164:22:1","nodeType":"YulFunctionCall","src":"1164:22:1"},{"name":"dataEnd","nativeSrc":"1188:7:1","nodeType":"YulIdentifier","src":"1188:7:1"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1132:31:1","nodeType":"YulIdentifier","src":"1132:31:1"},"nativeSrc":"1132:64:1","nodeType":"YulFunctionCall","src":"1132:64:1"},"variableNames":[{"name":"value0","nativeSrc":"1122:6:1","nodeType":"YulIdentifier","src":"1122:6:1"}]}]},{"nativeSrc":"1216:129:1","nodeType":"YulBlock","src":"1216:129:1","statements":[{"nativeSrc":"1231:16:1","nodeType":"YulVariableDeclaration","src":"1231:16:1","value":{"kind":"number","nativeSrc":"1245:2:1","nodeType":"YulLiteral","src":"1245:2:1","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"1235:6:1","nodeType":"YulTypedName","src":"1235:6:1","type":""}]},{"nativeSrc":"1261:74:1","nodeType":"YulAssignment","src":"1261:74:1","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1307:9:1","nodeType":"YulIdentifier","src":"1307:9:1"},{"name":"offset","nativeSrc":"1318:6:1","nodeType":"YulIdentifier","src":"1318:6:1"}],"functionName":{"name":"add","nativeSrc":"1303:3:1","nodeType":"YulIdentifier","src":"1303:3:1"},"nativeSrc":"1303:22:1","nodeType":"YulFunctionCall","src":"1303:22:1"},{"name":"dataEnd","nativeSrc":"1327:7:1","nodeType":"YulIdentifier","src":"1327:7:1"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1271:31:1","nodeType":"YulIdentifier","src":"1271:31:1"},"nativeSrc":"1271:64:1","nodeType":"YulFunctionCall","src":"1271:64:1"},"variableNames":[{"name":"value1","nativeSrc":"1261:6:1","nodeType":"YulIdentifier","src":"1261:6:1"}]}]}]},"name":"abi_decode_tuple_t_addresst_address_fromMemory","nativeSrc":"845:507:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"901:9:1","nodeType":"YulTypedName","src":"901:9:1","type":""},{"name":"dataEnd","nativeSrc":"912:7:1","nodeType":"YulTypedName","src":"912:7:1","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"924:6:1","nodeType":"YulTypedName","src":"924:6:1","type":""},{"name":"value1","nativeSrc":"932:6:1","nodeType":"YulTypedName","src":"932:6:1","type":""}],"src":"845:507:1"},{"body":{"nativeSrc":"1423:53:1","nodeType":"YulBlock","src":"1423:53:1","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1440:3:1","nodeType":"YulIdentifier","src":"1440:3:1"},{"arguments":[{"name":"value","nativeSrc":"1463:5:1","nodeType":"YulIdentifier","src":"1463:5:1"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"1445:17:1","nodeType":"YulIdentifier","src":"1445:17:1"},"nativeSrc":"1445:24:1","nodeType":"YulFunctionCall","src":"1445:24:1"}],"functionName":{"name":"mstore","nativeSrc":"1433:6:1","nodeType":"YulIdentifier","src":"1433:6:1"},"nativeSrc":"1433:37:1","nodeType":"YulFunctionCall","src":"1433:37:1"},"nativeSrc":"1433:37:1","nodeType":"YulExpressionStatement","src":"1433:37:1"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"1358:118:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1411:5:1","nodeType":"YulTypedName","src":"1411:5:1","type":""},{"name":"pos","nativeSrc":"1418:3:1","nodeType":"YulTypedName","src":"1418:3:1","type":""}],"src":"1358:118:1"},{"body":{"nativeSrc":"1580:124:1","nodeType":"YulBlock","src":"1580:124:1","statements":[{"nativeSrc":"1590:26:1","nodeType":"YulAssignment","src":"1590:26:1","value":{"arguments":[{"name":"headStart","nativeSrc":"1602:9:1","nodeType":"YulIdentifier","src":"1602:9:1"},{"kind":"number","nativeSrc":"1613:2:1","nodeType":"YulLiteral","src":"1613:2:1","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1598:3:1","nodeType":"YulIdentifier","src":"1598:3:1"},"nativeSrc":"1598:18:1","nodeType":"YulFunctionCall","src":"1598:18:1"},"variableNames":[{"name":"tail","nativeSrc":"1590:4:1","nodeType":"YulIdentifier","src":"1590:4:1"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1670:6:1","nodeType":"YulIdentifier","src":"1670:6:1"},{"arguments":[{"name":"headStart","nativeSrc":"1683:9:1","nodeType":"YulIdentifier","src":"1683:9:1"},{"kind":"number","nativeSrc":"1694:1:1","nodeType":"YulLiteral","src":"1694:1:1","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1679:3:1","nodeType":"YulIdentifier","src":"1679:3:1"},"nativeSrc":"1679:17:1","nodeType":"YulFunctionCall","src":"1679:17:1"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"1626:43:1","nodeType":"YulIdentifier","src":"1626:43:1"},"nativeSrc":"1626:71:1","nodeType":"YulFunctionCall","src":"1626:71:1"},"nativeSrc":"1626:71:1","nodeType":"YulExpressionStatement","src":"1626:71:1"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"1482:222:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1552:9:1","nodeType":"YulTypedName","src":"1552:9:1","type":""},{"name":"value0","nativeSrc":"1564:6:1","nodeType":"YulTypedName","src":"1564:6:1","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1575:4:1","nodeType":"YulTypedName","src":"1575:4:1","type":""}],"src":"1482:222:1"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_addresst_address_fromMemory(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n}\n","id":1,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561001057600080fd5b5060405161084f38038061084f833981810160405281019061003291906102d5565b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100a55760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161009c9190610324565b60405180910390fd5b6100b4816100cb60201b60201c565b506100c48261018f60201b60201c565b505061033f565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008173ffffffffffffffffffffffffffffffffffffffff163b036101eb57806040517f847ac5640000000000000000000000000000000000000000000000000000000081526004016101e29190610324565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a250565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006102a282610277565b9050919050565b6102b281610297565b81146102bd57600080fd5b50565b6000815190506102cf816102a9565b92915050565b600080604083850312156102ec576102eb610272565b5b60006102fa858286016102c0565b925050602061030b858286016102c0565b9150509250929050565b61031e81610297565b82525050565b60006020820190506103396000830184610315565b92915050565b6105018061034e6000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80633659cfe61461005c5780635c60da1b14610078578063715018a6146100965780638da5cb5b146100a0578063f2fde38b146100be575b600080fd5b61007660048036038101906100719190610474565b6100da565b005b6100806100ee565b60405161008d91906104b0565b60405180910390f35b61009e610118565b005b6100a861012c565b6040516100b591906104b0565b60405180910390f35b6100d860048036038101906100d39190610474565b610155565b005b6100e26101db565b6100eb81610262565b50565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6101206101db565b61012a6000610345565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61015d6101db565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036101cf5760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016101c691906104b0565b60405180910390fd5b6101d881610345565b50565b6101e3610409565b73ffffffffffffffffffffffffffffffffffffffff1661020161012c565b73ffffffffffffffffffffffffffffffffffffffff161461026057610224610409565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161025791906104b0565b60405180910390fd5b565b60008173ffffffffffffffffffffffffffffffffffffffff163b036102be57806040517f847ac5640000000000000000000000000000000000000000000000000000000081526004016102b591906104b0565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a250565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061044182610416565b9050919050565b61045181610436565b811461045c57600080fd5b50565b60008135905061046e81610448565b92915050565b60006020828403121561048a57610489610411565b5b60006104988482850161045f565b91505092915050565b6104aa81610436565b82525050565b60006020820190506104c560008301846104a1565b9291505056fea2646970667358221220aad755861b74d31885bdc5d8f1b1aa44ae08f3acdbfb8171d854505a03b102c664736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x84F CODESIZE SUB DUP1 PUSH2 0x84F DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x32 SWAP2 SWAP1 PUSH2 0x2D5 JUMP JUMPDEST DUP1 PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA5 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9C SWAP2 SWAP1 PUSH2 0x324 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xB4 DUP2 PUSH2 0xCB PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP PUSH2 0xC4 DUP3 PUSH2 0x18F PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP POP PUSH2 0x33F JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE SUB PUSH2 0x1EB JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x847AC56400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1E2 SWAP2 SWAP1 PUSH2 0x324 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A2 DUP3 PUSH2 0x277 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2B2 DUP2 PUSH2 0x297 JUMP JUMPDEST DUP2 EQ PUSH2 0x2BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x2CF DUP2 PUSH2 0x2A9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2EC JUMPI PUSH2 0x2EB PUSH2 0x272 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2FA DUP6 DUP3 DUP7 ADD PUSH2 0x2C0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x30B DUP6 DUP3 DUP7 ADD PUSH2 0x2C0 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x31E DUP2 PUSH2 0x297 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x339 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x315 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x501 DUP1 PUSH2 0x34E PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x57 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3659CFE6 EQ PUSH2 0x5C JUMPI DUP1 PUSH4 0x5C60DA1B EQ PUSH2 0x78 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x96 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xA0 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xBE JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x76 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x71 SWAP2 SWAP1 PUSH2 0x474 JUMP JUMPDEST PUSH2 0xDA JUMP JUMPDEST STOP JUMPDEST PUSH2 0x80 PUSH2 0xEE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x8D SWAP2 SWAP1 PUSH2 0x4B0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x9E PUSH2 0x118 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xA8 PUSH2 0x12C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB5 SWAP2 SWAP1 PUSH2 0x4B0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xD8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xD3 SWAP2 SWAP1 PUSH2 0x474 JUMP JUMPDEST PUSH2 0x155 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xE2 PUSH2 0x1DB JUMP JUMPDEST PUSH2 0xEB DUP2 PUSH2 0x262 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x120 PUSH2 0x1DB JUMP JUMPDEST PUSH2 0x12A PUSH1 0x0 PUSH2 0x345 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x15D PUSH2 0x1DB JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1CF JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1C6 SWAP2 SWAP1 PUSH2 0x4B0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1D8 DUP2 PUSH2 0x345 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x1E3 PUSH2 0x409 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x201 PUSH2 0x12C JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x260 JUMPI PUSH2 0x224 PUSH2 0x409 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x118CDAA700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x257 SWAP2 SWAP1 PUSH2 0x4B0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE SUB PUSH2 0x2BE JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x847AC56400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2B5 SWAP2 SWAP1 PUSH2 0x4B0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x441 DUP3 PUSH2 0x416 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x451 DUP2 PUSH2 0x436 JUMP JUMPDEST DUP2 EQ PUSH2 0x45C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x46E DUP2 PUSH2 0x448 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x48A JUMPI PUSH2 0x489 PUSH2 0x411 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x498 DUP5 DUP3 DUP6 ADD PUSH2 0x45F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x4AA DUP2 PUSH2 0x436 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x4C5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x4A1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xAA 0xD7 SSTORE DUP7 SHL PUSH21 0xD31885BDC5D8F1B1AA44AE08F3ACDBFB8171D85450 GAS SUB 0xB1 MUL 0xC6 PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"240224:1663:0:-:0;;;240728:133;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;240795:12;204566:1;204542:26;;:12;:26;;;204538:95;;204619:1;204591:31;;;;;;;;;;;:::i;:::-;;;;;;;;204538:95;204642:32;204661:12;204642:18;;;:32;;:::i;:::-;204494:187;240819:35:::1;240838:15;240819:18;;;:35;;:::i;:::-;240728:133:::0;;240224:1663;;206181:187;206254:16;206273:6;;;;;;;;;;;206254:25;;206298:8;206289:6;;:17;;;;;;;;;;;;;;;;;;206352:8;206321:40;;206342:8;206321:40;;;;;;;;;;;;206244:124;206181:187;:::o;241601:284::-;241711:1;241678:17;:29;;;:34;241674:118;;241763:17;241735:46;;;;;;;;;;;:::i;:::-;;;;;;;;241674:118;241819:17;241801:15;;:35;;;;;;;;;;;;;;;;;;241860:17;241851:27;;;;;;;;;;;;241601:284;:::o;88:117:1:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:507::-;924:6;932;981:2;969:9;960:7;956:23;952:32;949:119;;;987:79;;:::i;:::-;949:119;1107:1;1132:64;1188:7;1179:6;1168:9;1164:22;1132:64;:::i;:::-;1122:74;;1078:128;1245:2;1271:64;1327:7;1318:6;1307:9;1303:22;1271:64;:::i;:::-;1261:74;;1216:129;845:507;;;;;:::o;1358:118::-;1445:24;1463:5;1445:24;:::i;:::-;1440:3;1433:37;1358:118;;:::o;1482:222::-;1575:4;1613:2;1602:9;1598:18;1590:26;;1626:71;1694:1;1683:9;1679:17;1670:6;1626:71;:::i;:::-;1482:222;;;;:::o;240224:1663:0:-;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_checkOwner_13939":{"entryPoint":475,"id":13939,"parameterSlots":0,"returnSlots":0},"@_msgSender_12481":{"entryPoint":1033,"id":12481,"parameterSlots":0,"returnSlots":1},"@_setImplementation_16455":{"entryPoint":610,"id":16455,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_14001":{"entryPoint":837,"id":14001,"parameterSlots":1,"returnSlots":0},"@implementation_16416":{"entryPoint":238,"id":16416,"parameterSlots":0,"returnSlots":1},"@owner_13922":{"entryPoint":300,"id":13922,"parameterSlots":0,"returnSlots":1},"@renounceOwnership_13953":{"entryPoint":280,"id":13953,"parameterSlots":0,"returnSlots":0},"@transferOwnership_13981":{"entryPoint":341,"id":13981,"parameterSlots":1,"returnSlots":0},"@upgradeTo_16429":{"entryPoint":218,"id":16429,"parameterSlots":1,"returnSlots":0},"abi_decode_t_address":{"entryPoint":1119,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":1140,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":1185,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":1200,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"cleanup_t_address":{"entryPoint":1078,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":1046,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":1041,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_t_address":{"entryPoint":1096,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:1525:1","nodeType":"YulBlock","src":"0:1525:1","statements":[{"body":{"nativeSrc":"47:35:1","nodeType":"YulBlock","src":"47:35:1","statements":[{"nativeSrc":"57:19:1","nodeType":"YulAssignment","src":"57:19:1","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:1","nodeType":"YulLiteral","src":"73:2:1","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:1","nodeType":"YulIdentifier","src":"67:5:1"},"nativeSrc":"67:9:1","nodeType":"YulFunctionCall","src":"67:9:1"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:1","nodeType":"YulIdentifier","src":"57:6:1"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:1","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:1","nodeType":"YulTypedName","src":"40:6:1","type":""}],"src":"7:75:1"},{"body":{"nativeSrc":"177:28:1","nodeType":"YulBlock","src":"177:28:1","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:1","nodeType":"YulLiteral","src":"194:1:1","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:1","nodeType":"YulLiteral","src":"197:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:1","nodeType":"YulIdentifier","src":"187:6:1"},"nativeSrc":"187:12:1","nodeType":"YulFunctionCall","src":"187:12:1"},"nativeSrc":"187:12:1","nodeType":"YulExpressionStatement","src":"187:12:1"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:1","nodeType":"YulFunctionDefinition","src":"88:117:1"},{"body":{"nativeSrc":"300:28:1","nodeType":"YulBlock","src":"300:28:1","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:1","nodeType":"YulLiteral","src":"317:1:1","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:1","nodeType":"YulLiteral","src":"320:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:1","nodeType":"YulIdentifier","src":"310:6:1"},"nativeSrc":"310:12:1","nodeType":"YulFunctionCall","src":"310:12:1"},"nativeSrc":"310:12:1","nodeType":"YulExpressionStatement","src":"310:12:1"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:1","nodeType":"YulFunctionDefinition","src":"211:117:1"},{"body":{"nativeSrc":"379:81:1","nodeType":"YulBlock","src":"379:81:1","statements":[{"nativeSrc":"389:65:1","nodeType":"YulAssignment","src":"389:65:1","value":{"arguments":[{"name":"value","nativeSrc":"404:5:1","nodeType":"YulIdentifier","src":"404:5:1"},{"kind":"number","nativeSrc":"411:42:1","nodeType":"YulLiteral","src":"411:42:1","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:1","nodeType":"YulIdentifier","src":"400:3:1"},"nativeSrc":"400:54:1","nodeType":"YulFunctionCall","src":"400:54:1"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:1","nodeType":"YulIdentifier","src":"389:7:1"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:1","nodeType":"YulTypedName","src":"361:5:1","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:1","nodeType":"YulTypedName","src":"371:7:1","type":""}],"src":"334:126:1"},{"body":{"nativeSrc":"511:51:1","nodeType":"YulBlock","src":"511:51:1","statements":[{"nativeSrc":"521:35:1","nodeType":"YulAssignment","src":"521:35:1","value":{"arguments":[{"name":"value","nativeSrc":"550:5:1","nodeType":"YulIdentifier","src":"550:5:1"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:1","nodeType":"YulIdentifier","src":"532:17:1"},"nativeSrc":"532:24:1","nodeType":"YulFunctionCall","src":"532:24:1"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:1","nodeType":"YulIdentifier","src":"521:7:1"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:1","nodeType":"YulTypedName","src":"493:5:1","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:1","nodeType":"YulTypedName","src":"503:7:1","type":""}],"src":"466:96:1"},{"body":{"nativeSrc":"611:79:1","nodeType":"YulBlock","src":"611:79:1","statements":[{"body":{"nativeSrc":"668:16:1","nodeType":"YulBlock","src":"668:16:1","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:1","nodeType":"YulLiteral","src":"677:1:1","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:1","nodeType":"YulLiteral","src":"680:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:1","nodeType":"YulIdentifier","src":"670:6:1"},"nativeSrc":"670:12:1","nodeType":"YulFunctionCall","src":"670:12:1"},"nativeSrc":"670:12:1","nodeType":"YulExpressionStatement","src":"670:12:1"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:1","nodeType":"YulIdentifier","src":"634:5:1"},{"arguments":[{"name":"value","nativeSrc":"659:5:1","nodeType":"YulIdentifier","src":"659:5:1"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:1","nodeType":"YulIdentifier","src":"641:17:1"},"nativeSrc":"641:24:1","nodeType":"YulFunctionCall","src":"641:24:1"}],"functionName":{"name":"eq","nativeSrc":"631:2:1","nodeType":"YulIdentifier","src":"631:2:1"},"nativeSrc":"631:35:1","nodeType":"YulFunctionCall","src":"631:35:1"}],"functionName":{"name":"iszero","nativeSrc":"624:6:1","nodeType":"YulIdentifier","src":"624:6:1"},"nativeSrc":"624:43:1","nodeType":"YulFunctionCall","src":"624:43:1"},"nativeSrc":"621:63:1","nodeType":"YulIf","src":"621:63:1"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:1","nodeType":"YulTypedName","src":"604:5:1","type":""}],"src":"568:122:1"},{"body":{"nativeSrc":"748:87:1","nodeType":"YulBlock","src":"748:87:1","statements":[{"nativeSrc":"758:29:1","nodeType":"YulAssignment","src":"758:29:1","value":{"arguments":[{"name":"offset","nativeSrc":"780:6:1","nodeType":"YulIdentifier","src":"780:6:1"}],"functionName":{"name":"calldataload","nativeSrc":"767:12:1","nodeType":"YulIdentifier","src":"767:12:1"},"nativeSrc":"767:20:1","nodeType":"YulFunctionCall","src":"767:20:1"},"variableNames":[{"name":"value","nativeSrc":"758:5:1","nodeType":"YulIdentifier","src":"758:5:1"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"823:5:1","nodeType":"YulIdentifier","src":"823:5:1"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"796:26:1","nodeType":"YulIdentifier","src":"796:26:1"},"nativeSrc":"796:33:1","nodeType":"YulFunctionCall","src":"796:33:1"},"nativeSrc":"796:33:1","nodeType":"YulExpressionStatement","src":"796:33:1"}]},"name":"abi_decode_t_address","nativeSrc":"696:139:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"726:6:1","nodeType":"YulTypedName","src":"726:6:1","type":""},{"name":"end","nativeSrc":"734:3:1","nodeType":"YulTypedName","src":"734:3:1","type":""}],"returnVariables":[{"name":"value","nativeSrc":"742:5:1","nodeType":"YulTypedName","src":"742:5:1","type":""}],"src":"696:139:1"},{"body":{"nativeSrc":"907:263:1","nodeType":"YulBlock","src":"907:263:1","statements":[{"body":{"nativeSrc":"953:83:1","nodeType":"YulBlock","src":"953:83:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"955:77:1","nodeType":"YulIdentifier","src":"955:77:1"},"nativeSrc":"955:79:1","nodeType":"YulFunctionCall","src":"955:79:1"},"nativeSrc":"955:79:1","nodeType":"YulExpressionStatement","src":"955:79:1"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"928:7:1","nodeType":"YulIdentifier","src":"928:7:1"},{"name":"headStart","nativeSrc":"937:9:1","nodeType":"YulIdentifier","src":"937:9:1"}],"functionName":{"name":"sub","nativeSrc":"924:3:1","nodeType":"YulIdentifier","src":"924:3:1"},"nativeSrc":"924:23:1","nodeType":"YulFunctionCall","src":"924:23:1"},{"kind":"number","nativeSrc":"949:2:1","nodeType":"YulLiteral","src":"949:2:1","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"920:3:1","nodeType":"YulIdentifier","src":"920:3:1"},"nativeSrc":"920:32:1","nodeType":"YulFunctionCall","src":"920:32:1"},"nativeSrc":"917:119:1","nodeType":"YulIf","src":"917:119:1"},{"nativeSrc":"1046:117:1","nodeType":"YulBlock","src":"1046:117:1","statements":[{"nativeSrc":"1061:15:1","nodeType":"YulVariableDeclaration","src":"1061:15:1","value":{"kind":"number","nativeSrc":"1075:1:1","nodeType":"YulLiteral","src":"1075:1:1","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1065:6:1","nodeType":"YulTypedName","src":"1065:6:1","type":""}]},{"nativeSrc":"1090:63:1","nodeType":"YulAssignment","src":"1090:63:1","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1125:9:1","nodeType":"YulIdentifier","src":"1125:9:1"},{"name":"offset","nativeSrc":"1136:6:1","nodeType":"YulIdentifier","src":"1136:6:1"}],"functionName":{"name":"add","nativeSrc":"1121:3:1","nodeType":"YulIdentifier","src":"1121:3:1"},"nativeSrc":"1121:22:1","nodeType":"YulFunctionCall","src":"1121:22:1"},{"name":"dataEnd","nativeSrc":"1145:7:1","nodeType":"YulIdentifier","src":"1145:7:1"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"1100:20:1","nodeType":"YulIdentifier","src":"1100:20:1"},"nativeSrc":"1100:53:1","nodeType":"YulFunctionCall","src":"1100:53:1"},"variableNames":[{"name":"value0","nativeSrc":"1090:6:1","nodeType":"YulIdentifier","src":"1090:6:1"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"841:329:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"877:9:1","nodeType":"YulTypedName","src":"877:9:1","type":""},{"name":"dataEnd","nativeSrc":"888:7:1","nodeType":"YulTypedName","src":"888:7:1","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"900:6:1","nodeType":"YulTypedName","src":"900:6:1","type":""}],"src":"841:329:1"},{"body":{"nativeSrc":"1241:53:1","nodeType":"YulBlock","src":"1241:53:1","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1258:3:1","nodeType":"YulIdentifier","src":"1258:3:1"},{"arguments":[{"name":"value","nativeSrc":"1281:5:1","nodeType":"YulIdentifier","src":"1281:5:1"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"1263:17:1","nodeType":"YulIdentifier","src":"1263:17:1"},"nativeSrc":"1263:24:1","nodeType":"YulFunctionCall","src":"1263:24:1"}],"functionName":{"name":"mstore","nativeSrc":"1251:6:1","nodeType":"YulIdentifier","src":"1251:6:1"},"nativeSrc":"1251:37:1","nodeType":"YulFunctionCall","src":"1251:37:1"},"nativeSrc":"1251:37:1","nodeType":"YulExpressionStatement","src":"1251:37:1"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"1176:118:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1229:5:1","nodeType":"YulTypedName","src":"1229:5:1","type":""},{"name":"pos","nativeSrc":"1236:3:1","nodeType":"YulTypedName","src":"1236:3:1","type":""}],"src":"1176:118:1"},{"body":{"nativeSrc":"1398:124:1","nodeType":"YulBlock","src":"1398:124:1","statements":[{"nativeSrc":"1408:26:1","nodeType":"YulAssignment","src":"1408:26:1","value":{"arguments":[{"name":"headStart","nativeSrc":"1420:9:1","nodeType":"YulIdentifier","src":"1420:9:1"},{"kind":"number","nativeSrc":"1431:2:1","nodeType":"YulLiteral","src":"1431:2:1","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1416:3:1","nodeType":"YulIdentifier","src":"1416:3:1"},"nativeSrc":"1416:18:1","nodeType":"YulFunctionCall","src":"1416:18:1"},"variableNames":[{"name":"tail","nativeSrc":"1408:4:1","nodeType":"YulIdentifier","src":"1408:4:1"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1488:6:1","nodeType":"YulIdentifier","src":"1488:6:1"},{"arguments":[{"name":"headStart","nativeSrc":"1501:9:1","nodeType":"YulIdentifier","src":"1501:9:1"},{"kind":"number","nativeSrc":"1512:1:1","nodeType":"YulLiteral","src":"1512:1:1","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1497:3:1","nodeType":"YulIdentifier","src":"1497:3:1"},"nativeSrc":"1497:17:1","nodeType":"YulFunctionCall","src":"1497:17:1"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"1444:43:1","nodeType":"YulIdentifier","src":"1444:43:1"},"nativeSrc":"1444:71:1","nodeType":"YulFunctionCall","src":"1444:71:1"},"nativeSrc":"1444:71:1","nodeType":"YulExpressionStatement","src":"1444:71:1"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"1300:222:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1370:9:1","nodeType":"YulTypedName","src":"1370:9:1","type":""},{"name":"value0","nativeSrc":"1382:6:1","nodeType":"YulTypedName","src":"1382:6:1","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1393:4:1","nodeType":"YulTypedName","src":"1393:4:1","type":""}],"src":"1300:222:1"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n}\n","id":1,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100575760003560e01c80633659cfe61461005c5780635c60da1b14610078578063715018a6146100965780638da5cb5b146100a0578063f2fde38b146100be575b600080fd5b61007660048036038101906100719190610474565b6100da565b005b6100806100ee565b60405161008d91906104b0565b60405180910390f35b61009e610118565b005b6100a861012c565b6040516100b591906104b0565b60405180910390f35b6100d860048036038101906100d39190610474565b610155565b005b6100e26101db565b6100eb81610262565b50565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6101206101db565b61012a6000610345565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61015d6101db565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036101cf5760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016101c691906104b0565b60405180910390fd5b6101d881610345565b50565b6101e3610409565b73ffffffffffffffffffffffffffffffffffffffff1661020161012c565b73ffffffffffffffffffffffffffffffffffffffff161461026057610224610409565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161025791906104b0565b60405180910390fd5b565b60008173ffffffffffffffffffffffffffffffffffffffff163b036102be57806040517f847ac5640000000000000000000000000000000000000000000000000000000081526004016102b591906104b0565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a250565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061044182610416565b9050919050565b61045181610436565b811461045c57600080fd5b50565b60008135905061046e81610448565b92915050565b60006020828403121561048a57610489610411565b5b60006104988482850161045f565b91505092915050565b6104aa81610436565b82525050565b60006020820190506104c560008301846104a1565b9291505056fea2646970667358221220aad755861b74d31885bdc5d8f1b1aa44ae08f3acdbfb8171d854505a03b102c664736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x57 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3659CFE6 EQ PUSH2 0x5C JUMPI DUP1 PUSH4 0x5C60DA1B EQ PUSH2 0x78 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x96 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xA0 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xBE JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x76 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x71 SWAP2 SWAP1 PUSH2 0x474 JUMP JUMPDEST PUSH2 0xDA JUMP JUMPDEST STOP JUMPDEST PUSH2 0x80 PUSH2 0xEE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x8D SWAP2 SWAP1 PUSH2 0x4B0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x9E PUSH2 0x118 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xA8 PUSH2 0x12C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB5 SWAP2 SWAP1 PUSH2 0x4B0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xD8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xD3 SWAP2 SWAP1 PUSH2 0x474 JUMP JUMPDEST PUSH2 0x155 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xE2 PUSH2 0x1DB JUMP JUMPDEST PUSH2 0xEB DUP2 PUSH2 0x262 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x120 PUSH2 0x1DB JUMP JUMPDEST PUSH2 0x12A PUSH1 0x0 PUSH2 0x345 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x15D PUSH2 0x1DB JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1CF JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1C6 SWAP2 SWAP1 PUSH2 0x4B0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1D8 DUP2 PUSH2 0x345 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x1E3 PUSH2 0x409 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x201 PUSH2 0x12C JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x260 JUMPI PUSH2 0x224 PUSH2 0x409 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x118CDAA700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x257 SWAP2 SWAP1 PUSH2 0x4B0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE SUB PUSH2 0x2BE JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x847AC56400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2B5 SWAP2 SWAP1 PUSH2 0x4B0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x441 DUP3 PUSH2 0x416 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x451 DUP2 PUSH2 0x436 JUMP JUMPDEST DUP2 EQ PUSH2 0x45C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x46E DUP2 PUSH2 0x448 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x48A JUMPI PUSH2 0x489 PUSH2 0x411 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x498 DUP5 DUP3 DUP6 ADD PUSH2 0x45F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x4AA DUP2 PUSH2 0x436 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x4C5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x4A1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xAA 0xD7 SSTORE DUP7 SHL PUSH21 0xD31885BDC5D8F1B1AA44AE08F3ACDBFB8171D85450 GAS SUB 0xB1 MUL 0xC6 PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"240224:1663:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;241301:125;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;240939:103;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;205562:101;;;:::i;:::-;;204907:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;205812:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;241301:125;204800:13;:11;:13::i;:::-;241382:37:::1;241401:17;241382:18;:37::i;:::-;241301:125:::0;:::o;240939:103::-;240994:7;241020:15;;;;;;;;;;;241013:22;;240939:103;:::o;205562:101::-;204800:13;:11;:13::i;:::-;205626:30:::1;205653:1;205626:18;:30::i;:::-;205562:101::o:0;204907:85::-;204953:7;204979:6;;;;;;;;;;;204972:13;;204907:85;:::o;205812:215::-;204800:13;:11;:13::i;:::-;205916:1:::1;205896:22;;:8;:22;;::::0;205892:91:::1;;205969:1;205941:31;;;;;;;;;;;:::i;:::-;;;;;;;;205892:91;205992:28;206011:8;205992:18;:28::i;:::-;205812:215:::0;:::o;205065:162::-;205135:12;:10;:12::i;:::-;205124:23;;:7;:5;:7::i;:::-;:23;;;205120:101;;205197:12;:10;:12::i;:::-;205170:40;;;;;;;;;;;:::i;:::-;;;;;;;;205120:101;205065:162::o;241601:284::-;241711:1;241678:17;:29;;;:34;241674:118;;241763:17;241735:46;;;;;;;;;;;:::i;:::-;;;;;;;;241674:118;241819:17;241801:15;;:35;;;;;;;;;;;;;;;;;;241860:17;241851:27;;;;;;;;;;;;241601:284;:::o;206181:187::-;206254:16;206273:6;;;;;;;;;;;206254:25;;206298:8;206289:6;;:17;;;;;;;;;;;;;;;;;;206352:8;206321:40;;206342:8;206321:40;;;;;;;;;;;;206244:124;206181:187;:::o;176062:96::-;176115:7;176141:10;176134:17;;176062:96;:::o;88:117:1:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;;:::i;:::-;917:119;1075:1;1100:53;1145:7;1136:6;1125:9;1121:22;1100:53;:::i;:::-;1090:63;;1046:117;841:329;;;;:::o;1176:118::-;1263:24;1281:5;1263:24;:::i;:::-;1258:3;1251:37;1176:118;;:::o;1300:222::-;1393:4;1431:2;1420:9;1416:18;1408:26;;1444:71;1512:1;1501:9;1497:17;1488:6;1444:71;:::i;:::-;1300:222;;;;:::o"},"methodIdentifiers":{"implementation()":"5c60da1b","owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","upgradeTo(address)":"3659cfe6"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"BeaconInvalidImplementation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This contract is used in conjunction with one or more instances of {BeaconProxy} to determine their implementation contract, which is where they will delegate all function calls. An owner is able to change the implementation the beacon points to, thus upgrading the proxies that use this beacon.\",\"errors\":{\"BeaconInvalidImplementation(address)\":[{\"details\":\"The `implementation` of the beacon is invalid.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"Upgraded(address)\":{\"details\":\"Emitted when the implementation returned by the beacon is changed.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Sets the address of the initial implementation, and the initial owner who can upgrade the beacon.\"},\"implementation()\":{\"details\":\"Returns the current implementation address.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"upgradeTo(address)\":{\"details\":\"Upgrades the beacon to a new implementation. Emits an {Upgraded} event. Requirements: - msg.sender must be the owner of the contract. - `newImplementation` must be a contract.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Upgrades.sol\":\"UpgradeableBeacon\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"src/Upgrades.sol\":{\"keccak256\":\"0x420d4a351f46367d1fd8ea9409af6772fc442019d8f51bdd61b2114886ab3f98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dd2a0235e70d4f89d1d67af78ec13dd396224ec6cd87e4f906796bf50e385204\",\"dweb:/ipfs/QmULbNuaseWNiMWpBdR7ayYw5tknsYji6YtPG9KYd4k9Dp\"]}},\"version\":1}"},"Upgrades":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a99f8096bd9334840efab435915648dfa85b40885cd92cb51ba78c006ee663b664736f6c634300081c0033","opcodes":"PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA9 SWAP16 DUP1 SWAP7 0xBD SWAP4 CALLVALUE DUP5 0xE STATICCALL 0xB4 CALLDATALOAD SWAP2 JUMP BASEFEE 0xDF 0xA8 JUMPDEST BLOCKHASH DUP9 TLOAD 0xD9 0x2C 0xB5 SHL 0xA7 DUP13 STOP PUSH15 0xE663B664736F6C634300081C003300 ","sourceMap":"304383:18220:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a99f8096bd9334840efab435915648dfa85b40885cd92cb51ba78c006ee663b664736f6c634300081c0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA9 SWAP16 DUP1 SWAP7 0xBD SWAP4 CALLVALUE DUP5 0xE STATICCALL 0xB4 CALLDATALOAD SWAP2 JUMP BASEFEE 0xDF 0xA8 JUMPDEST BLOCKHASH DUP9 TLOAD 0xD9 0x2C 0xB5 SHL 0xA7 DUP13 STOP PUSH15 0xE663B664736F6C634300081C003300 ","sourceMap":"304383:18220:0:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for deploying and managing upgradeable contracts from Forge scripts or tests. NOTE: Requires OpenZeppelin Contracts v5 or higher.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Upgrades.sol\":\"Upgrades\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"src/Upgrades.sol\":{\"keccak256\":\"0x420d4a351f46367d1fd8ea9409af6772fc442019d8f51bdd61b2114886ab3f98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dd2a0235e70d4f89d1d67af78ec13dd396224ec6cd87e4f906796bf50e385204\",\"dweb:/ipfs/QmULbNuaseWNiMWpBdR7ayYw5tknsYji6YtPG9KYd4k9Dp\"]}},\"version\":1}"},"Utils":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e97b895a962d79d6a695a2f493352c781ce57ca8f2721379c395a3b0a41e960564736f6c634300081c0033","opcodes":"PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE9 PUSH28 0x895A962D79D6A695A2F493352C781CE57CA8F2721379C395A3B0A41E SWAP7 SDIV PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"242562:9276:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e97b895a962d79d6a695a2f493352c781ce57ca8f2721379c395a3b0a41e960564736f6c634300081c0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE9 PUSH28 0x895A962D79D6A695A2F493352C781CE57CA8F2721379C395A3B0A41E SWAP7 SDIV PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"242562:9276:0:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Internal helper methods used by Upgrades and Defender libraries.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Upgrades.sol\":\"Utils\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"src/Upgrades.sol\":{\"keccak256\":\"0x420d4a351f46367d1fd8ea9409af6772fc442019d8f51bdd61b2114886ab3f98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dd2a0235e70d4f89d1d67af78ec13dd396224ec6cd87e4f906796bf50e385204\",\"dweb:/ipfs/QmULbNuaseWNiMWpBdR7ayYw5tknsYji6YtPG9KYd4k9Dp\"]}},\"version\":1}"},"Versions":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220177b9adf977806043f2b031d5de95645e5cf324da902d758fe164e2b47101bab64736f6c634300081c0033","opcodes":"PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 OR PUSH28 0x9ADF977806043F2B031D5DE95645E5CF324DA902D758FE164E2B4710 SHL 0xAB PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"201653:211:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220177b9adf977806043f2b031d5de95645e5cf324da902d758fe164e2b47101bab64736f6c634300081c0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 OR PUSH28 0x9ADF977806043F2B031D5DE95645E5CF324DA902D758FE164E2B4710 SHL 0xAB PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"201653:211:0:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Upgrades.sol\":\"Versions\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"src/Upgrades.sol\":{\"keccak256\":\"0x420d4a351f46367d1fd8ea9409af6772fc442019d8f51bdd61b2114886ab3f98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dd2a0235e70d4f89d1d67af78ec13dd396224ec6cd87e4f906796bf50e385204\",\"dweb:/ipfs/QmULbNuaseWNiMWpBdR7ayYw5tknsYji6YtPG9KYd4k9Dp\"]}},\"version\":1}"},"Vm":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"accesses","outputs":[{"internalType":"bytes32[]","name":"readSlots","type":"bytes32[]"},{"internalType":"bytes32[]","name":"writeSlots","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"activeFork","outputs":[{"internalType":"uint256","name":"forkId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"name":"addr","outputs":[{"internalType":"address","name":"keyAddr","type":"address"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"allowCheatcodes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"}],"name":"assertApproxEqAbs","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"}],"name":"assertApproxEqAbs","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertApproxEqAbs","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertApproxEqAbs","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"name":"assertApproxEqAbsDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"name":"assertApproxEqAbsDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertApproxEqAbsDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertApproxEqAbsDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertApproxEqRel","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"}],"name":"assertApproxEqRel","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertApproxEqRel","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"}],"name":"assertApproxEqRel","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"name":"assertApproxEqRelDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertApproxEqRelDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"name":"assertApproxEqRelDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertApproxEqRelDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"left","type":"bytes32[]"},{"internalType":"bytes32[]","name":"right","type":"bytes32[]"}],"name":"assertEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256[]","name":"left","type":"int256[]"},{"internalType":"int256[]","name":"right","type":"int256[]"},{"internalType":"string","name":"error","type":"string"}],"name":"assertEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"left","type":"address"},{"internalType":"address","name":"right","type":"address"},{"internalType":"string","name":"error","type":"string"}],"name":"assertEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"left","type":"string"},{"internalType":"string","name":"right","type":"string"},{"internalType":"string","name":"error","type":"string"}],"name":"assertEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"left","type":"address[]"},{"internalType":"address[]","name":"right","type":"address[]"}],"name":"assertEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"left","type":"address[]"},{"internalType":"address[]","name":"right","type":"address[]"},{"internalType":"string","name":"error","type":"string"}],"name":"assertEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"left","type":"bool"},{"internalType":"bool","name":"right","type":"bool"},{"internalType":"string","name":"error","type":"string"}],"name":"assertEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"left","type":"address"},{"internalType":"address","name":"right","type":"address"}],"name":"assertEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"left","type":"uint256[]"},{"internalType":"uint256[]","name":"right","type":"uint256[]"},{"internalType":"string","name":"error","type":"string"}],"name":"assertEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool[]","name":"left","type":"bool[]"},{"internalType":"bool[]","name":"right","type":"bool[]"}],"name":"assertEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256[]","name":"left","type":"int256[]"},{"internalType":"int256[]","name":"right","type":"int256[]"}],"name":"assertEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"left","type":"bytes32"},{"internalType":"bytes32","name":"right","type":"bytes32"}],"name":"assertEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"left","type":"uint256[]"},{"internalType":"uint256[]","name":"right","type":"uint256[]"}],"name":"assertEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"left","type":"bytes"},{"internalType":"bytes","name":"right","type":"bytes"}],"name":"assertEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"name":"assertEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"left","type":"bytes32"},{"internalType":"bytes32","name":"right","type":"bytes32"},{"internalType":"string","name":"error","type":"string"}],"name":"assertEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string[]","name":"left","type":"string[]"},{"internalType":"string[]","name":"right","type":"string[]"}],"name":"assertEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"left","type":"bytes32[]"},{"internalType":"bytes32[]","name":"right","type":"bytes32[]"},{"internalType":"string","name":"error","type":"string"}],"name":"assertEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"left","type":"bytes"},{"internalType":"bytes","name":"right","type":"bytes"},{"internalType":"string","name":"error","type":"string"}],"name":"assertEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool[]","name":"left","type":"bool[]"},{"internalType":"bool[]","name":"right","type":"bool[]"},{"internalType":"string","name":"error","type":"string"}],"name":"assertEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes[]","name":"left","type":"bytes[]"},{"internalType":"bytes[]","name":"right","type":"bytes[]"}],"name":"assertEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string[]","name":"left","type":"string[]"},{"internalType":"string[]","name":"right","type":"string[]"},{"internalType":"string","name":"error","type":"string"}],"name":"assertEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"left","type":"string"},{"internalType":"string","name":"right","type":"string"}],"name":"assertEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes[]","name":"left","type":"bytes[]"},{"internalType":"bytes[]","name":"right","type":"bytes[]"},{"internalType":"string","name":"error","type":"string"}],"name":"assertEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"left","type":"bool"},{"internalType":"bool","name":"right","type":"bool"}],"name":"assertEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"name":"assertEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"name":"assertEqDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"name":"assertEqDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertEqDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertEqDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"},{"internalType":"string","name":"error","type":"string"}],"name":"assertFalse","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"}],"name":"assertFalse","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"name":"assertGe","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertGe","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"name":"assertGe","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertGe","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"name":"assertGeDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertGeDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertGeDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"name":"assertGeDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"name":"assertGt","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertGt","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"name":"assertGt","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertGt","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertGtDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertGtDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"name":"assertGtDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"name":"assertGtDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertLe","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"name":"assertLe","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"name":"assertLe","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertLe","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"name":"assertLeDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertLeDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertLeDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"name":"assertLeDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"name":"assertLt","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertLt","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertLt","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"name":"assertLt","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"name":"assertLtDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertLtDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertLtDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"name":"assertLtDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"left","type":"bytes32[]"},{"internalType":"bytes32[]","name":"right","type":"bytes32[]"}],"name":"assertNotEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256[]","name":"left","type":"int256[]"},{"internalType":"int256[]","name":"right","type":"int256[]"}],"name":"assertNotEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"left","type":"bool"},{"internalType":"bool","name":"right","type":"bool"},{"internalType":"string","name":"error","type":"string"}],"name":"assertNotEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes[]","name":"left","type":"bytes[]"},{"internalType":"bytes[]","name":"right","type":"bytes[]"},{"internalType":"string","name":"error","type":"string"}],"name":"assertNotEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"left","type":"bool"},{"internalType":"bool","name":"right","type":"bool"}],"name":"assertNotEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool[]","name":"left","type":"bool[]"},{"internalType":"bool[]","name":"right","type":"bool[]"}],"name":"assertNotEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"left","type":"bytes"},{"internalType":"bytes","name":"right","type":"bytes"}],"name":"assertNotEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"left","type":"address[]"},{"internalType":"address[]","name":"right","type":"address[]"}],"name":"assertNotEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertNotEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"left","type":"uint256[]"},{"internalType":"uint256[]","name":"right","type":"uint256[]"}],"name":"assertNotEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool[]","name":"left","type":"bool[]"},{"internalType":"bool[]","name":"right","type":"bool[]"},{"internalType":"string","name":"error","type":"string"}],"name":"assertNotEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"left","type":"string"},{"internalType":"string","name":"right","type":"string"}],"name":"assertNotEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"left","type":"address[]"},{"internalType":"address[]","name":"right","type":"address[]"},{"internalType":"string","name":"error","type":"string"}],"name":"assertNotEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"left","type":"string"},{"internalType":"string","name":"right","type":"string"},{"internalType":"string","name":"error","type":"string"}],"name":"assertNotEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"left","type":"address"},{"internalType":"address","name":"right","type":"address"},{"internalType":"string","name":"error","type":"string"}],"name":"assertNotEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"left","type":"bytes32"},{"internalType":"bytes32","name":"right","type":"bytes32"}],"name":"assertNotEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"left","type":"bytes"},{"internalType":"bytes","name":"right","type":"bytes"},{"internalType":"string","name":"error","type":"string"}],"name":"assertNotEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertNotEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"left","type":"uint256[]"},{"internalType":"uint256[]","name":"right","type":"uint256[]"},{"internalType":"string","name":"error","type":"string"}],"name":"assertNotEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"left","type":"address"},{"internalType":"address","name":"right","type":"address"}],"name":"assertNotEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"left","type":"bytes32"},{"internalType":"bytes32","name":"right","type":"bytes32"},{"internalType":"string","name":"error","type":"string"}],"name":"assertNotEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string[]","name":"left","type":"string[]"},{"internalType":"string[]","name":"right","type":"string[]"},{"internalType":"string","name":"error","type":"string"}],"name":"assertNotEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"name":"assertNotEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"left","type":"bytes32[]"},{"internalType":"bytes32[]","name":"right","type":"bytes32[]"},{"internalType":"string","name":"error","type":"string"}],"name":"assertNotEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string[]","name":"left","type":"string[]"},{"internalType":"string[]","name":"right","type":"string[]"}],"name":"assertNotEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256[]","name":"left","type":"int256[]"},{"internalType":"int256[]","name":"right","type":"int256[]"},{"internalType":"string","name":"error","type":"string"}],"name":"assertNotEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes[]","name":"left","type":"bytes[]"},{"internalType":"bytes[]","name":"right","type":"bytes[]"}],"name":"assertNotEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"name":"assertNotEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"name":"assertNotEqDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertNotEqDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"name":"assertNotEqDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertNotEqDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"}],"name":"assertTrue","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"},{"internalType":"string","name":"error","type":"string"}],"name":"assertTrue","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"}],"name":"assume","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBlobBaseFee","type":"uint256"}],"name":"blobBaseFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"hashes","type":"bytes32[]"}],"name":"blobhashes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"char","type":"string"}],"name":"breakpoint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"char","type":"string"},{"internalType":"bool","name":"value","type":"bool"}],"name":"breakpoint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"broadcast","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"signer","type":"address"}],"name":"broadcast","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"name":"broadcast","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"name":"broadcastRawTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newChainId","type":"uint256"}],"name":"chainId","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearMockedCalls","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"name":"closeFile","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newCoinbase","type":"address"}],"name":"coinbase","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"bytes32","name":"initCodeHash","type":"bytes32"}],"name":"computeCreate2Address","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"bytes32","name":"initCodeHash","type":"bytes32"},{"internalType":"address","name":"deployer","type":"address"}],"name":"computeCreate2Address","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"deployer","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"}],"name":"computeCreateAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"from","type":"string"},{"internalType":"string","name":"to","type":"string"}],"name":"copyFile","outputs":[{"internalType":"uint64","name":"copied","type":"uint64"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"bool","name":"recursive","type":"bool"}],"name":"createDir","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"urlOrAlias","type":"string"}],"name":"createFork","outputs":[{"internalType":"uint256","name":"forkId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"urlOrAlias","type":"string"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"createFork","outputs":[{"internalType":"uint256","name":"forkId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"urlOrAlias","type":"string"},{"internalType":"bytes32","name":"txHash","type":"bytes32"}],"name":"createFork","outputs":[{"internalType":"uint256","name":"forkId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"urlOrAlias","type":"string"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"createSelectFork","outputs":[{"internalType":"uint256","name":"forkId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"urlOrAlias","type":"string"},{"internalType":"bytes32","name":"txHash","type":"bytes32"}],"name":"createSelectFork","outputs":[{"internalType":"uint256","name":"forkId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"urlOrAlias","type":"string"}],"name":"createSelectFork","outputs":[{"internalType":"uint256","name":"forkId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"walletLabel","type":"string"}],"name":"createWallet","outputs":[{"components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}],"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"name":"createWallet","outputs":[{"components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}],"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"},{"internalType":"string","name":"walletLabel","type":"string"}],"name":"createWallet","outputs":[{"components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}],"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"newBalance","type":"uint256"}],"name":"deal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"snapshotId","type":"uint256"}],"name":"deleteSnapshot","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deleteSnapshots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"artifactPath","type":"string"},{"internalType":"bytes","name":"constructorArgs","type":"bytes"}],"name":"deployCode","outputs":[{"internalType":"address","name":"deployedAddress","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"artifactPath","type":"string"}],"name":"deployCode","outputs":[{"internalType":"address","name":"deployedAddress","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"string","name":"derivationPath","type":"string"},{"internalType":"uint32","name":"index","type":"uint32"},{"internalType":"string","name":"language","type":"string"}],"name":"deriveKey","outputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"uint32","name":"index","type":"uint32"},{"internalType":"string","name":"language","type":"string"}],"name":"deriveKey","outputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"uint32","name":"index","type":"uint32"}],"name":"deriveKey","outputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"string","name":"derivationPath","type":"string"},{"internalType":"uint32","name":"index","type":"uint32"}],"name":"deriveKey","outputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"newDifficulty","type":"uint256"}],"name":"difficulty","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"pathToStateJson","type":"string"}],"name":"dumpState","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"name":"ensNamehash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"name":"envAddress","outputs":[{"internalType":"address","name":"value","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"name":"envAddress","outputs":[{"internalType":"address[]","name":"value","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"name":"envBool","outputs":[{"internalType":"bool","name":"value","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"name":"envBool","outputs":[{"internalType":"bool[]","name":"value","type":"bool[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"name":"envBytes","outputs":[{"internalType":"bytes","name":"value","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"name":"envBytes","outputs":[{"internalType":"bytes[]","name":"value","type":"bytes[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"name":"envBytes32","outputs":[{"internalType":"bytes32[]","name":"value","type":"bytes32[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"name":"envBytes32","outputs":[{"internalType":"bytes32","name":"value","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"name":"envExists","outputs":[{"internalType":"bool","name":"result","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"name":"envInt","outputs":[{"internalType":"int256[]","name":"value","type":"int256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"name":"envInt","outputs":[{"internalType":"int256","name":"value","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"bytes32[]","name":"defaultValue","type":"bytes32[]"}],"name":"envOr","outputs":[{"internalType":"bytes32[]","name":"value","type":"bytes32[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"int256[]","name":"defaultValue","type":"int256[]"}],"name":"envOr","outputs":[{"internalType":"int256[]","name":"value","type":"int256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"defaultValue","type":"bool"}],"name":"envOr","outputs":[{"internalType":"bool","name":"value","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"address","name":"defaultValue","type":"address"}],"name":"envOr","outputs":[{"internalType":"address","name":"value","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"defaultValue","type":"uint256"}],"name":"envOr","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"bytes[]","name":"defaultValue","type":"bytes[]"}],"name":"envOr","outputs":[{"internalType":"bytes[]","name":"value","type":"bytes[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"uint256[]","name":"defaultValue","type":"uint256[]"}],"name":"envOr","outputs":[{"internalType":"uint256[]","name":"value","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"string[]","name":"defaultValue","type":"string[]"}],"name":"envOr","outputs":[{"internalType":"string[]","name":"value","type":"string[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes","name":"defaultValue","type":"bytes"}],"name":"envOr","outputs":[{"internalType":"bytes","name":"value","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes32","name":"defaultValue","type":"bytes32"}],"name":"envOr","outputs":[{"internalType":"bytes32","name":"value","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"int256","name":"defaultValue","type":"int256"}],"name":"envOr","outputs":[{"internalType":"int256","name":"value","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"address[]","name":"defaultValue","type":"address[]"}],"name":"envOr","outputs":[{"internalType":"address[]","name":"value","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"defaultValue","type":"string"}],"name":"envOr","outputs":[{"internalType":"string","name":"value","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"bool[]","name":"defaultValue","type":"bool[]"}],"name":"envOr","outputs":[{"internalType":"bool[]","name":"value","type":"bool[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"name":"envString","outputs":[{"internalType":"string[]","name":"value","type":"string[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"name":"envString","outputs":[{"internalType":"string","name":"value","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"name":"envUint","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"name":"envUint","outputs":[{"internalType":"uint256[]","name":"value","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"newRuntimeBytecode","type":"bytes"}],"name":"etch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"fromBlock","type":"uint256"},{"internalType":"uint256","name":"toBlock","type":"uint256"},{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32[]","name":"topics","type":"bytes32[]"}],"name":"eth_getLogs","outputs":[{"components":[{"internalType":"address","name":"emitter","type":"address"},{"internalType":"bytes32[]","name":"topics","type":"bytes32[]"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"blockNumber","type":"uint64"},{"internalType":"bytes32","name":"transactionHash","type":"bytes32"},{"internalType":"uint64","name":"transactionIndex","type":"uint64"},{"internalType":"uint256","name":"logIndex","type":"uint256"},{"internalType":"bool","name":"removed","type":"bool"}],"internalType":"struct VmSafe.EthGetLogs[]","name":"logs","type":"tuple[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"name":"exists","outputs":[{"internalType":"bool","name":"result","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"uint256","name":"msgValue","type":"uint256"},{"internalType":"uint64","name":"gas","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"expectCall","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"uint256","name":"msgValue","type":"uint256"},{"internalType":"uint64","name":"gas","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint64","name":"count","type":"uint64"}],"name":"expectCall","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"uint256","name":"msgValue","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint64","name":"count","type":"uint64"}],"name":"expectCall","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"expectCall","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint64","name":"count","type":"uint64"}],"name":"expectCall","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"uint256","name":"msgValue","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"expectCall","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"uint256","name":"msgValue","type":"uint256"},{"internalType":"uint64","name":"minGas","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"expectCallMinGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"uint256","name":"msgValue","type":"uint256"},{"internalType":"uint64","name":"minGas","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint64","name":"count","type":"uint64"}],"name":"expectCallMinGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"expectEmit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"checkTopic1","type":"bool"},{"internalType":"bool","name":"checkTopic2","type":"bool"},{"internalType":"bool","name":"checkTopic3","type":"bool"},{"internalType":"bool","name":"checkData","type":"bool"}],"name":"expectEmit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"checkTopic1","type":"bool"},{"internalType":"bool","name":"checkTopic2","type":"bool"},{"internalType":"bool","name":"checkTopic3","type":"bool"},{"internalType":"bool","name":"checkData","type":"bool"},{"internalType":"address","name":"emitter","type":"address"}],"name":"expectEmit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"emitter","type":"address"}],"name":"expectEmit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"expectEmitAnonymous","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"emitter","type":"address"}],"name":"expectEmitAnonymous","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"checkTopic0","type":"bool"},{"internalType":"bool","name":"checkTopic1","type":"bool"},{"internalType":"bool","name":"checkTopic2","type":"bool"},{"internalType":"bool","name":"checkTopic3","type":"bool"},{"internalType":"bool","name":"checkData","type":"bool"},{"internalType":"address","name":"emitter","type":"address"}],"name":"expectEmitAnonymous","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"checkTopic0","type":"bool"},{"internalType":"bool","name":"checkTopic1","type":"bool"},{"internalType":"bool","name":"checkTopic2","type":"bool"},{"internalType":"bool","name":"checkTopic3","type":"bool"},{"internalType":"bool","name":"checkData","type":"bool"}],"name":"expectEmitAnonymous","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"revertData","type":"bytes4"}],"name":"expectRevert","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"revertData","type":"bytes"}],"name":"expectRevert","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"expectRevert","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint64","name":"min","type":"uint64"},{"internalType":"uint64","name":"max","type":"uint64"}],"name":"expectSafeMemory","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint64","name":"min","type":"uint64"},{"internalType":"uint64","name":"max","type":"uint64"}],"name":"expectSafeMemoryCall","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBasefee","type":"uint256"}],"name":"fee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string[]","name":"commandInput","type":"string[]"}],"name":"ffi","outputs":[{"internalType":"bytes","name":"result","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"name":"fsMetadata","outputs":[{"components":[{"internalType":"bool","name":"isDir","type":"bool"},{"internalType":"bool","name":"isSymlink","type":"bool"},{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"bool","name":"readOnly","type":"bool"},{"internalType":"uint256","name":"modified","type":"uint256"},{"internalType":"uint256","name":"accessed","type":"uint256"},{"internalType":"uint256","name":"created","type":"uint256"}],"internalType":"struct VmSafe.FsMetadata","name":"metadata","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBlobBaseFee","outputs":[{"internalType":"uint256","name":"blobBaseFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBlobhashes","outputs":[{"internalType":"bytes32[]","name":"hashes","type":"bytes32[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBlockNumber","outputs":[{"internalType":"uint256","name":"height","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBlockTimestamp","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"artifactPath","type":"string"}],"name":"getCode","outputs":[{"internalType":"bytes","name":"creationBytecode","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"artifactPath","type":"string"}],"name":"getDeployedCode","outputs":[{"internalType":"bytes","name":"runtimeBytecode","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFoundryVersion","outputs":[{"internalType":"string","name":"version","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getLabel","outputs":[{"internalType":"string","name":"currentLabel","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"elementSlot","type":"bytes32"}],"name":"getMappingKeyAndParentOf","outputs":[{"internalType":"bool","name":"found","type":"bool"},{"internalType":"bytes32","name":"key","type":"bytes32"},{"internalType":"bytes32","name":"parent","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"mappingSlot","type":"bytes32"}],"name":"getMappingLength","outputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"mappingSlot","type":"bytes32"},{"internalType":"uint256","name":"idx","type":"uint256"}],"name":"getMappingSlotAt","outputs":[{"internalType":"bytes32","name":"value","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}],"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple"}],"name":"getNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getRecordedLogs","outputs":[{"components":[{"internalType":"bytes32[]","name":"topics","type":"bytes32[]"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"address","name":"emitter","type":"address"}],"internalType":"struct VmSafe.Log[]","name":"logs","type":"tuple[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"input","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"indexOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"enum VmSafe.ForgeContext","name":"context","type":"uint8"}],"name":"isContext","outputs":[{"internalType":"bool","name":"result","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"name":"isDir","outputs":[{"internalType":"bool","name":"result","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"name":"isFile","outputs":[{"internalType":"bool","name":"result","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isPersistent","outputs":[{"internalType":"bool","name":"persistent","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"keyExists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"keyExistsJson","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"keyExistsToml","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"string","name":"newLabel","type":"string"}],"name":"label","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lastCallGas","outputs":[{"components":[{"internalType":"uint64","name":"gasLimit","type":"uint64"},{"internalType":"uint64","name":"gasTotalUsed","type":"uint64"},{"internalType":"uint64","name":"gasMemoryUsed","type":"uint64"},{"internalType":"int64","name":"gasRefunded","type":"int64"},{"internalType":"uint64","name":"gasRemaining","type":"uint64"}],"internalType":"struct VmSafe.Gas","name":"gas","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"slot","type":"bytes32"}],"name":"load","outputs":[{"internalType":"bytes32","name":"data","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"pathToAllocsJson","type":"string"}],"name":"loadAllocs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"makePersistent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account0","type":"address"},{"internalType":"address","name":"account1","type":"address"}],"name":"makePersistent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"makePersistent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account0","type":"address"},{"internalType":"address","name":"account1","type":"address"},{"internalType":"address","name":"account2","type":"address"}],"name":"makePersistent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"uint256","name":"msgValue","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"returnData","type":"bytes"}],"name":"mockCall","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"returnData","type":"bytes"}],"name":"mockCall","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"uint256","name":"msgValue","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"revertData","type":"bytes"}],"name":"mockCallRevert","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"revertData","type":"bytes"}],"name":"mockCallRevert","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"name":"parseAddress","outputs":[{"internalType":"address","name":"parsedValue","type":"address"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"name":"parseBool","outputs":[{"internalType":"bool","name":"parsedValue","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"name":"parseBytes","outputs":[{"internalType":"bytes","name":"parsedValue","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"name":"parseBytes32","outputs":[{"internalType":"bytes32","name":"parsedValue","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"name":"parseInt","outputs":[{"internalType":"int256","name":"parsedValue","type":"int256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"json","type":"string"}],"name":"parseJson","outputs":[{"internalType":"bytes","name":"abiEncodedData","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseJson","outputs":[{"internalType":"bytes","name":"abiEncodedData","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseJsonAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseJsonAddressArray","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseJsonBool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseJsonBoolArray","outputs":[{"internalType":"bool[]","name":"","type":"bool[]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseJsonBytes","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseJsonBytes32","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseJsonBytes32Array","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseJsonBytesArray","outputs":[{"internalType":"bytes[]","name":"","type":"bytes[]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseJsonInt","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseJsonIntArray","outputs":[{"internalType":"int256[]","name":"","type":"int256[]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseJsonKeys","outputs":[{"internalType":"string[]","name":"keys","type":"string[]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseJsonString","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseJsonStringArray","outputs":[{"internalType":"string[]","name":"","type":"string[]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"typeDescription","type":"string"}],"name":"parseJsonType","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"},{"internalType":"string","name":"typeDescription","type":"string"}],"name":"parseJsonType","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"},{"internalType":"string","name":"typeDescription","type":"string"}],"name":"parseJsonTypeArray","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseJsonUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseJsonUintArray","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseToml","outputs":[{"internalType":"bytes","name":"abiEncodedData","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"toml","type":"string"}],"name":"parseToml","outputs":[{"internalType":"bytes","name":"abiEncodedData","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseTomlAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseTomlAddressArray","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseTomlBool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseTomlBoolArray","outputs":[{"internalType":"bool[]","name":"","type":"bool[]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseTomlBytes","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseTomlBytes32","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseTomlBytes32Array","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseTomlBytesArray","outputs":[{"internalType":"bytes[]","name":"","type":"bytes[]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseTomlInt","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseTomlIntArray","outputs":[{"internalType":"int256[]","name":"","type":"int256[]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseTomlKeys","outputs":[{"internalType":"string[]","name":"keys","type":"string[]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseTomlString","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseTomlStringArray","outputs":[{"internalType":"string[]","name":"","type":"string[]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseTomlUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseTomlUintArray","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"name":"parseUint","outputs":[{"internalType":"uint256","name":"parsedValue","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pauseGasMetering","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"msgSender","type":"address"},{"internalType":"address","name":"txOrigin","type":"address"}],"name":"prank","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"msgSender","type":"address"}],"name":"prank","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"newPrevrandao","type":"bytes32"}],"name":"prevrandao","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newPrevrandao","type":"uint256"}],"name":"prevrandao","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"projectRoot","outputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"promptText","type":"string"}],"name":"prompt","outputs":[{"internalType":"string","name":"input","type":"string"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"promptText","type":"string"}],"name":"promptAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"promptText","type":"string"}],"name":"promptSecret","outputs":[{"internalType":"string","name":"input","type":"string"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"promptText","type":"string"}],"name":"promptSecretUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"promptText","type":"string"}],"name":"promptUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"randomAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"randomUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"min","type":"uint256"},{"internalType":"uint256","name":"max","type":"uint256"}],"name":"randomUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"readCallers","outputs":[{"internalType":"enum VmSafe.CallerMode","name":"callerMode","type":"uint8"},{"internalType":"address","name":"msgSender","type":"address"},{"internalType":"address","name":"txOrigin","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"maxDepth","type":"uint64"}],"name":"readDir","outputs":[{"components":[{"internalType":"string","name":"errorMessage","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"depth","type":"uint64"},{"internalType":"bool","name":"isDir","type":"bool"},{"internalType":"bool","name":"isSymlink","type":"bool"}],"internalType":"struct VmSafe.DirEntry[]","name":"entries","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"maxDepth","type":"uint64"},{"internalType":"bool","name":"followLinks","type":"bool"}],"name":"readDir","outputs":[{"components":[{"internalType":"string","name":"errorMessage","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"depth","type":"uint64"},{"internalType":"bool","name":"isDir","type":"bool"},{"internalType":"bool","name":"isSymlink","type":"bool"}],"internalType":"struct VmSafe.DirEntry[]","name":"entries","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"name":"readDir","outputs":[{"components":[{"internalType":"string","name":"errorMessage","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"depth","type":"uint64"},{"internalType":"bool","name":"isDir","type":"bool"},{"internalType":"bool","name":"isSymlink","type":"bool"}],"internalType":"struct VmSafe.DirEntry[]","name":"entries","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"name":"readFile","outputs":[{"internalType":"string","name":"data","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"name":"readFileBinary","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"name":"readLine","outputs":[{"internalType":"string","name":"line","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"linkPath","type":"string"}],"name":"readLink","outputs":[{"internalType":"string","name":"targetPath","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"record","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"recordLogs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"name":"rememberKey","outputs":[{"internalType":"address","name":"keyAddr","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"bool","name":"recursive","type":"bool"}],"name":"removeDir","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"name":"removeFile","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"input","type":"string"},{"internalType":"string","name":"from","type":"string"},{"internalType":"string","name":"to","type":"string"}],"name":"replace","outputs":[{"internalType":"string","name":"output","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"resetNonce","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resumeGasMetering","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"snapshotId","type":"uint256"}],"name":"revertTo","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"snapshotId","type":"uint256"}],"name":"revertToAndDelete","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"revokePersistent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"revokePersistent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newHeight","type":"uint256"}],"name":"roll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"txHash","type":"bytes32"}],"name":"rollFork","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"forkId","type":"uint256"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"rollFork","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"rollFork","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"forkId","type":"uint256"},{"internalType":"bytes32","name":"txHash","type":"bytes32"}],"name":"rollFork","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"urlOrAlias","type":"string"},{"internalType":"string","name":"method","type":"string"},{"internalType":"string","name":"params","type":"string"}],"name":"rpc","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"method","type":"string"},{"internalType":"string","name":"params","type":"string"}],"name":"rpc","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"rpcAlias","type":"string"}],"name":"rpcUrl","outputs":[{"internalType":"string","name":"json","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rpcUrlStructs","outputs":[{"components":[{"internalType":"string","name":"key","type":"string"},{"internalType":"string","name":"url","type":"string"}],"internalType":"struct VmSafe.Rpc[]","name":"urls","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rpcUrls","outputs":[{"internalType":"string[2][]","name":"urls","type":"string[2][]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"forkId","type":"uint256"}],"name":"selectFork","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"address[]","name":"values","type":"address[]"}],"name":"serializeAddress","outputs":[{"internalType":"string","name":"json","type":"string"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"address","name":"value","type":"address"}],"name":"serializeAddress","outputs":[{"internalType":"string","name":"json","type":"string"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bool[]","name":"values","type":"bool[]"}],"name":"serializeBool","outputs":[{"internalType":"string","name":"json","type":"string"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bool","name":"value","type":"bool"}],"name":"serializeBool","outputs":[{"internalType":"string","name":"json","type":"string"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bytes[]","name":"values","type":"bytes[]"}],"name":"serializeBytes","outputs":[{"internalType":"string","name":"json","type":"string"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bytes","name":"value","type":"bytes"}],"name":"serializeBytes","outputs":[{"internalType":"string","name":"json","type":"string"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bytes32[]","name":"values","type":"bytes32[]"}],"name":"serializeBytes32","outputs":[{"internalType":"string","name":"json","type":"string"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bytes32","name":"value","type":"bytes32"}],"name":"serializeBytes32","outputs":[{"internalType":"string","name":"json","type":"string"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"int256","name":"value","type":"int256"}],"name":"serializeInt","outputs":[{"internalType":"string","name":"json","type":"string"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"int256[]","name":"values","type":"int256[]"}],"name":"serializeInt","outputs":[{"internalType":"string","name":"json","type":"string"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"value","type":"string"}],"name":"serializeJson","outputs":[{"internalType":"string","name":"json","type":"string"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"typeDescription","type":"string"},{"internalType":"bytes","name":"value","type":"bytes"}],"name":"serializeJsonType","outputs":[{"internalType":"string","name":"json","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"string","name":"typeDescription","type":"string"},{"internalType":"bytes","name":"value","type":"bytes"}],"name":"serializeJsonType","outputs":[{"internalType":"string","name":"json","type":"string"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"string[]","name":"values","type":"string[]"}],"name":"serializeString","outputs":[{"internalType":"string","name":"json","type":"string"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"string","name":"value","type":"string"}],"name":"serializeString","outputs":[{"internalType":"string","name":"json","type":"string"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"serializeUint","outputs":[{"internalType":"string","name":"json","type":"string"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"uint256[]","name":"values","type":"uint256[]"}],"name":"serializeUint","outputs":[{"internalType":"string","name":"json","type":"string"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"serializeUintToHex","outputs":[{"internalType":"string","name":"json","type":"string"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"}],"name":"setBlockhash","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"value","type":"string"}],"name":"setEnv","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint64","name":"newNonce","type":"uint64"}],"name":"setNonce","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint64","name":"newNonce","type":"uint64"}],"name":"setNonceUnsafe","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"digest","type":"bytes32"}],"name":"sign","outputs":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"name":"sign","outputs":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}],"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple"},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"name":"sign","outputs":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"name":"sign","outputs":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}],"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple"},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"name":"signCompact","outputs":[{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"vs","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"name":"signCompact","outputs":[{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"vs","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"digest","type":"bytes32"}],"name":"signCompact","outputs":[{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"vs","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"name":"signCompact","outputs":[{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"vs","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"name":"signP256","outputs":[{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"skipTest","type":"bool"}],"name":"skip","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"duration","type":"uint256"}],"name":"sleep","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"snapshot","outputs":[{"internalType":"uint256","name":"snapshotId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"input","type":"string"},{"internalType":"string","name":"delimiter","type":"string"}],"name":"split","outputs":[{"internalType":"string[]","name":"outputs","type":"string[]"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"startBroadcast","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"signer","type":"address"}],"name":"startBroadcast","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"name":"startBroadcast","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startMappingRecording","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"msgSender","type":"address"}],"name":"startPrank","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"msgSender","type":"address"},{"internalType":"address","name":"txOrigin","type":"address"}],"name":"startPrank","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startStateDiffRecording","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stopAndReturnStateDiff","outputs":[{"components":[{"components":[{"internalType":"uint256","name":"forkId","type":"uint256"},{"internalType":"uint256","name":"chainId","type":"uint256"}],"internalType":"struct VmSafe.ChainInfo","name":"chainInfo","type":"tuple"},{"internalType":"enum VmSafe.AccountAccessKind","name":"kind","type":"uint8"},{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"accessor","type":"address"},{"internalType":"bool","name":"initialized","type":"bool"},{"internalType":"uint256","name":"oldBalance","type":"uint256"},{"internalType":"uint256","name":"newBalance","type":"uint256"},{"internalType":"bytes","name":"deployedCode","type":"bytes"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bool","name":"reverted","type":"bool"},{"components":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"slot","type":"bytes32"},{"internalType":"bool","name":"isWrite","type":"bool"},{"internalType":"bytes32","name":"previousValue","type":"bytes32"},{"internalType":"bytes32","name":"newValue","type":"bytes32"},{"internalType":"bool","name":"reverted","type":"bool"}],"internalType":"struct VmSafe.StorageAccess[]","name":"storageAccesses","type":"tuple[]"},{"internalType":"uint64","name":"depth","type":"uint64"}],"internalType":"struct VmSafe.AccountAccess[]","name":"accountAccesses","type":"tuple[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stopBroadcast","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stopExpectSafeMemory","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stopMappingRecording","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stopPrank","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"slot","type":"bytes32"},{"internalType":"bytes32","name":"value","type":"bytes32"}],"name":"store","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"data","type":"string"}],"name":"toBase64","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"name":"toBase64","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"data","type":"string"}],"name":"toBase64URL","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"name":"toBase64URL","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"input","type":"string"}],"name":"toLowercase","outputs":[{"internalType":"string","name":"output","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"value","type":"address"}],"name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"value","type":"bytes"}],"name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"value","type":"int256"}],"name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"value","type":"bytes32"}],"name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"input","type":"string"}],"name":"toUppercase","outputs":[{"internalType":"string","name":"output","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"forkId","type":"uint256"},{"internalType":"bytes32","name":"txHash","type":"bytes32"}],"name":"transact","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"txHash","type":"bytes32"}],"name":"transact","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"input","type":"string"}],"name":"trim","outputs":[{"internalType":"string","name":"output","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string[]","name":"commandInput","type":"string[]"}],"name":"tryFfi","outputs":[{"components":[{"internalType":"int32","name":"exitCode","type":"int32"},{"internalType":"bytes","name":"stdout","type":"bytes"},{"internalType":"bytes","name":"stderr","type":"bytes"}],"internalType":"struct VmSafe.FfiResult","name":"result","type":"tuple"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newGasPrice","type":"uint256"}],"name":"txGasPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unixTime","outputs":[{"internalType":"uint256","name":"milliseconds","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTimestamp","type":"uint256"}],"name":"warp","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"string","name":"data","type":"string"}],"name":"writeFile","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"writeFileBinary","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"string","name":"valueKey","type":"string"}],"name":"writeJson","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"path","type":"string"}],"name":"writeJson","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"string","name":"data","type":"string"}],"name":"writeLine","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"string","name":"valueKey","type":"string"}],"name":"writeToml","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"path","type":"string"}],"name":"writeToml","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"accesses(address)":"65bc9481","activeFork()":"2f103f22","addr(uint256)":"ffa18649","allowCheatcodes(address)":"ea060291","assertApproxEqAbs(int256,int256,uint256)":"240f839d","assertApproxEqAbs(int256,int256,uint256,string)":"8289e621","assertApproxEqAbs(uint256,uint256,uint256)":"16d207c6","assertApproxEqAbs(uint256,uint256,uint256,string)":"f710b062","assertApproxEqAbsDecimal(int256,int256,uint256,uint256)":"3d5bc8bc","assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)":"6a5066d4","assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)":"045c55ce","assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)":"60429eb2","assertApproxEqRel(int256,int256,uint256)":"fea2d14f","assertApproxEqRel(int256,int256,uint256,string)":"ef277d72","assertApproxEqRel(uint256,uint256,uint256)":"8cf25ef4","assertApproxEqRel(uint256,uint256,uint256,string)":"1ecb7d33","assertApproxEqRelDecimal(int256,int256,uint256,uint256)":"abbf21cc","assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)":"fccc11c4","assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)":"21ed2977","assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)":"82d6c8fd","assertEq(address,address)":"515361f6","assertEq(address,address,string)":"2f2769d1","assertEq(address[],address[])":"3868ac34","assertEq(address[],address[],string)":"3e9173c5","assertEq(bool,bool)":"f7fe3477","assertEq(bool,bool,string)":"4db19e7e","assertEq(bool[],bool[])":"707df785","assertEq(bool[],bool[],string)":"e48a8f8d","assertEq(bytes,bytes)":"97624631","assertEq(bytes,bytes,string)":"e24fed00","assertEq(bytes32,bytes32)":"7c84c69b","assertEq(bytes32,bytes32,string)":"c1fa1ed0","assertEq(bytes32[],bytes32[])":"0cc9ee84","assertEq(bytes32[],bytes32[],string)":"e03e9177","assertEq(bytes[],bytes[])":"e5fb9b4a","assertEq(bytes[],bytes[],string)":"f413f0b6","assertEq(int256,int256)":"fe74f05b","assertEq(int256,int256,string)":"714a2f13","assertEq(int256[],int256[])":"711043ac","assertEq(int256[],int256[],string)":"191f1b30","assertEq(string,string)":"f320d963","assertEq(string,string,string)":"36f656d8","assertEq(string[],string[])":"cf1c049c","assertEq(string[],string[],string)":"eff6b27d","assertEq(uint256,uint256)":"98296c54","assertEq(uint256,uint256,string)":"88b44c85","assertEq(uint256[],uint256[])":"975d5a12","assertEq(uint256[],uint256[],string)":"5d18c73a","assertEqDecimal(int256,int256,uint256)":"48016c04","assertEqDecimal(int256,int256,uint256,string)":"7e77b0c5","assertEqDecimal(uint256,uint256,uint256)":"27af7d9c","assertEqDecimal(uint256,uint256,uint256,string)":"d0cbbdef","assertFalse(bool)":"a5982885","assertFalse(bool,string)":"7ba04809","assertGe(int256,int256)":"0a30b771","assertGe(int256,int256,string)":"a84328dd","assertGe(uint256,uint256)":"a8d4d1d9","assertGe(uint256,uint256,string)":"e25242c0","assertGeDecimal(int256,int256,uint256)":"dc28c0f1","assertGeDecimal(int256,int256,uint256,string)":"5df93c9b","assertGeDecimal(uint256,uint256,uint256)":"3d1fe08a","assertGeDecimal(uint256,uint256,uint256,string)":"8bff9133","assertGt(int256,int256)":"5a362d45","assertGt(int256,int256,string)":"f8d33b9b","assertGt(uint256,uint256)":"db07fcd2","assertGt(uint256,uint256,string)":"d9a3c4d2","assertGtDecimal(int256,int256,uint256)":"78611f0e","assertGtDecimal(int256,int256,uint256,string)":"04a5c7ab","assertGtDecimal(uint256,uint256,uint256)":"eccd2437","assertGtDecimal(uint256,uint256,uint256,string)":"64949a8d","assertLe(int256,int256)":"95fd154e","assertLe(int256,int256,string)":"4dfe692c","assertLe(uint256,uint256)":"8466f415","assertLe(uint256,uint256,string)":"d17d4b0d","assertLeDecimal(int256,int256,uint256)":"11d1364a","assertLeDecimal(int256,int256,uint256,string)":"aa5cf788","assertLeDecimal(uint256,uint256,uint256)":"c304aab7","assertLeDecimal(uint256,uint256,uint256,string)":"7fefbbe0","assertLt(int256,int256)":"3e914080","assertLt(int256,int256,string)":"9ff531e3","assertLt(uint256,uint256)":"b12fc005","assertLt(uint256,uint256,string)":"65d5c135","assertLtDecimal(int256,int256,uint256)":"dbe8d88b","assertLtDecimal(int256,int256,uint256,string)":"40f0b4e0","assertLtDecimal(uint256,uint256,uint256)":"2077337e","assertLtDecimal(uint256,uint256,uint256,string)":"a972d037","assertNotEq(address,address)":"b12e1694","assertNotEq(address,address,string)":"8775a591","assertNotEq(address[],address[])":"46d0b252","assertNotEq(address[],address[],string)":"72c7e0b5","assertNotEq(bool,bool)":"236e4d66","assertNotEq(bool,bool,string)":"1091a261","assertNotEq(bool[],bool[])":"286fafea","assertNotEq(bool[],bool[],string)":"62c6f9fb","assertNotEq(bytes,bytes)":"3cf78e28","assertNotEq(bytes,bytes,string)":"9507540e","assertNotEq(bytes32,bytes32)":"898e83fc","assertNotEq(bytes32,bytes32,string)":"b2332f51","assertNotEq(bytes32[],bytes32[])":"0603ea68","assertNotEq(bytes32[],bytes32[],string)":"b873634c","assertNotEq(bytes[],bytes[])":"edecd035","assertNotEq(bytes[],bytes[],string)":"1dcd1f68","assertNotEq(int256,int256)":"f4c004e3","assertNotEq(int256,int256,string)":"4724c5b9","assertNotEq(int256[],int256[])":"0b72f4ef","assertNotEq(int256[],int256[],string)":"d3977322","assertNotEq(string,string)":"6a8237b3","assertNotEq(string,string,string)":"78bdcea7","assertNotEq(string[],string[])":"bdfacbe8","assertNotEq(string[],string[],string)":"b67187f3","assertNotEq(uint256,uint256)":"b7909320","assertNotEq(uint256,uint256,string)":"98f9bdbd","assertNotEq(uint256[],uint256[])":"56f29cba","assertNotEq(uint256[],uint256[],string)":"9a7fbd8f","assertNotEqDecimal(int256,int256,uint256)":"14e75680","assertNotEqDecimal(int256,int256,uint256,string)":"33949f0b","assertNotEqDecimal(uint256,uint256,uint256)":"669efca7","assertNotEqDecimal(uint256,uint256,uint256,string)":"f5a55558","assertTrue(bool)":"0c9fd581","assertTrue(bool,string)":"a34edc03","assume(bool)":"4c63e562","blobBaseFee(uint256)":"6d315d7e","blobhashes(bytes32[])":"129de7eb","breakpoint(string)":"f0259e92","breakpoint(string,bool)":"f7d39a8d","broadcast()":"afc98040","broadcast(address)":"e6962cdb","broadcast(uint256)":"f67a965b","broadcastRawTransaction(bytes)":"8c0c72e0","chainId(uint256)":"4049ddd2","clearMockedCalls()":"3fdf4e15","closeFile(string)":"48c3241f","coinbase(address)":"ff483c54","computeCreate2Address(bytes32,bytes32)":"890c283b","computeCreate2Address(bytes32,bytes32,address)":"d323826a","computeCreateAddress(address,uint256)":"74637a7a","copyFile(string,string)":"a54a87d8","createDir(string,bool)":"168b64d3","createFork(string)":"31ba3498","createFork(string,bytes32)":"7ca29682","createFork(string,uint256)":"6ba3ba2b","createSelectFork(string)":"98680034","createSelectFork(string,bytes32)":"84d52b7a","createSelectFork(string,uint256)":"71ee464d","createWallet(string)":"7404f1d2","createWallet(uint256)":"7a675bb6","createWallet(uint256,string)":"ed7c5462","deal(address,uint256)":"c88a5e6d","deleteSnapshot(uint256)":"a6368557","deleteSnapshots()":"421ae469","deployCode(string)":"9a8325a0","deployCode(string,bytes)":"29ce9dde","deriveKey(string,string,uint32)":"6bcb2c1b","deriveKey(string,string,uint32,string)":"29233b1f","deriveKey(string,uint32)":"6229498b","deriveKey(string,uint32,string)":"32c8176d","difficulty(uint256)":"46cc92d9","dumpState(string)":"709ecd3f","ensNamehash(string)":"8c374c65","envAddress(string)":"350d56bf","envAddress(string,string)":"ad31b9fa","envBool(string)":"7ed1ec7d","envBool(string,string)":"aaaddeaf","envBytes(string)":"4d7baf06","envBytes(string,string)":"ddc2651b","envBytes32(string)":"97949042","envBytes32(string,string)":"5af231c1","envExists(string)":"ce8365f9","envInt(string)":"892a0c61","envInt(string,string)":"42181150","envOr(string,address)":"561fe540","envOr(string,bool)":"4777f3cf","envOr(string,bytes)":"b3e47705","envOr(string,bytes32)":"b4a85892","envOr(string,int256)":"bbcb713e","envOr(string,string)":"d145736c","envOr(string,string,address[])":"c74e9deb","envOr(string,string,bool[])":"eb85e83b","envOr(string,string,bytes32[])":"2281f367","envOr(string,string,bytes[])":"64bc3e64","envOr(string,string,int256[])":"4700d74b","envOr(string,string,string[])":"859216bc","envOr(string,string,uint256[])":"74318528","envOr(string,uint256)":"5e97348f","envString(string)":"f877cb19","envString(string,string)":"14b02bc9","envUint(string)":"c1978d1f","envUint(string,string)":"f3dec099","etch(address,bytes)":"b4d6c782","eth_getLogs(uint256,uint256,address,bytes32[])":"35e1349b","exists(string)":"261a323e","expectCall(address,bytes)":"bd6af434","expectCall(address,bytes,uint64)":"c1adbbff","expectCall(address,uint256,bytes)":"f30c7ba3","expectCall(address,uint256,bytes,uint64)":"a2b1a1ae","expectCall(address,uint256,uint64,bytes)":"23361207","expectCall(address,uint256,uint64,bytes,uint64)":"65b7b7cc","expectCallMinGas(address,uint256,uint64,bytes)":"08e4e116","expectCallMinGas(address,uint256,uint64,bytes,uint64)":"e13a1834","expectEmit()":"440ed10d","expectEmit(address)":"86b9620d","expectEmit(bool,bool,bool,bool)":"491cc7c2","expectEmit(bool,bool,bool,bool,address)":"81bad6f3","expectEmitAnonymous()":"2e5f270c","expectEmitAnonymous(address)":"6fc68705","expectEmitAnonymous(bool,bool,bool,bool,bool)":"c948db5e","expectEmitAnonymous(bool,bool,bool,bool,bool,address)":"71c95899","expectRevert()":"f4844814","expectRevert(bytes)":"f28dceb3","expectRevert(bytes4)":"c31eb0e0","expectSafeMemory(uint64,uint64)":"6d016688","expectSafeMemoryCall(uint64,uint64)":"05838bf4","fee(uint256)":"39b37ab0","ffi(string[])":"89160467","fsMetadata(string)":"af368a08","getBlobBaseFee()":"1f6d6ef7","getBlobhashes()":"f56ff18b","getBlockNumber()":"42cbb15c","getBlockTimestamp()":"796b89b9","getCode(string)":"8d1cc925","getDeployedCode(string)":"3ebf73b4","getFoundryVersion()":"ea991bb5","getLabel(address)":"28a249b0","getMappingKeyAndParentOf(address,bytes32)":"876e24e6","getMappingLength(address,bytes32)":"2f2fd63f","getMappingSlotAt(address,bytes32,uint256)":"ebc73ab4","getNonce((address,uint256,uint256,uint256))":"a5748aad","getNonce(address)":"2d0335ab","getRecordedLogs()":"191553a4","indexOf(string,string)":"8a0807b7","isContext(uint8)":"64af255d","isDir(string)":"7d15d019","isFile(string)":"e0eb04d4","isPersistent(address)":"d92d8efd","keyExists(string,string)":"528a683c","keyExistsJson(string,string)":"db4235f6","keyExistsToml(string,string)":"600903ad","label(address,string)":"c657c718","lastCallGas()":"2b589b28","load(address,bytes32)":"667f9d70","loadAllocs(string)":"b3a056d7","makePersistent(address)":"57e22dde","makePersistent(address,address)":"4074e0a8","makePersistent(address,address,address)":"efb77a75","makePersistent(address[])":"1d9e269e","mockCall(address,bytes,bytes)":"b96213e4","mockCall(address,uint256,bytes,bytes)":"81409b91","mockCallRevert(address,bytes,bytes)":"dbaad147","mockCallRevert(address,uint256,bytes,bytes)":"d23cd037","parseAddress(string)":"c6ce059d","parseBool(string)":"974ef924","parseBytes(string)":"8f5d232d","parseBytes32(string)":"087e6e81","parseInt(string)":"42346c5e","parseJson(string)":"6a82600a","parseJson(string,string)":"85940ef1","parseJsonAddress(string,string)":"1e19e657","parseJsonAddressArray(string,string)":"2fce7883","parseJsonBool(string,string)":"9f86dc91","parseJsonBoolArray(string,string)":"91f3b94f","parseJsonBytes(string,string)":"fd921be8","parseJsonBytes32(string,string)":"1777e59d","parseJsonBytes32Array(string,string)":"91c75bc3","parseJsonBytesArray(string,string)":"6631aa99","parseJsonInt(string,string)":"7b048ccd","parseJsonIntArray(string,string)":"9983c28a","parseJsonKeys(string,string)":"213e4198","parseJsonString(string,string)":"49c4fac8","parseJsonStringArray(string,string)":"498fdcf4","parseJsonType(string,string)":"a9da313b","parseJsonType(string,string,string)":"e3f5ae33","parseJsonTypeArray(string,string,string)":"0175d535","parseJsonUint(string,string)":"addde2b6","parseJsonUintArray(string,string)":"522074ab","parseToml(string)":"592151f0","parseToml(string,string)":"37736e08","parseTomlAddress(string,string)":"65e7c844","parseTomlAddressArray(string,string)":"65c428e7","parseTomlBool(string,string)":"d30dced6","parseTomlBoolArray(string,string)":"127cfe9a","parseTomlBytes(string,string)":"d77bfdb9","parseTomlBytes32(string,string)":"8e214810","parseTomlBytes32Array(string,string)":"3e716f81","parseTomlBytesArray(string,string)":"b197c247","parseTomlInt(string,string)":"c1350739","parseTomlIntArray(string,string)":"d3522ae6","parseTomlKeys(string,string)":"812a44b2","parseTomlString(string,string)":"8bb8dd43","parseTomlStringArray(string,string)":"9f629281","parseTomlUint(string,string)":"cc7b0487","parseTomlUintArray(string,string)":"b5df27c8","parseUint(string)":"fa91454d","pauseGasMetering()":"d1a5b36f","prank(address)":"ca669fa7","prank(address,address)":"47e50cce","prevrandao(bytes32)":"3b925549","prevrandao(uint256)":"9cb1c0d4","projectRoot()":"d930a0e6","prompt(string)":"47eaf474","promptAddress(string)":"62ee05f4","promptSecret(string)":"1e279d41","promptSecretUint(string)":"69ca02b7","promptUint(string)":"652fd489","randomAddress()":"d5bee9f5","randomUint()":"25124730","randomUint(uint256,uint256)":"d61b051b","readCallers()":"4ad0bac9","readDir(string)":"c4bc59e0","readDir(string,uint64)":"1497876c","readDir(string,uint64,bool)":"8102d70d","readFile(string)":"60f9bb11","readFileBinary(string)":"16ed7bc4","readLine(string)":"70f55728","readLink(string)":"9f5684a2","record()":"266cf109","recordLogs()":"41af2f52","rememberKey(uint256)":"22100064","removeDir(string,bool)":"45c62011","removeFile(string)":"f1afe04d","replace(string,string,string)":"e00ad03e","resetNonce(address)":"1c72346d","resumeGasMetering()":"2bcd50e0","revertTo(uint256)":"44d7f0a4","revertToAndDelete(uint256)":"03e0aca9","revokePersistent(address)":"997a0222","revokePersistent(address[])":"3ce969e6","roll(uint256)":"1f7b4f30","rollFork(bytes32)":"0f29772b","rollFork(uint256)":"d9bbf3a1","rollFork(uint256,bytes32)":"f2830f7b","rollFork(uint256,uint256)":"d74c83a4","rpc(string,string)":"1206c8a8","rpc(string,string,string)":"0199a220","rpcUrl(string)":"975a6ce9","rpcUrlStructs()":"9d2ad72a","rpcUrls()":"a85a8418","selectFork(uint256)":"9ebf6827","serializeAddress(string,string,address)":"972c6062","serializeAddress(string,string,address[])":"1e356e1a","serializeBool(string,string,bool)":"ac22e971","serializeBool(string,string,bool[])":"92925aa1","serializeBytes(string,string,bytes)":"f21d52c7","serializeBytes(string,string,bytes[])":"9884b232","serializeBytes32(string,string,bytes32)":"2d812b44","serializeBytes32(string,string,bytes32[])":"201e43e2","serializeInt(string,string,int256)":"3f33db60","serializeInt(string,string,int256[])":"7676e127","serializeJson(string,string)":"9b3358b0","serializeJsonType(string,bytes)":"6d4f96a6","serializeJsonType(string,string,string,bytes)":"6f93bccb","serializeString(string,string,string)":"88da6d35","serializeString(string,string,string[])":"561cd6f3","serializeUint(string,string,uint256)":"129e9002","serializeUint(string,string,uint256[])":"fee9a469","serializeUintToHex(string,string,uint256)":"ae5a2ae8","setBlockhash(uint256,bytes32)":"5314b54a","setEnv(string,string)":"3d5923ee","setNonce(address,uint64)":"f8e18b57","setNonceUnsafe(address,uint64)":"9b67b21c","sign((address,uint256,uint256,uint256),bytes32)":"b25c5a25","sign(address,bytes32)":"8c1aa205","sign(bytes32)":"799cd333","sign(uint256,bytes32)":"e341eaa4","signCompact((address,uint256,uint256,uint256),bytes32)":"3d0e292f","signCompact(address,bytes32)":"8e2f97bf","signCompact(bytes32)":"a282dc4b","signCompact(uint256,bytes32)":"cc2a781f","signP256(uint256,bytes32)":"83211b40","skip(bool)":"dd82d13e","sleep(uint256)":"fa9d8713","snapshot()":"9711715a","split(string,string)":"8bb75533","startBroadcast()":"7fb5297f","startBroadcast(address)":"7fec2a8d","startBroadcast(uint256)":"ce817d47","startMappingRecording()":"3e9705c0","startPrank(address)":"06447d56","startPrank(address,address)":"45b56078","startStateDiffRecording()":"cf22e3c9","stopAndReturnStateDiff()":"aa5cf90e","stopBroadcast()":"76eadd36","stopExpectSafeMemory()":"0956441b","stopMappingRecording()":"0d4aae9b","stopPrank()":"90c5013b","store(address,bytes32,bytes32)":"70ca10bb","toBase64(bytes)":"a5cbfe65","toBase64(string)":"3f8be2c8","toBase64URL(bytes)":"c8bd0e4a","toBase64URL(string)":"ae3165b3","toLowercase(string)":"50bb0884","toString(address)":"56ca623e","toString(bool)":"71dce7da","toString(bytes)":"71aad10d","toString(bytes32)":"b11a19e8","toString(int256)":"a322c40e","toString(uint256)":"6900a3ae","toUppercase(string)":"074ae3d7","transact(bytes32)":"be646da1","transact(uint256,bytes32)":"4d8abc4b","trim(string)":"b2dad155","tryFfi(string[])":"f45c1ce7","txGasPrice(uint256)":"48f50c0f","unixTime()":"625387dc","warp(uint256)":"e5d6bf02","writeFile(string,string)":"897e0a97","writeFileBinary(string,bytes)":"1f21fc80","writeJson(string,string)":"e23cd19f","writeJson(string,string,string)":"35d6ad46","writeLine(string,string)":"619d897f","writeToml(string,string)":"c0865ba7","writeToml(string,string,string)":"51ac6a33"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"accesses\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"readSlots\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"writeSlots\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"addr\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"keyAddr\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"allowCheatcodes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqAbs\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqAbs\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqAbs\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqAbs\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqAbsDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqAbsDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqAbsDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqAbsDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqRel\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqRel\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqRel\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqRel\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqRelDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqRelDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqRelDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqRelDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"left\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"right\",\"type\":\"bytes32[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256[]\",\"name\":\"left\",\"type\":\"int256[]\"},{\"internalType\":\"int256[]\",\"name\":\"right\",\"type\":\"int256[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"left\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"right\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"left\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"right\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"left\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"right\",\"type\":\"address[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"left\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"right\",\"type\":\"address[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"left\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"right\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"left\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"right\",\"type\":\"address\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"left\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"right\",\"type\":\"uint256[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool[]\",\"name\":\"left\",\"type\":\"bool[]\"},{\"internalType\":\"bool[]\",\"name\":\"right\",\"type\":\"bool[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256[]\",\"name\":\"left\",\"type\":\"int256[]\"},{\"internalType\":\"int256[]\",\"name\":\"right\",\"type\":\"int256[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"left\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"right\",\"type\":\"bytes32\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"left\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"right\",\"type\":\"uint256[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"left\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"right\",\"type\":\"bytes\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"left\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"right\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"left\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"right\",\"type\":\"string[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"left\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"right\",\"type\":\"bytes32[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"left\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"right\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool[]\",\"name\":\"left\",\"type\":\"bool[]\"},{\"internalType\":\"bool[]\",\"name\":\"right\",\"type\":\"bool[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"left\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes[]\",\"name\":\"right\",\"type\":\"bytes[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"left\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"right\",\"type\":\"string[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"left\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"right\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"left\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes[]\",\"name\":\"right\",\"type\":\"bytes[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"left\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"right\",\"type\":\"bool\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertFalse\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"}],\"name\":\"assertFalse\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertGe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertGe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertGeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertGeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertGt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertGt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertGtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertGtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertLe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertLe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertLeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertLeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertLt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertLt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertLtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertLtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"left\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"right\",\"type\":\"bytes32[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256[]\",\"name\":\"left\",\"type\":\"int256[]\"},{\"internalType\":\"int256[]\",\"name\":\"right\",\"type\":\"int256[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"left\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"right\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"left\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes[]\",\"name\":\"right\",\"type\":\"bytes[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"left\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"right\",\"type\":\"bool\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool[]\",\"name\":\"left\",\"type\":\"bool[]\"},{\"internalType\":\"bool[]\",\"name\":\"right\",\"type\":\"bool[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"left\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"right\",\"type\":\"bytes\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"left\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"right\",\"type\":\"address[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"left\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"right\",\"type\":\"uint256[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool[]\",\"name\":\"left\",\"type\":\"bool[]\"},{\"internalType\":\"bool[]\",\"name\":\"right\",\"type\":\"bool[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"left\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"right\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"left\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"right\",\"type\":\"address[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"left\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"right\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"left\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"right\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"left\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"right\",\"type\":\"bytes32\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"left\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"right\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"left\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"right\",\"type\":\"uint256[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"left\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"right\",\"type\":\"address\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"left\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"right\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"left\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"right\",\"type\":\"string[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"left\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"right\",\"type\":\"bytes32[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"left\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"right\",\"type\":\"string[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256[]\",\"name\":\"left\",\"type\":\"int256[]\"},{\"internalType\":\"int256[]\",\"name\":\"right\",\"type\":\"int256[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"left\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes[]\",\"name\":\"right\",\"type\":\"bytes[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertNotEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertNotEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"}],\"name\":\"assertTrue\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertTrue\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"}],\"name\":\"assume\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newBlobBaseFee\",\"type\":\"uint256\"}],\"name\":\"blobBaseFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"hashes\",\"type\":\"bytes32[]\"}],\"name\":\"blobhashes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"char\",\"type\":\"string\"}],\"name\":\"breakpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"char\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"breakpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"broadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"broadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"broadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"broadcastRawTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newChainId\",\"type\":\"uint256\"}],\"name\":\"chainId\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"clearMockedCalls\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"closeFile\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newCoinbase\",\"type\":\"address\"}],\"name\":\"coinbase\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"initCodeHash\",\"type\":\"bytes32\"}],\"name\":\"computeCreate2Address\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"initCodeHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"}],\"name\":\"computeCreate2Address\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"computeCreateAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"from\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"to\",\"type\":\"string\"}],\"name\":\"copyFile\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"copied\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"recursive\",\"type\":\"bool\"}],\"name\":\"createDir\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"urlOrAlias\",\"type\":\"string\"}],\"name\":\"createFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"urlOrAlias\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"createFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"urlOrAlias\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"}],\"name\":\"createFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"urlOrAlias\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"createSelectFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"urlOrAlias\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"}],\"name\":\"createSelectFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"urlOrAlias\",\"type\":\"string\"}],\"name\":\"createSelectFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"walletLabel\",\"type\":\"string\"}],\"name\":\"createWallet\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"createWallet\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"walletLabel\",\"type\":\"string\"}],\"name\":\"createWallet\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"newBalance\",\"type\":\"uint256\"}],\"name\":\"deal\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"snapshotId\",\"type\":\"uint256\"}],\"name\":\"deleteSnapshot\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deleteSnapshots\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"artifactPath\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"constructorArgs\",\"type\":\"bytes\"}],\"name\":\"deployCode\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"deployedAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"artifactPath\",\"type\":\"string\"}],\"name\":\"deployCode\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"deployedAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"derivationPath\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"},{\"internalType\":\"string\",\"name\":\"language\",\"type\":\"string\"}],\"name\":\"deriveKey\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"},{\"internalType\":\"string\",\"name\":\"language\",\"type\":\"string\"}],\"name\":\"deriveKey\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"}],\"name\":\"deriveKey\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"derivationPath\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"}],\"name\":\"deriveKey\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newDifficulty\",\"type\":\"uint256\"}],\"name\":\"difficulty\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"pathToStateJson\",\"type\":\"string\"}],\"name\":\"dumpState\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"ensNamehash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envAddress\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"value\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envBool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envBool\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"value\",\"type\":\"bool[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envBytes\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"value\",\"type\":\"bytes[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envBytes32\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"value\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envBytes32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envInt\",\"outputs\":[{\"internalType\":\"int256[]\",\"name\":\"value\",\"type\":\"int256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"defaultValue\",\"type\":\"bytes32[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"value\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"int256[]\",\"name\":\"defaultValue\",\"type\":\"int256[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"int256[]\",\"name\":\"value\",\"type\":\"int256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"defaultValue\",\"type\":\"bool\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"defaultValue\",\"type\":\"address\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"defaultValue\",\"type\":\"uint256\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"bytes[]\",\"name\":\"defaultValue\",\"type\":\"bytes[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"value\",\"type\":\"bytes[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"uint256[]\",\"name\":\"defaultValue\",\"type\":\"uint256[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"value\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"defaultValue\",\"type\":\"string[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"value\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"defaultValue\",\"type\":\"bytes\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"defaultValue\",\"type\":\"bytes32\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"int256\",\"name\":\"defaultValue\",\"type\":\"int256\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"address[]\",\"name\":\"defaultValue\",\"type\":\"address[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"value\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"defaultValue\",\"type\":\"string\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"bool[]\",\"name\":\"defaultValue\",\"type\":\"bool[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"value\",\"type\":\"bool[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envString\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"value\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envUint\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"value\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"newRuntimeBytecode\",\"type\":\"bytes\"}],\"name\":\"etch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fromBlock\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toBlock\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32[]\",\"name\":\"topics\",\"type\":\"bytes32[]\"}],\"name\":\"eth_getLogs\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"emitter\",\"type\":\"address\"},{\"internalType\":\"bytes32[]\",\"name\":\"topics\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"transactionHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"transactionIndex\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"logIndex\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"removed\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.EthGetLogs[]\",\"name\":\"logs\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"exists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"gas\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"expectCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"gas\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"name\":\"expectCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"name\":\"expectCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"expectCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"name\":\"expectCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"expectCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"minGas\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"expectCallMinGas\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"minGas\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"name\":\"expectCallMinGas\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"expectEmit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"checkTopic1\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkTopic2\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkTopic3\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkData\",\"type\":\"bool\"}],\"name\":\"expectEmit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"checkTopic1\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkTopic2\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkTopic3\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkData\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"emitter\",\"type\":\"address\"}],\"name\":\"expectEmit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"emitter\",\"type\":\"address\"}],\"name\":\"expectEmit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"expectEmitAnonymous\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"emitter\",\"type\":\"address\"}],\"name\":\"expectEmitAnonymous\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"checkTopic0\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkTopic1\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkTopic2\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkTopic3\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkData\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"emitter\",\"type\":\"address\"}],\"name\":\"expectEmitAnonymous\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"checkTopic0\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkTopic1\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkTopic2\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkTopic3\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkData\",\"type\":\"bool\"}],\"name\":\"expectEmitAnonymous\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"revertData\",\"type\":\"bytes4\"}],\"name\":\"expectRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"revertData\",\"type\":\"bytes\"}],\"name\":\"expectRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"expectRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"min\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"}],\"name\":\"expectSafeMemory\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"min\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"}],\"name\":\"expectSafeMemoryCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newBasefee\",\"type\":\"uint256\"}],\"name\":\"fee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"commandInput\",\"type\":\"string[]\"}],\"name\":\"ffi\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"fsMetadata\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"isDir\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isSymlink\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"readOnly\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"modified\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accessed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"created\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.FsMetadata\",\"name\":\"metadata\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlobBaseFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blobBaseFee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlobhashes\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"hashes\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlockTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"artifactPath\",\"type\":\"string\"}],\"name\":\"getCode\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"creationBytecode\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"artifactPath\",\"type\":\"string\"}],\"name\":\"getDeployedCode\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"runtimeBytecode\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFoundryVersion\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getLabel\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"currentLabel\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"elementSlot\",\"type\":\"bytes32\"}],\"name\":\"getMappingKeyAndParentOf\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"found\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"parent\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"mappingSlot\",\"type\":\"bytes32\"}],\"name\":\"getMappingLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"mappingSlot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"getMappingSlotAt\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"}],\"name\":\"getNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRecordedLogs\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32[]\",\"name\":\"topics\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"emitter\",\"type\":\"address\"}],\"internalType\":\"struct VmSafe.Log[]\",\"name\":\"logs\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"indexOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum VmSafe.ForgeContext\",\"name\":\"context\",\"type\":\"uint8\"}],\"name\":\"isContext\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"isDir\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"isFile\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isPersistent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"persistent\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"keyExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"keyExistsJson\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"keyExistsToml\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"newLabel\",\"type\":\"string\"}],\"name\":\"label\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastCallGas\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"gasLimit\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"gasTotalUsed\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"gasMemoryUsed\",\"type\":\"uint64\"},{\"internalType\":\"int64\",\"name\":\"gasRefunded\",\"type\":\"int64\"},{\"internalType\":\"uint64\",\"name\":\"gasRemaining\",\"type\":\"uint64\"}],\"internalType\":\"struct VmSafe.Gas\",\"name\":\"gas\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"load\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"data\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"pathToAllocsJson\",\"type\":\"string\"}],\"name\":\"loadAllocs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"}],\"name\":\"makePersistent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account0\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account1\",\"type\":\"address\"}],\"name\":\"makePersistent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"makePersistent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account0\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account1\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account2\",\"type\":\"address\"}],\"name\":\"makePersistent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"name\":\"mockCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"name\":\"mockCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"revertData\",\"type\":\"bytes\"}],\"name\":\"mockCallRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"revertData\",\"type\":\"bytes\"}],\"name\":\"mockCallRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"parsedValue\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseBool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"parsedValue\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"parsedValue\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseBytes32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"parsedValue\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"parsedValue\",\"type\":\"int256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"name\":\"parseJson\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"abiEncodedData\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJson\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"abiEncodedData\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonAddressArray\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBoolArray\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"\",\"type\":\"bool[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBytes32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBytes32Array\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBytesArray\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"\",\"type\":\"bytes[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonIntArray\",\"outputs\":[{\"internalType\":\"int256[]\",\"name\":\"\",\"type\":\"int256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonKeys\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"keys\",\"type\":\"string[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonStringArray\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"typeDescription\",\"type\":\"string\"}],\"name\":\"parseJsonType\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"typeDescription\",\"type\":\"string\"}],\"name\":\"parseJsonType\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"typeDescription\",\"type\":\"string\"}],\"name\":\"parseJsonTypeArray\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonUintArray\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseToml\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"abiEncodedData\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"}],\"name\":\"parseToml\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"abiEncodedData\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlAddressArray\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBoolArray\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"\",\"type\":\"bool[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBytes32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBytes32Array\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBytesArray\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"\",\"type\":\"bytes[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlIntArray\",\"outputs\":[{\"internalType\":\"int256[]\",\"name\":\"\",\"type\":\"int256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlKeys\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"keys\",\"type\":\"string[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlStringArray\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlUintArray\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"parsedValue\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseGasMetering\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"txOrigin\",\"type\":\"address\"}],\"name\":\"prank\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"}],\"name\":\"prank\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"newPrevrandao\",\"type\":\"bytes32\"}],\"name\":\"prevrandao\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newPrevrandao\",\"type\":\"uint256\"}],\"name\":\"prevrandao\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"projectRoot\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"promptText\",\"type\":\"string\"}],\"name\":\"prompt\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"promptText\",\"type\":\"string\"}],\"name\":\"promptAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"promptText\",\"type\":\"string\"}],\"name\":\"promptSecret\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"promptText\",\"type\":\"string\"}],\"name\":\"promptSecretUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"promptText\",\"type\":\"string\"}],\"name\":\"promptUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"randomAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"randomUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"min\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"name\":\"randomUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"readCallers\",\"outputs\":[{\"internalType\":\"enum VmSafe.CallerMode\",\"name\":\"callerMode\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"txOrigin\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"maxDepth\",\"type\":\"uint64\"}],\"name\":\"readDir\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"errorMessage\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"depth\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isDir\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isSymlink\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.DirEntry[]\",\"name\":\"entries\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"maxDepth\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"followLinks\",\"type\":\"bool\"}],\"name\":\"readDir\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"errorMessage\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"depth\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isDir\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isSymlink\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.DirEntry[]\",\"name\":\"entries\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"readDir\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"errorMessage\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"depth\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isDir\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isSymlink\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.DirEntry[]\",\"name\":\"entries\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"readFile\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"readFileBinary\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"readLine\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"line\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"linkPath\",\"type\":\"string\"}],\"name\":\"readLink\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"targetPath\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"record\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recordLogs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"rememberKey\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"keyAddr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"recursive\",\"type\":\"bool\"}],\"name\":\"removeDir\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"removeFile\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"from\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"to\",\"type\":\"string\"}],\"name\":\"replace\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"output\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"resetNonce\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resumeGasMetering\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"snapshotId\",\"type\":\"uint256\"}],\"name\":\"revertTo\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"snapshotId\",\"type\":\"uint256\"}],\"name\":\"revertToAndDelete\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"}],\"name\":\"revokePersistent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokePersistent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newHeight\",\"type\":\"uint256\"}],\"name\":\"roll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"}],\"name\":\"rollFork\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"rollFork\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"rollFork\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"}],\"name\":\"rollFork\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"urlOrAlias\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"method\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"params\",\"type\":\"string\"}],\"name\":\"rpc\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"method\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"params\",\"type\":\"string\"}],\"name\":\"rpc\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"rpcAlias\",\"type\":\"string\"}],\"name\":\"rpcUrl\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rpcUrlStructs\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"url\",\"type\":\"string\"}],\"internalType\":\"struct VmSafe.Rpc[]\",\"name\":\"urls\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rpcUrls\",\"outputs\":[{\"internalType\":\"string[2][]\",\"name\":\"urls\",\"type\":\"string[2][]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"}],\"name\":\"selectFork\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"address[]\",\"name\":\"values\",\"type\":\"address[]\"}],\"name\":\"serializeAddress\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"name\":\"serializeAddress\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bool[]\",\"name\":\"values\",\"type\":\"bool[]\"}],\"name\":\"serializeBool\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"serializeBool\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bytes[]\",\"name\":\"values\",\"type\":\"bytes[]\"}],\"name\":\"serializeBytes\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"name\":\"serializeBytes\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"values\",\"type\":\"bytes32[]\"}],\"name\":\"serializeBytes32\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"name\":\"serializeBytes32\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"name\":\"serializeInt\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"int256[]\",\"name\":\"values\",\"type\":\"int256[]\"}],\"name\":\"serializeInt\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"name\":\"serializeJson\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"typeDescription\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"name\":\"serializeJsonType\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"typeDescription\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"name\":\"serializeJsonType\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"values\",\"type\":\"string[]\"}],\"name\":\"serializeString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"name\":\"serializeString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"serializeUint\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"serializeUint\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"serializeUintToHex\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"name\":\"setBlockhash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"name\":\"setEnv\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"newNonce\",\"type\":\"uint64\"}],\"name\":\"setNonce\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"newNonce\",\"type\":\"uint64\"}],\"name\":\"setNonceUnsafe\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"sign\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"sign\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"sign\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"sign\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"signCompact\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"vs\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"signCompact\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"vs\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"signCompact\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"vs\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"signCompact\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"vs\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"signP256\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"skipTest\",\"type\":\"bool\"}],\"name\":\"skip\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"}],\"name\":\"sleep\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"snapshotId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delimiter\",\"type\":\"string\"}],\"name\":\"split\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"outputs\",\"type\":\"string[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startBroadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"startBroadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"startBroadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startMappingRecording\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"}],\"name\":\"startPrank\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"txOrigin\",\"type\":\"address\"}],\"name\":\"startPrank\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startStateDiffRecording\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopAndReturnStateDiff\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.ChainInfo\",\"name\":\"chainInfo\",\"type\":\"tuple\"},{\"internalType\":\"enum VmSafe.AccountAccessKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"accessor\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"initialized\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"oldBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newBalance\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"deployedCode\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"reverted\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"isWrite\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"previousValue\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"newValue\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"reverted\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.StorageAccess[]\",\"name\":\"storageAccesses\",\"type\":\"tuple[]\"},{\"internalType\":\"uint64\",\"name\":\"depth\",\"type\":\"uint64\"}],\"internalType\":\"struct VmSafe.AccountAccess[]\",\"name\":\"accountAccesses\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopBroadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopExpectSafeMemory\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopMappingRecording\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopPrank\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"name\":\"store\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"name\":\"toBase64\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"toBase64\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"name\":\"toBase64URL\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"toBase64URL\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"}],\"name\":\"toLowercase\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"output\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"}],\"name\":\"toUppercase\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"output\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"}],\"name\":\"transact\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"}],\"name\":\"transact\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"}],\"name\":\"trim\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"output\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"commandInput\",\"type\":\"string[]\"}],\"name\":\"tryFfi\",\"outputs\":[{\"components\":[{\"internalType\":\"int32\",\"name\":\"exitCode\",\"type\":\"int32\"},{\"internalType\":\"bytes\",\"name\":\"stdout\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"stderr\",\"type\":\"bytes\"}],\"internalType\":\"struct VmSafe.FfiResult\",\"name\":\"result\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newGasPrice\",\"type\":\"uint256\"}],\"name\":\"txGasPrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unixTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"milliseconds\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newTimestamp\",\"type\":\"uint256\"}],\"name\":\"warp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"name\":\"writeFile\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"writeFileBinary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"}],\"name\":\"writeJson\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"writeJson\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"name\":\"writeLine\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"}],\"name\":\"writeToml\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"writeToml\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"accesses(address)\":{\"notice\":\"Gets all accessed reads and write slot from a `vm.record` session, for a given address.\"},\"activeFork()\":{\"notice\":\"Returns the identifier of the currently active fork. Reverts if no fork is currently active.\"},\"addr(uint256)\":{\"notice\":\"Gets the address for a given private key.\"},\"allowCheatcodes(address)\":{\"notice\":\"In forking mode, explicitly grant the given address cheatcode access.\"},\"assertApproxEqAbs(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`.\"},\"assertApproxEqAbs(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Includes error message into revert string on failure.\"},\"assertApproxEqAbs(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`.\"},\"assertApproxEqAbs(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Includes error message into revert string on failure.\"},\"assertApproxEqAbsDecimal(int256,int256,uint256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message.\"},\"assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message.\"},\"assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertApproxEqRel(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%\"},\"assertApproxEqRel(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Includes error message into revert string on failure.\"},\"assertApproxEqRel(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%\"},\"assertApproxEqRel(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Includes error message into revert string on failure.\"},\"assertApproxEqRelDecimal(int256,int256,uint256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message.\"},\"assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message.\"},\"assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertEq(address,address)\":{\"notice\":\"Asserts that two `address` values are equal.\"},\"assertEq(address,address,string)\":{\"notice\":\"Asserts that two `address` values are equal and includes error message into revert string on failure.\"},\"assertEq(address[],address[])\":{\"notice\":\"Asserts that two arrays of `address` values are equal.\"},\"assertEq(address[],address[],string)\":{\"notice\":\"Asserts that two arrays of `address` values are equal and includes error message into revert string on failure.\"},\"assertEq(bool,bool)\":{\"notice\":\"Asserts that two `bool` values are equal.\"},\"assertEq(bool,bool,string)\":{\"notice\":\"Asserts that two `bool` values are equal and includes error message into revert string on failure.\"},\"assertEq(bool[],bool[])\":{\"notice\":\"Asserts that two arrays of `bool` values are equal.\"},\"assertEq(bool[],bool[],string)\":{\"notice\":\"Asserts that two arrays of `bool` values are equal and includes error message into revert string on failure.\"},\"assertEq(bytes,bytes)\":{\"notice\":\"Asserts that two `bytes` values are equal.\"},\"assertEq(bytes,bytes,string)\":{\"notice\":\"Asserts that two `bytes` values are equal and includes error message into revert string on failure.\"},\"assertEq(bytes32,bytes32)\":{\"notice\":\"Asserts that two `bytes32` values are equal.\"},\"assertEq(bytes32,bytes32,string)\":{\"notice\":\"Asserts that two `bytes32` values are equal and includes error message into revert string on failure.\"},\"assertEq(bytes32[],bytes32[])\":{\"notice\":\"Asserts that two arrays of `bytes32` values are equal.\"},\"assertEq(bytes32[],bytes32[],string)\":{\"notice\":\"Asserts that two arrays of `bytes32` values are equal and includes error message into revert string on failure.\"},\"assertEq(bytes[],bytes[])\":{\"notice\":\"Asserts that two arrays of `bytes` values are equal.\"},\"assertEq(bytes[],bytes[],string)\":{\"notice\":\"Asserts that two arrays of `bytes` values are equal and includes error message into revert string on failure.\"},\"assertEq(int256,int256)\":{\"notice\":\"Asserts that two `int256` values are equal.\"},\"assertEq(int256,int256,string)\":{\"notice\":\"Asserts that two `int256` values are equal and includes error message into revert string on failure.\"},\"assertEq(int256[],int256[])\":{\"notice\":\"Asserts that two arrays of `int256` values are equal.\"},\"assertEq(int256[],int256[],string)\":{\"notice\":\"Asserts that two arrays of `int256` values are equal and includes error message into revert string on failure.\"},\"assertEq(string,string)\":{\"notice\":\"Asserts that two `string` values are equal.\"},\"assertEq(string,string,string)\":{\"notice\":\"Asserts that two `string` values are equal and includes error message into revert string on failure.\"},\"assertEq(string[],string[])\":{\"notice\":\"Asserts that two arrays of `string` values are equal.\"},\"assertEq(string[],string[],string)\":{\"notice\":\"Asserts that two arrays of `string` values are equal and includes error message into revert string on failure.\"},\"assertEq(uint256,uint256)\":{\"notice\":\"Asserts that two `uint256` values are equal.\"},\"assertEq(uint256,uint256,string)\":{\"notice\":\"Asserts that two `uint256` values are equal and includes error message into revert string on failure.\"},\"assertEq(uint256[],uint256[])\":{\"notice\":\"Asserts that two arrays of `uint256 values are equal.\"},\"assertEq(uint256[],uint256[],string)\":{\"notice\":\"Asserts that two arrays of `uint256` values are equal and includes error message into revert string on failure.\"},\"assertEqDecimal(int256,int256,uint256)\":{\"notice\":\"Asserts that two `int256` values are equal, formatting them with decimals in failure message.\"},\"assertEqDecimal(int256,int256,uint256,string)\":{\"notice\":\"Asserts that two `int256` values are equal, formatting them with decimals in failure message. Includes error message into revert string on failure.\"},\"assertEqDecimal(uint256,uint256,uint256)\":{\"notice\":\"Asserts that two `uint256` values are equal, formatting them with decimals in failure message.\"},\"assertEqDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Asserts that two `uint256` values are equal, formatting them with decimals in failure message. Includes error message into revert string on failure.\"},\"assertFalse(bool)\":{\"notice\":\"Asserts that the given condition is false.\"},\"assertFalse(bool,string)\":{\"notice\":\"Asserts that the given condition is false and includes error message into revert string on failure.\"},\"assertGe(int256,int256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than or equal to second.\"},\"assertGe(int256,int256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than or equal to second. Includes error message into revert string on failure.\"},\"assertGe(uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than or equal to second.\"},\"assertGe(uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than or equal to second. Includes error message into revert string on failure.\"},\"assertGeDecimal(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message.\"},\"assertGeDecimal(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertGeDecimal(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message.\"},\"assertGeDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertGt(int256,int256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than second.\"},\"assertGt(int256,int256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than second. Includes error message into revert string on failure.\"},\"assertGt(uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than second.\"},\"assertGt(uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than second. Includes error message into revert string on failure.\"},\"assertGtDecimal(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than second. Formats values with decimals in failure message.\"},\"assertGtDecimal(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertGtDecimal(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than second. Formats values with decimals in failure message.\"},\"assertGtDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertLe(int256,int256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than or equal to second.\"},\"assertLe(int256,int256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than or equal to second. Includes error message into revert string on failure.\"},\"assertLe(uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than or equal to second.\"},\"assertLe(uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than or equal to second. Includes error message into revert string on failure.\"},\"assertLeDecimal(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message.\"},\"assertLeDecimal(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertLeDecimal(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message.\"},\"assertLeDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertLt(int256,int256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than second.\"},\"assertLt(int256,int256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than second. Includes error message into revert string on failure.\"},\"assertLt(uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than second.\"},\"assertLt(uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than second. Includes error message into revert string on failure.\"},\"assertLtDecimal(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than second. Formats values with decimals in failure message.\"},\"assertLtDecimal(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertLtDecimal(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than second. Formats values with decimals in failure message.\"},\"assertLtDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertNotEq(address,address)\":{\"notice\":\"Asserts that two `address` values are not equal.\"},\"assertNotEq(address,address,string)\":{\"notice\":\"Asserts that two `address` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(address[],address[])\":{\"notice\":\"Asserts that two arrays of `address` values are not equal.\"},\"assertNotEq(address[],address[],string)\":{\"notice\":\"Asserts that two arrays of `address` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bool,bool)\":{\"notice\":\"Asserts that two `bool` values are not equal.\"},\"assertNotEq(bool,bool,string)\":{\"notice\":\"Asserts that two `bool` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bool[],bool[])\":{\"notice\":\"Asserts that two arrays of `bool` values are not equal.\"},\"assertNotEq(bool[],bool[],string)\":{\"notice\":\"Asserts that two arrays of `bool` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bytes,bytes)\":{\"notice\":\"Asserts that two `bytes` values are not equal.\"},\"assertNotEq(bytes,bytes,string)\":{\"notice\":\"Asserts that two `bytes` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bytes32,bytes32)\":{\"notice\":\"Asserts that two `bytes32` values are not equal.\"},\"assertNotEq(bytes32,bytes32,string)\":{\"notice\":\"Asserts that two `bytes32` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bytes32[],bytes32[])\":{\"notice\":\"Asserts that two arrays of `bytes32` values are not equal.\"},\"assertNotEq(bytes32[],bytes32[],string)\":{\"notice\":\"Asserts that two arrays of `bytes32` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bytes[],bytes[])\":{\"notice\":\"Asserts that two arrays of `bytes` values are not equal.\"},\"assertNotEq(bytes[],bytes[],string)\":{\"notice\":\"Asserts that two arrays of `bytes` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(int256,int256)\":{\"notice\":\"Asserts that two `int256` values are not equal.\"},\"assertNotEq(int256,int256,string)\":{\"notice\":\"Asserts that two `int256` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(int256[],int256[])\":{\"notice\":\"Asserts that two arrays of `int256` values are not equal.\"},\"assertNotEq(int256[],int256[],string)\":{\"notice\":\"Asserts that two arrays of `int256` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(string,string)\":{\"notice\":\"Asserts that two `string` values are not equal.\"},\"assertNotEq(string,string,string)\":{\"notice\":\"Asserts that two `string` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(string[],string[])\":{\"notice\":\"Asserts that two arrays of `string` values are not equal.\"},\"assertNotEq(string[],string[],string)\":{\"notice\":\"Asserts that two arrays of `string` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(uint256,uint256)\":{\"notice\":\"Asserts that two `uint256` values are not equal.\"},\"assertNotEq(uint256,uint256,string)\":{\"notice\":\"Asserts that two `uint256` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(uint256[],uint256[])\":{\"notice\":\"Asserts that two arrays of `uint256` values are not equal.\"},\"assertNotEq(uint256[],uint256[],string)\":{\"notice\":\"Asserts that two arrays of `uint256` values are not equal and includes error message into revert string on failure.\"},\"assertNotEqDecimal(int256,int256,uint256)\":{\"notice\":\"Asserts that two `int256` values are not equal, formatting them with decimals in failure message.\"},\"assertNotEqDecimal(int256,int256,uint256,string)\":{\"notice\":\"Asserts that two `int256` values are not equal, formatting them with decimals in failure message. Includes error message into revert string on failure.\"},\"assertNotEqDecimal(uint256,uint256,uint256)\":{\"notice\":\"Asserts that two `uint256` values are not equal, formatting them with decimals in failure message.\"},\"assertNotEqDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Asserts that two `uint256` values are not equal, formatting them with decimals in failure message. Includes error message into revert string on failure.\"},\"assertTrue(bool)\":{\"notice\":\"Asserts that the given condition is true.\"},\"assertTrue(bool,string)\":{\"notice\":\"Asserts that the given condition is true and includes error message into revert string on failure.\"},\"assume(bool)\":{\"notice\":\"If the condition is false, discard this run's fuzz inputs and generate new ones.\"},\"blobBaseFee(uint256)\":{\"notice\":\"Sets `block.blobbasefee`\"},\"blobhashes(bytes32[])\":{\"notice\":\"Sets the blobhashes in the transaction. Not available on EVM versions before Cancun. If used on unsupported EVM versions it will revert.\"},\"breakpoint(string)\":{\"notice\":\"Writes a breakpoint to jump to in the debugger.\"},\"breakpoint(string,bool)\":{\"notice\":\"Writes a conditional breakpoint to jump to in the debugger.\"},\"broadcast()\":{\"notice\":\"Has the next call (at this call depth only) create transactions that can later be signed and sent onchain. Broadcasting address is determined by checking the following in order: 1. If `--sender` argument was provided, that address is used. 2. If exactly one signer (e.g. private key, hw wallet, keystore) is set when `forge broadcast` is invoked, that signer is used. 3. Otherwise, default foundry sender (1804c8AB1F12E6bbf3894d4083f33e07309d1f38) is used.\"},\"broadcast(address)\":{\"notice\":\"Has the next call (at this call depth only) create a transaction with the address provided as the sender that can later be signed and sent onchain.\"},\"broadcast(uint256)\":{\"notice\":\"Has the next call (at this call depth only) create a transaction with the private key provided as the sender that can later be signed and sent onchain.\"},\"broadcastRawTransaction(bytes)\":{\"notice\":\"Takes a signed transaction and broadcasts it to the network.\"},\"chainId(uint256)\":{\"notice\":\"Sets `block.chainid`.\"},\"clearMockedCalls()\":{\"notice\":\"Clears all mocked calls.\"},\"closeFile(string)\":{\"notice\":\"Closes file for reading, resetting the offset and allowing to read it from beginning with readLine. `path` is relative to the project root.\"},\"coinbase(address)\":{\"notice\":\"Sets `block.coinbase`.\"},\"computeCreate2Address(bytes32,bytes32)\":{\"notice\":\"Compute the address of a contract created with CREATE2 using the default CREATE2 deployer.\"},\"computeCreate2Address(bytes32,bytes32,address)\":{\"notice\":\"Compute the address of a contract created with CREATE2 using the given CREATE2 deployer.\"},\"computeCreateAddress(address,uint256)\":{\"notice\":\"Compute the address a contract will be deployed at for a given deployer address and nonce.\"},\"copyFile(string,string)\":{\"notice\":\"Copies the contents of one file to another. This function will **overwrite** the contents of `to`. On success, the total number of bytes copied is returned and it is equal to the length of the `to` file as reported by `metadata`. Both `from` and `to` are relative to the project root.\"},\"createDir(string,bool)\":{\"notice\":\"Creates a new, empty directory at the provided path. This cheatcode will revert in the following situations, but is not limited to just these cases: - User lacks permissions to modify `path`. - A parent of the given path doesn't exist and `recursive` is false. - `path` already exists and `recursive` is false. `path` is relative to the project root.\"},\"createFork(string)\":{\"notice\":\"Creates a new fork with the given endpoint and the _latest_ block and returns the identifier of the fork.\"},\"createFork(string,bytes32)\":{\"notice\":\"Creates a new fork with the given endpoint and at the block the given transaction was mined in, replays all transaction mined in the block before the transaction, and returns the identifier of the fork.\"},\"createFork(string,uint256)\":{\"notice\":\"Creates a new fork with the given endpoint and block and returns the identifier of the fork.\"},\"createSelectFork(string)\":{\"notice\":\"Creates and also selects a new fork with the given endpoint and the latest block and returns the identifier of the fork.\"},\"createSelectFork(string,bytes32)\":{\"notice\":\"Creates and also selects new fork with the given endpoint and at the block the given transaction was mined in, replays all transaction mined in the block before the transaction, returns the identifier of the fork.\"},\"createSelectFork(string,uint256)\":{\"notice\":\"Creates and also selects a new fork with the given endpoint and block and returns the identifier of the fork.\"},\"createWallet(string)\":{\"notice\":\"Derives a private key from the name, labels the account with that name, and returns the wallet.\"},\"createWallet(uint256)\":{\"notice\":\"Generates a wallet from the private key and returns the wallet.\"},\"createWallet(uint256,string)\":{\"notice\":\"Generates a wallet from the private key, labels the account with that name, and returns the wallet.\"},\"deal(address,uint256)\":{\"notice\":\"Sets an address' balance.\"},\"deleteSnapshot(uint256)\":{\"notice\":\"Removes the snapshot with the given ID created by `snapshot`. Takes the snapshot ID to delete. Returns `true` if the snapshot was successfully deleted. Returns `false` if the snapshot does not exist.\"},\"deleteSnapshots()\":{\"notice\":\"Removes _all_ snapshots previously created by `snapshot`.\"},\"deployCode(string)\":{\"notice\":\"Deploys a contract from an artifact file. Takes in the relative path to the json file or the path to the artifact in the form of :: where and parts are optional.\"},\"deployCode(string,bytes)\":{\"notice\":\"Deploys a contract from an artifact file. Takes in the relative path to the json file or the path to the artifact in the form of :: where and parts are optional. Additionaly accepts abi-encoded constructor arguments.\"},\"deriveKey(string,string,uint32)\":{\"notice\":\"Derive a private key from a provided mnenomic string (or mnenomic file path) at `{derivationPath}{index}`.\"},\"deriveKey(string,string,uint32,string)\":{\"notice\":\"Derive a private key from a provided mnenomic string (or mnenomic file path) in the specified language at `{derivationPath}{index}`.\"},\"deriveKey(string,uint32)\":{\"notice\":\"Derive a private key from a provided mnenomic string (or mnenomic file path) at the derivation path `m/44'/60'/0'/0/{index}`.\"},\"deriveKey(string,uint32,string)\":{\"notice\":\"Derive a private key from a provided mnenomic string (or mnenomic file path) in the specified language at the derivation path `m/44'/60'/0'/0/{index}`.\"},\"difficulty(uint256)\":{\"notice\":\"Sets `block.difficulty`. Not available on EVM versions from Paris onwards. Use `prevrandao` instead. Reverts if used on unsupported EVM versions.\"},\"dumpState(string)\":{\"notice\":\"Dump a genesis JSON file's `allocs` to disk.\"},\"ensNamehash(string)\":{\"notice\":\"Returns ENS namehash for provided string.\"},\"envAddress(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `address`. Reverts if the variable was not found or could not be parsed.\"},\"envAddress(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envBool(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bool`. Reverts if the variable was not found or could not be parsed.\"},\"envBool(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envBytes(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bytes`. Reverts if the variable was not found or could not be parsed.\"},\"envBytes(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envBytes32(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bytes32`. Reverts if the variable was not found or could not be parsed.\"},\"envBytes32(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envExists(string)\":{\"notice\":\"Gets the environment variable `name` and returns true if it exists, else returns false.\"},\"envInt(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `int256`. Reverts if the variable was not found or could not be parsed.\"},\"envInt(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envOr(string,address)\":{\"notice\":\"Gets the environment variable `name` and parses it as `address`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,bool)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bool`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,bytes)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bytes`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,bytes32)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bytes32`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,int256)\":{\"notice\":\"Gets the environment variable `name` and parses it as `int256`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `string`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,address[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,bool[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,bytes32[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,bytes[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,int256[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,string[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,uint256[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,uint256)\":{\"notice\":\"Gets the environment variable `name` and parses it as `uint256`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envString(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `string`. Reverts if the variable was not found or could not be parsed.\"},\"envString(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envUint(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `uint256`. Reverts if the variable was not found or could not be parsed.\"},\"envUint(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"etch(address,bytes)\":{\"notice\":\"Sets an address' code.\"},\"eth_getLogs(uint256,uint256,address,bytes32[])\":{\"notice\":\"Gets all the logs according to specified filter.\"},\"exists(string)\":{\"notice\":\"Returns true if the given path points to an existing entity, else returns false.\"},\"expectCall(address,bytes)\":{\"notice\":\"Expects a call to an address with the specified calldata. Calldata can either be a strict or a partial match.\"},\"expectCall(address,bytes,uint64)\":{\"notice\":\"Expects given number of calls to an address with the specified calldata.\"},\"expectCall(address,uint256,bytes)\":{\"notice\":\"Expects a call to an address with the specified `msg.value` and calldata.\"},\"expectCall(address,uint256,bytes,uint64)\":{\"notice\":\"Expects given number of calls to an address with the specified `msg.value` and calldata.\"},\"expectCall(address,uint256,uint64,bytes)\":{\"notice\":\"Expect a call to an address with the specified `msg.value`, gas, and calldata.\"},\"expectCall(address,uint256,uint64,bytes,uint64)\":{\"notice\":\"Expects given number of calls to an address with the specified `msg.value`, gas, and calldata.\"},\"expectCallMinGas(address,uint256,uint64,bytes)\":{\"notice\":\"Expect a call to an address with the specified `msg.value` and calldata, and a *minimum* amount of gas.\"},\"expectCallMinGas(address,uint256,uint64,bytes,uint64)\":{\"notice\":\"Expect given number of calls to an address with the specified `msg.value` and calldata, and a *minimum* amount of gas.\"},\"expectEmit()\":{\"notice\":\"Prepare an expected log with all topic and data checks enabled. Call this function, then emit an event, then call a function. Internally after the call, we check if logs were emitted in the expected order with the expected topics and data.\"},\"expectEmit(address)\":{\"notice\":\"Same as the previous method, but also checks supplied address against emitting contract.\"},\"expectEmit(bool,bool,bool,bool)\":{\"notice\":\"Prepare an expected log with (bool checkTopic1, bool checkTopic2, bool checkTopic3, bool checkData.). Call this function, then emit an event, then call a function. Internally after the call, we check if logs were emitted in the expected order with the expected topics and data (as specified by the booleans).\"},\"expectEmit(bool,bool,bool,bool,address)\":{\"notice\":\"Same as the previous method, but also checks supplied address against emitting contract.\"},\"expectEmitAnonymous()\":{\"notice\":\"Prepare an expected anonymous log with all topic and data checks enabled. Call this function, then emit an anonymous event, then call a function. Internally after the call, we check if logs were emitted in the expected order with the expected topics and data.\"},\"expectEmitAnonymous(address)\":{\"notice\":\"Same as the previous method, but also checks supplied address against emitting contract.\"},\"expectEmitAnonymous(bool,bool,bool,bool,bool)\":{\"notice\":\"Prepare an expected anonymous log with (bool checkTopic1, bool checkTopic2, bool checkTopic3, bool checkData.). Call this function, then emit an anonymous event, then call a function. Internally after the call, we check if logs were emitted in the expected order with the expected topics and data (as specified by the booleans).\"},\"expectEmitAnonymous(bool,bool,bool,bool,bool,address)\":{\"notice\":\"Same as the previous method, but also checks supplied address against emitting contract.\"},\"expectRevert()\":{\"notice\":\"Expects an error on next call with any revert data.\"},\"expectRevert(bytes)\":{\"notice\":\"Expects an error on next call that exactly matches the revert data.\"},\"expectRevert(bytes4)\":{\"notice\":\"Expects an error on next call that starts with the revert data.\"},\"expectSafeMemory(uint64,uint64)\":{\"notice\":\"Only allows memory writes to offsets [0x00, 0x60) \\u222a [min, max) in the current subcontext. If any other memory is written to, the test will fail. Can be called multiple times to add more ranges to the set.\"},\"expectSafeMemoryCall(uint64,uint64)\":{\"notice\":\"Only allows memory writes to offsets [0x00, 0x60) \\u222a [min, max) in the next created subcontext. If any other memory is written to, the test will fail. Can be called multiple times to add more ranges to the set.\"},\"fee(uint256)\":{\"notice\":\"Sets `block.basefee`.\"},\"ffi(string[])\":{\"notice\":\"Performs a foreign function call via the terminal.\"},\"fsMetadata(string)\":{\"notice\":\"Given a path, query the file system to get information about a file, directory, etc.\"},\"getBlobBaseFee()\":{\"notice\":\"Gets the current `block.blobbasefee`. You should use this instead of `block.blobbasefee` if you use `vm.blobBaseFee`, as `block.blobbasefee` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180\"},\"getBlobhashes()\":{\"notice\":\"Gets the blockhashes from the current transaction. Not available on EVM versions before Cancun. If used on unsupported EVM versions it will revert.\"},\"getBlockNumber()\":{\"notice\":\"Gets the current `block.number`. You should use this instead of `block.number` if you use `vm.roll`, as `block.number` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180\"},\"getBlockTimestamp()\":{\"notice\":\"Gets the current `block.timestamp`. You should use this instead of `block.timestamp` if you use `vm.warp`, as `block.timestamp` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180\"},\"getCode(string)\":{\"notice\":\"Gets the creation bytecode from an artifact file. Takes in the relative path to the json file or the path to the artifact in the form of :: where and parts are optional.\"},\"getDeployedCode(string)\":{\"notice\":\"Gets the deployed bytecode from an artifact file. Takes in the relative path to the json file or the path to the artifact in the form of :: where and parts are optional.\"},\"getFoundryVersion()\":{\"notice\":\"Returns the Foundry version. Format: ++ Sample output: 0.2.0+faa94c384+202407110019 Note: Build timestamps may vary slightly across platforms due to separate CI jobs. For reliable version comparisons, use YYYYMMDD0000 format (e.g., >= 202407110000) to compare timestamps while ignoring minor time differences.\"},\"getLabel(address)\":{\"notice\":\"Gets the label for the specified address.\"},\"getMappingKeyAndParentOf(address,bytes32)\":{\"notice\":\"Gets the map key and parent of a mapping at a given slot, for a given address.\"},\"getMappingLength(address,bytes32)\":{\"notice\":\"Gets the number of elements in the mapping at the given slot, for a given address.\"},\"getMappingSlotAt(address,bytes32,uint256)\":{\"notice\":\"Gets the elements at index idx of the mapping at the given slot, for a given address. The index must be less than the length of the mapping (i.e. the number of keys in the mapping).\"},\"getNonce((address,uint256,uint256,uint256))\":{\"notice\":\"Get the nonce of a `Wallet`.\"},\"getNonce(address)\":{\"notice\":\"Gets the nonce of an account.\"},\"getRecordedLogs()\":{\"notice\":\"Gets all the recorded logs.\"},\"indexOf(string,string)\":{\"notice\":\"Returns the index of the first occurrence of a `key` in an `input` string. Returns `NOT_FOUND` (i.e. `type(uint256).max`) if the `key` is not found. Returns 0 in case of an empty `key`.\"},\"isContext(uint8)\":{\"notice\":\"Returns true if `forge` command was executed in given context.\"},\"isDir(string)\":{\"notice\":\"Returns true if the path exists on disk and is pointing at a directory, else returns false.\"},\"isFile(string)\":{\"notice\":\"Returns true if the path exists on disk and is pointing at a regular file, else returns false.\"},\"isPersistent(address)\":{\"notice\":\"Returns true if the account is marked as persistent.\"},\"keyExists(string,string)\":{\"notice\":\"Checks if `key` exists in a JSON object `keyExists` is being deprecated in favor of `keyExistsJson`. It will be removed in future versions.\"},\"keyExistsJson(string,string)\":{\"notice\":\"Checks if `key` exists in a JSON object.\"},\"keyExistsToml(string,string)\":{\"notice\":\"Checks if `key` exists in a TOML table.\"},\"label(address,string)\":{\"notice\":\"Labels an address in call traces.\"},\"lastCallGas()\":{\"notice\":\"Gets the gas used in the last call.\"},\"load(address,bytes32)\":{\"notice\":\"Loads a storage slot from an address.\"},\"loadAllocs(string)\":{\"notice\":\"Load a genesis JSON file's `allocs` into the in-memory revm state.\"},\"makePersistent(address)\":{\"notice\":\"Marks that the account(s) should use persistent storage across fork swaps in a multifork setup Meaning, changes made to the state of this account will be kept when switching forks.\"},\"makePersistent(address,address)\":{\"notice\":\"See `makePersistent(address)`.\"},\"makePersistent(address,address,address)\":{\"notice\":\"See `makePersistent(address)`.\"},\"makePersistent(address[])\":{\"notice\":\"See `makePersistent(address)`.\"},\"mockCall(address,bytes,bytes)\":{\"notice\":\"Mocks a call to an address, returning specified data. Calldata can either be strict or a partial match, e.g. if you only pass a Solidity selector to the expected calldata, then the entire Solidity function will be mocked.\"},\"mockCall(address,uint256,bytes,bytes)\":{\"notice\":\"Mocks a call to an address with a specific `msg.value`, returning specified data. Calldata match takes precedence over `msg.value` in case of ambiguity.\"},\"mockCallRevert(address,bytes,bytes)\":{\"notice\":\"Reverts a call to an address with specified revert data.\"},\"mockCallRevert(address,uint256,bytes,bytes)\":{\"notice\":\"Reverts a call to an address with a specific `msg.value`, with specified revert data.\"},\"parseAddress(string)\":{\"notice\":\"Parses the given `string` into an `address`.\"},\"parseBool(string)\":{\"notice\":\"Parses the given `string` into a `bool`.\"},\"parseBytes(string)\":{\"notice\":\"Parses the given `string` into `bytes`.\"},\"parseBytes32(string)\":{\"notice\":\"Parses the given `string` into a `bytes32`.\"},\"parseInt(string)\":{\"notice\":\"Parses the given `string` into a `int256`.\"},\"parseJson(string)\":{\"notice\":\"ABI-encodes a JSON object.\"},\"parseJson(string,string)\":{\"notice\":\"ABI-encodes a JSON object at `key`.\"},\"parseJsonAddress(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `address`.\"},\"parseJsonAddressArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `address[]`.\"},\"parseJsonBool(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bool`.\"},\"parseJsonBoolArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bool[]`.\"},\"parseJsonBytes(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bytes`.\"},\"parseJsonBytes32(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bytes32`.\"},\"parseJsonBytes32Array(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bytes32[]`.\"},\"parseJsonBytesArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bytes[]`.\"},\"parseJsonInt(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `int256`.\"},\"parseJsonIntArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `int256[]`.\"},\"parseJsonKeys(string,string)\":{\"notice\":\"Returns an array of all the keys in a JSON object.\"},\"parseJsonString(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `string`.\"},\"parseJsonStringArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `string[]`.\"},\"parseJsonType(string,string)\":{\"notice\":\"Parses a string of JSON data and coerces it to type corresponding to `typeDescription`.\"},\"parseJsonType(string,string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to type corresponding to `typeDescription`.\"},\"parseJsonTypeArray(string,string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to type array corresponding to `typeDescription`.\"},\"parseJsonUint(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `uint256`.\"},\"parseJsonUintArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `uint256[]`.\"},\"parseToml(string)\":{\"notice\":\"ABI-encodes a TOML table.\"},\"parseToml(string,string)\":{\"notice\":\"ABI-encodes a TOML table at `key`.\"},\"parseTomlAddress(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `address`.\"},\"parseTomlAddressArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `address[]`.\"},\"parseTomlBool(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bool`.\"},\"parseTomlBoolArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bool[]`.\"},\"parseTomlBytes(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bytes`.\"},\"parseTomlBytes32(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bytes32`.\"},\"parseTomlBytes32Array(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bytes32[]`.\"},\"parseTomlBytesArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bytes[]`.\"},\"parseTomlInt(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `int256`.\"},\"parseTomlIntArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `int256[]`.\"},\"parseTomlKeys(string,string)\":{\"notice\":\"Returns an array of all the keys in a TOML table.\"},\"parseTomlString(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `string`.\"},\"parseTomlStringArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `string[]`.\"},\"parseTomlUint(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `uint256`.\"},\"parseTomlUintArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `uint256[]`.\"},\"parseUint(string)\":{\"notice\":\"Parses the given `string` into a `uint256`.\"},\"pauseGasMetering()\":{\"notice\":\"Pauses gas metering (i.e. gas usage is not counted). Noop if already paused.\"},\"prank(address)\":{\"notice\":\"Sets the *next* call's `msg.sender` to be the input address.\"},\"prank(address,address)\":{\"notice\":\"Sets the *next* call's `msg.sender` to be the input address, and the `tx.origin` to be the second input.\"},\"prevrandao(bytes32)\":{\"notice\":\"Sets `block.prevrandao`. Not available on EVM versions before Paris. Use `difficulty` instead. If used on unsupported EVM versions it will revert.\"},\"prevrandao(uint256)\":{\"notice\":\"Sets `block.prevrandao`. Not available on EVM versions before Paris. Use `difficulty` instead. If used on unsupported EVM versions it will revert.\"},\"projectRoot()\":{\"notice\":\"Get the path of the current project root.\"},\"prompt(string)\":{\"notice\":\"Prompts the user for a string value in the terminal.\"},\"promptAddress(string)\":{\"notice\":\"Prompts the user for an address in the terminal.\"},\"promptSecret(string)\":{\"notice\":\"Prompts the user for a hidden string value in the terminal.\"},\"promptSecretUint(string)\":{\"notice\":\"Prompts the user for hidden uint256 in the terminal (usually pk).\"},\"promptUint(string)\":{\"notice\":\"Prompts the user for uint256 in the terminal.\"},\"randomAddress()\":{\"notice\":\"Returns a random `address`.\"},\"randomUint()\":{\"notice\":\"Returns a random uint256 value.\"},\"randomUint(uint256,uint256)\":{\"notice\":\"Returns random uin256 value between the provided range (=min..=max).\"},\"readCallers()\":{\"notice\":\"Reads the current `msg.sender` and `tx.origin` from state and reports if there is any active caller modification.\"},\"readDir(string)\":{\"notice\":\"Reads the directory at the given path recursively, up to `maxDepth`. `maxDepth` defaults to 1, meaning only the direct children of the given directory will be returned. Follows symbolic links if `followLinks` is true.\"},\"readDir(string,uint64)\":{\"notice\":\"See `readDir(string)`.\"},\"readDir(string,uint64,bool)\":{\"notice\":\"See `readDir(string)`.\"},\"readFile(string)\":{\"notice\":\"Reads the entire content of file to string. `path` is relative to the project root.\"},\"readFileBinary(string)\":{\"notice\":\"Reads the entire content of file as binary. `path` is relative to the project root.\"},\"readLine(string)\":{\"notice\":\"Reads next line of file to string.\"},\"readLink(string)\":{\"notice\":\"Reads a symbolic link, returning the path that the link points to. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` is not a symbolic link. - `path` does not exist.\"},\"record()\":{\"notice\":\"Records all storage reads and writes.\"},\"recordLogs()\":{\"notice\":\"Record all the transaction logs.\"},\"rememberKey(uint256)\":{\"notice\":\"Adds a private key to the local forge wallet and returns the address.\"},\"removeDir(string,bool)\":{\"notice\":\"Removes a directory at the provided path. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` doesn't exist. - `path` isn't a directory. - User lacks permissions to modify `path`. - The directory is not empty and `recursive` is false. `path` is relative to the project root.\"},\"removeFile(string)\":{\"notice\":\"Removes a file from the filesystem. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` points to a directory. - The file doesn't exist. - The user lacks permissions to remove the file. `path` is relative to the project root.\"},\"replace(string,string,string)\":{\"notice\":\"Replaces occurrences of `from` in the given `string` with `to`.\"},\"resetNonce(address)\":{\"notice\":\"Resets the nonce of an account to 0 for EOAs and 1 for contract accounts.\"},\"resumeGasMetering()\":{\"notice\":\"Resumes gas metering (i.e. gas usage is counted again). Noop if already on.\"},\"revertTo(uint256)\":{\"notice\":\"Revert the state of the EVM to a previous snapshot Takes the snapshot ID to revert to. Returns `true` if the snapshot was successfully reverted. Returns `false` if the snapshot does not exist. **Note:** This does not automatically delete the snapshot. To delete the snapshot use `deleteSnapshot`.\"},\"revertToAndDelete(uint256)\":{\"notice\":\"Revert the state of the EVM to a previous snapshot and automatically deletes the snapshots Takes the snapshot ID to revert to. Returns `true` if the snapshot was successfully reverted and deleted. Returns `false` if the snapshot does not exist.\"},\"revokePersistent(address)\":{\"notice\":\"Revokes persistent status from the address, previously added via `makePersistent`.\"},\"revokePersistent(address[])\":{\"notice\":\"See `revokePersistent(address)`.\"},\"roll(uint256)\":{\"notice\":\"Sets `block.height`.\"},\"rollFork(bytes32)\":{\"notice\":\"Updates the currently active fork to given transaction. This will `rollFork` with the number of the block the transaction was mined in and replays all transaction mined before it in the block.\"},\"rollFork(uint256)\":{\"notice\":\"Updates the currently active fork to given block number This is similar to `roll` but for the currently active fork.\"},\"rollFork(uint256,bytes32)\":{\"notice\":\"Updates the given fork to block number of the given transaction and replays all transaction mined before it in the block.\"},\"rollFork(uint256,uint256)\":{\"notice\":\"Updates the given fork to given block number.\"},\"rpc(string,string)\":{\"notice\":\"Performs an Ethereum JSON-RPC request to the current fork URL.\"},\"rpc(string,string,string)\":{\"notice\":\"Performs an Ethereum JSON-RPC request to the given endpoint.\"},\"rpcUrl(string)\":{\"notice\":\"Returns the RPC url for the given alias.\"},\"rpcUrlStructs()\":{\"notice\":\"Returns all rpc urls and their aliases as structs.\"},\"rpcUrls()\":{\"notice\":\"Returns all rpc urls and their aliases `[alias, url][]`.\"},\"selectFork(uint256)\":{\"notice\":\"Takes a fork identifier created by `createFork` and sets the corresponding forked state as active.\"},\"serializeAddress(string,string,address)\":{\"notice\":\"See `serializeJson`.\"},\"serializeAddress(string,string,address[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeBool(string,string,bool)\":{\"notice\":\"See `serializeJson`.\"},\"serializeBool(string,string,bool[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeBytes(string,string,bytes)\":{\"notice\":\"See `serializeJson`.\"},\"serializeBytes(string,string,bytes[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeBytes32(string,string,bytes32)\":{\"notice\":\"See `serializeJson`.\"},\"serializeBytes32(string,string,bytes32[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeInt(string,string,int256)\":{\"notice\":\"See `serializeJson`.\"},\"serializeInt(string,string,int256[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeJson(string,string)\":{\"notice\":\"Serializes a key and value to a JSON object stored in-memory that can be later written to a file. Returns the stringified version of the specific JSON file up to that moment.\"},\"serializeJsonType(string,bytes)\":{\"notice\":\"See `serializeJson`.\"},\"serializeJsonType(string,string,string,bytes)\":{\"notice\":\"See `serializeJson`.\"},\"serializeString(string,string,string)\":{\"notice\":\"See `serializeJson`.\"},\"serializeString(string,string,string[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeUint(string,string,uint256)\":{\"notice\":\"See `serializeJson`.\"},\"serializeUint(string,string,uint256[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeUintToHex(string,string,uint256)\":{\"notice\":\"See `serializeJson`.\"},\"setBlockhash(uint256,bytes32)\":{\"notice\":\"Set blockhash for the current block. It only sets the blockhash for blocks where `block.number - 256 <= number < block.number`.\"},\"setEnv(string,string)\":{\"notice\":\"Sets environment variables.\"},\"setNonce(address,uint64)\":{\"notice\":\"Sets the nonce of an account. Must be higher than the current nonce of the account.\"},\"setNonceUnsafe(address,uint64)\":{\"notice\":\"Sets the nonce of an account to an arbitrary value.\"},\"sign((address,uint256,uint256,uint256),bytes32)\":{\"notice\":\"Signs data with a `Wallet`.\"},\"sign(address,bytes32)\":{\"notice\":\"Signs `digest` with signer provided to script using the secp256k1 curve. Raises error if none of the signers passed into the script have provided address.\"},\"sign(bytes32)\":{\"notice\":\"Signs `digest` with signer provided to script using the secp256k1 curve. If `--sender` is provided, the signer with provided address is used, otherwise, if exactly one signer is provided to the script, that signer is used. Raises error if signer passed through `--sender` does not match any unlocked signers or if `--sender` is not provided and not exactly one signer is passed to the script.\"},\"sign(uint256,bytes32)\":{\"notice\":\"Signs `digest` with `privateKey` using the secp256k1 curve.\"},\"signCompact((address,uint256,uint256,uint256),bytes32)\":{\"notice\":\"Signs data with a `Wallet`. Returns a compact signature (`r`, `vs`) as per EIP-2098, where `vs` encodes both the signature's `s` value, and the recovery id `v` in a single bytes32. This format reduces the signature size from 65 to 64 bytes.\"},\"signCompact(address,bytes32)\":{\"notice\":\"Signs `digest` with signer provided to script using the secp256k1 curve. Returns a compact signature (`r`, `vs`) as per EIP-2098, where `vs` encodes both the signature's `s` value, and the recovery id `v` in a single bytes32. This format reduces the signature size from 65 to 64 bytes. Raises error if none of the signers passed into the script have provided address.\"},\"signCompact(bytes32)\":{\"notice\":\"Signs `digest` with signer provided to script using the secp256k1 curve. Returns a compact signature (`r`, `vs`) as per EIP-2098, where `vs` encodes both the signature's `s` value, and the recovery id `v` in a single bytes32. This format reduces the signature size from 65 to 64 bytes. If `--sender` is provided, the signer with provided address is used, otherwise, if exactly one signer is provided to the script, that signer is used. Raises error if signer passed through `--sender` does not match any unlocked signers or if `--sender` is not provided and not exactly one signer is passed to the script.\"},\"signCompact(uint256,bytes32)\":{\"notice\":\"Signs `digest` with `privateKey` using the secp256k1 curve. Returns a compact signature (`r`, `vs`) as per EIP-2098, where `vs` encodes both the signature's `s` value, and the recovery id `v` in a single bytes32. This format reduces the signature size from 65 to 64 bytes.\"},\"signP256(uint256,bytes32)\":{\"notice\":\"Signs `digest` with `privateKey` using the secp256r1 curve.\"},\"skip(bool)\":{\"notice\":\"Marks a test as skipped. Must be called at the top of the test.\"},\"sleep(uint256)\":{\"notice\":\"Suspends execution of the main thread for `duration` milliseconds.\"},\"snapshot()\":{\"notice\":\"Snapshot the current state of the evm. Returns the ID of the snapshot that was created. To revert a snapshot use `revertTo`.\"},\"split(string,string)\":{\"notice\":\"Splits the given `string` into an array of strings divided by the `delimiter`.\"},\"startBroadcast()\":{\"notice\":\"Has all subsequent calls (at this call depth only) create transactions that can later be signed and sent onchain. Broadcasting address is determined by checking the following in order: 1. If `--sender` argument was provided, that address is used. 2. If exactly one signer (e.g. private key, hw wallet, keystore) is set when `forge broadcast` is invoked, that signer is used. 3. Otherwise, default foundry sender (1804c8AB1F12E6bbf3894d4083f33e07309d1f38) is used.\"},\"startBroadcast(address)\":{\"notice\":\"Has all subsequent calls (at this call depth only) create transactions with the address provided that can later be signed and sent onchain.\"},\"startBroadcast(uint256)\":{\"notice\":\"Has all subsequent calls (at this call depth only) create transactions with the private key provided that can later be signed and sent onchain.\"},\"startMappingRecording()\":{\"notice\":\"Starts recording all map SSTOREs for later retrieval.\"},\"startPrank(address)\":{\"notice\":\"Sets all subsequent calls' `msg.sender` to be the input address until `stopPrank` is called.\"},\"startPrank(address,address)\":{\"notice\":\"Sets all subsequent calls' `msg.sender` to be the input address until `stopPrank` is called, and the `tx.origin` to be the second input.\"},\"startStateDiffRecording()\":{\"notice\":\"Record all account accesses as part of CREATE, CALL or SELFDESTRUCT opcodes in order, along with the context of the calls\"},\"stopAndReturnStateDiff()\":{\"notice\":\"Returns an ordered array of all account accesses from a `vm.startStateDiffRecording` session.\"},\"stopBroadcast()\":{\"notice\":\"Stops collecting onchain transactions.\"},\"stopExpectSafeMemory()\":{\"notice\":\"Stops all safe memory expectation in the current subcontext.\"},\"stopMappingRecording()\":{\"notice\":\"Stops recording all map SSTOREs for later retrieval and clears the recorded data.\"},\"stopPrank()\":{\"notice\":\"Resets subsequent calls' `msg.sender` to be `address(this)`.\"},\"store(address,bytes32,bytes32)\":{\"notice\":\"Stores a value to an address' storage slot.\"},\"toBase64(bytes)\":{\"notice\":\"Encodes a `bytes` value to a base64 string.\"},\"toBase64(string)\":{\"notice\":\"Encodes a `string` value to a base64 string.\"},\"toBase64URL(bytes)\":{\"notice\":\"Encodes a `bytes` value to a base64url string.\"},\"toBase64URL(string)\":{\"notice\":\"Encodes a `string` value to a base64url string.\"},\"toLowercase(string)\":{\"notice\":\"Converts the given `string` value to Lowercase.\"},\"toString(address)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(bool)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(bytes)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(bytes32)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(int256)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(uint256)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toUppercase(string)\":{\"notice\":\"Converts the given `string` value to Uppercase.\"},\"transact(bytes32)\":{\"notice\":\"Fetches the given transaction from the active fork and executes it on the current state.\"},\"transact(uint256,bytes32)\":{\"notice\":\"Fetches the given transaction from the given fork and executes it on the current state.\"},\"trim(string)\":{\"notice\":\"Trims leading and trailing whitespace from the given `string` value.\"},\"tryFfi(string[])\":{\"notice\":\"Performs a foreign function call via terminal and returns the exit code, stdout, and stderr.\"},\"txGasPrice(uint256)\":{\"notice\":\"Sets `tx.gasprice`.\"},\"unixTime()\":{\"notice\":\"Returns the time since unix epoch in milliseconds.\"},\"warp(uint256)\":{\"notice\":\"Sets `block.timestamp`.\"},\"writeFile(string,string)\":{\"notice\":\"Writes data to file, creating a file if it does not exist, and entirely replacing its contents if it does. `path` is relative to the project root.\"},\"writeFileBinary(string,bytes)\":{\"notice\":\"Writes binary data to a file, creating a file if it does not exist, and entirely replacing its contents if it does. `path` is relative to the project root.\"},\"writeJson(string,string)\":{\"notice\":\"Write a serialized JSON object to a file. If the file exists, it will be overwritten.\"},\"writeJson(string,string,string)\":{\"notice\":\"Write a serialized JSON object to an **existing** JSON file, replacing a value with key = This is useful to replace a specific value of a JSON file, without having to parse the entire thing.\"},\"writeLine(string,string)\":{\"notice\":\"Writes line to file, creating a file if it does not exist. `path` is relative to the project root.\"},\"writeToml(string,string)\":{\"notice\":\"Takes serialized JSON, converts to TOML and write a serialized TOML to a file.\"},\"writeToml(string,string,string)\":{\"notice\":\"Takes serialized JSON, converts to TOML and write a serialized TOML table to an **existing** TOML file, replacing a value with key = This is useful to replace a specific value of a TOML file, without having to parse the entire thing.\"}},\"notice\":\"The `Vm` interface does allow manipulation of the EVM state. These are all intended to be used in tests, but it is not recommended to use these cheats in scripts.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Upgrades.sol\":\"Vm\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"src/Upgrades.sol\":{\"keccak256\":\"0x420d4a351f46367d1fd8ea9409af6772fc442019d8f51bdd61b2114886ab3f98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dd2a0235e70d4f89d1d67af78ec13dd396224ec6cd87e4f906796bf50e385204\",\"dweb:/ipfs/QmULbNuaseWNiMWpBdR7ayYw5tknsYji6YtPG9KYd4k9Dp\"]}},\"version\":1}"},"VmSafe":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"accesses","outputs":[{"internalType":"bytes32[]","name":"readSlots","type":"bytes32[]"},{"internalType":"bytes32[]","name":"writeSlots","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"name":"addr","outputs":[{"internalType":"address","name":"keyAddr","type":"address"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"}],"name":"assertApproxEqAbs","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"}],"name":"assertApproxEqAbs","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertApproxEqAbs","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertApproxEqAbs","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"name":"assertApproxEqAbsDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"name":"assertApproxEqAbsDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertApproxEqAbsDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertApproxEqAbsDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertApproxEqRel","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"}],"name":"assertApproxEqRel","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertApproxEqRel","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"}],"name":"assertApproxEqRel","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"name":"assertApproxEqRelDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertApproxEqRelDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"name":"assertApproxEqRelDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertApproxEqRelDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"left","type":"bytes32[]"},{"internalType":"bytes32[]","name":"right","type":"bytes32[]"}],"name":"assertEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256[]","name":"left","type":"int256[]"},{"internalType":"int256[]","name":"right","type":"int256[]"},{"internalType":"string","name":"error","type":"string"}],"name":"assertEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"left","type":"address"},{"internalType":"address","name":"right","type":"address"},{"internalType":"string","name":"error","type":"string"}],"name":"assertEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"left","type":"string"},{"internalType":"string","name":"right","type":"string"},{"internalType":"string","name":"error","type":"string"}],"name":"assertEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"left","type":"address[]"},{"internalType":"address[]","name":"right","type":"address[]"}],"name":"assertEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"left","type":"address[]"},{"internalType":"address[]","name":"right","type":"address[]"},{"internalType":"string","name":"error","type":"string"}],"name":"assertEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"left","type":"bool"},{"internalType":"bool","name":"right","type":"bool"},{"internalType":"string","name":"error","type":"string"}],"name":"assertEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"left","type":"address"},{"internalType":"address","name":"right","type":"address"}],"name":"assertEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"left","type":"uint256[]"},{"internalType":"uint256[]","name":"right","type":"uint256[]"},{"internalType":"string","name":"error","type":"string"}],"name":"assertEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool[]","name":"left","type":"bool[]"},{"internalType":"bool[]","name":"right","type":"bool[]"}],"name":"assertEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256[]","name":"left","type":"int256[]"},{"internalType":"int256[]","name":"right","type":"int256[]"}],"name":"assertEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"left","type":"bytes32"},{"internalType":"bytes32","name":"right","type":"bytes32"}],"name":"assertEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"left","type":"uint256[]"},{"internalType":"uint256[]","name":"right","type":"uint256[]"}],"name":"assertEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"left","type":"bytes"},{"internalType":"bytes","name":"right","type":"bytes"}],"name":"assertEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"name":"assertEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"left","type":"bytes32"},{"internalType":"bytes32","name":"right","type":"bytes32"},{"internalType":"string","name":"error","type":"string"}],"name":"assertEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string[]","name":"left","type":"string[]"},{"internalType":"string[]","name":"right","type":"string[]"}],"name":"assertEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"left","type":"bytes32[]"},{"internalType":"bytes32[]","name":"right","type":"bytes32[]"},{"internalType":"string","name":"error","type":"string"}],"name":"assertEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"left","type":"bytes"},{"internalType":"bytes","name":"right","type":"bytes"},{"internalType":"string","name":"error","type":"string"}],"name":"assertEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool[]","name":"left","type":"bool[]"},{"internalType":"bool[]","name":"right","type":"bool[]"},{"internalType":"string","name":"error","type":"string"}],"name":"assertEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes[]","name":"left","type":"bytes[]"},{"internalType":"bytes[]","name":"right","type":"bytes[]"}],"name":"assertEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string[]","name":"left","type":"string[]"},{"internalType":"string[]","name":"right","type":"string[]"},{"internalType":"string","name":"error","type":"string"}],"name":"assertEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"left","type":"string"},{"internalType":"string","name":"right","type":"string"}],"name":"assertEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes[]","name":"left","type":"bytes[]"},{"internalType":"bytes[]","name":"right","type":"bytes[]"},{"internalType":"string","name":"error","type":"string"}],"name":"assertEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"left","type":"bool"},{"internalType":"bool","name":"right","type":"bool"}],"name":"assertEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"name":"assertEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"name":"assertEqDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"name":"assertEqDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertEqDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertEqDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"},{"internalType":"string","name":"error","type":"string"}],"name":"assertFalse","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"}],"name":"assertFalse","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"name":"assertGe","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertGe","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"name":"assertGe","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertGe","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"name":"assertGeDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertGeDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertGeDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"name":"assertGeDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"name":"assertGt","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertGt","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"name":"assertGt","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertGt","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertGtDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertGtDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"name":"assertGtDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"name":"assertGtDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertLe","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"name":"assertLe","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"name":"assertLe","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertLe","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"name":"assertLeDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertLeDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertLeDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"name":"assertLeDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"name":"assertLt","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertLt","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertLt","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"name":"assertLt","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"name":"assertLtDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertLtDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertLtDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"name":"assertLtDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"left","type":"bytes32[]"},{"internalType":"bytes32[]","name":"right","type":"bytes32[]"}],"name":"assertNotEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256[]","name":"left","type":"int256[]"},{"internalType":"int256[]","name":"right","type":"int256[]"}],"name":"assertNotEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"left","type":"bool"},{"internalType":"bool","name":"right","type":"bool"},{"internalType":"string","name":"error","type":"string"}],"name":"assertNotEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes[]","name":"left","type":"bytes[]"},{"internalType":"bytes[]","name":"right","type":"bytes[]"},{"internalType":"string","name":"error","type":"string"}],"name":"assertNotEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"left","type":"bool"},{"internalType":"bool","name":"right","type":"bool"}],"name":"assertNotEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool[]","name":"left","type":"bool[]"},{"internalType":"bool[]","name":"right","type":"bool[]"}],"name":"assertNotEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"left","type":"bytes"},{"internalType":"bytes","name":"right","type":"bytes"}],"name":"assertNotEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"left","type":"address[]"},{"internalType":"address[]","name":"right","type":"address[]"}],"name":"assertNotEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertNotEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"left","type":"uint256[]"},{"internalType":"uint256[]","name":"right","type":"uint256[]"}],"name":"assertNotEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool[]","name":"left","type":"bool[]"},{"internalType":"bool[]","name":"right","type":"bool[]"},{"internalType":"string","name":"error","type":"string"}],"name":"assertNotEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"left","type":"string"},{"internalType":"string","name":"right","type":"string"}],"name":"assertNotEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"left","type":"address[]"},{"internalType":"address[]","name":"right","type":"address[]"},{"internalType":"string","name":"error","type":"string"}],"name":"assertNotEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"left","type":"string"},{"internalType":"string","name":"right","type":"string"},{"internalType":"string","name":"error","type":"string"}],"name":"assertNotEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"left","type":"address"},{"internalType":"address","name":"right","type":"address"},{"internalType":"string","name":"error","type":"string"}],"name":"assertNotEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"left","type":"bytes32"},{"internalType":"bytes32","name":"right","type":"bytes32"}],"name":"assertNotEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"left","type":"bytes"},{"internalType":"bytes","name":"right","type":"bytes"},{"internalType":"string","name":"error","type":"string"}],"name":"assertNotEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertNotEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"left","type":"uint256[]"},{"internalType":"uint256[]","name":"right","type":"uint256[]"},{"internalType":"string","name":"error","type":"string"}],"name":"assertNotEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"left","type":"address"},{"internalType":"address","name":"right","type":"address"}],"name":"assertNotEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"left","type":"bytes32"},{"internalType":"bytes32","name":"right","type":"bytes32"},{"internalType":"string","name":"error","type":"string"}],"name":"assertNotEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string[]","name":"left","type":"string[]"},{"internalType":"string[]","name":"right","type":"string[]"},{"internalType":"string","name":"error","type":"string"}],"name":"assertNotEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"name":"assertNotEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"left","type":"bytes32[]"},{"internalType":"bytes32[]","name":"right","type":"bytes32[]"},{"internalType":"string","name":"error","type":"string"}],"name":"assertNotEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string[]","name":"left","type":"string[]"},{"internalType":"string[]","name":"right","type":"string[]"}],"name":"assertNotEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256[]","name":"left","type":"int256[]"},{"internalType":"int256[]","name":"right","type":"int256[]"},{"internalType":"string","name":"error","type":"string"}],"name":"assertNotEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes[]","name":"left","type":"bytes[]"},{"internalType":"bytes[]","name":"right","type":"bytes[]"}],"name":"assertNotEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"name":"assertNotEq","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"name":"assertNotEqDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertNotEqDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"name":"assertNotEqDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"name":"assertNotEqDecimal","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"}],"name":"assertTrue","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"},{"internalType":"string","name":"error","type":"string"}],"name":"assertTrue","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"}],"name":"assume","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"char","type":"string"}],"name":"breakpoint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"char","type":"string"},{"internalType":"bool","name":"value","type":"bool"}],"name":"breakpoint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"broadcast","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"signer","type":"address"}],"name":"broadcast","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"name":"broadcast","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"name":"broadcastRawTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"name":"closeFile","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"bytes32","name":"initCodeHash","type":"bytes32"}],"name":"computeCreate2Address","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"bytes32","name":"initCodeHash","type":"bytes32"},{"internalType":"address","name":"deployer","type":"address"}],"name":"computeCreate2Address","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"deployer","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"}],"name":"computeCreateAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"from","type":"string"},{"internalType":"string","name":"to","type":"string"}],"name":"copyFile","outputs":[{"internalType":"uint64","name":"copied","type":"uint64"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"bool","name":"recursive","type":"bool"}],"name":"createDir","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"walletLabel","type":"string"}],"name":"createWallet","outputs":[{"components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}],"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"name":"createWallet","outputs":[{"components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}],"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"},{"internalType":"string","name":"walletLabel","type":"string"}],"name":"createWallet","outputs":[{"components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}],"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"artifactPath","type":"string"},{"internalType":"bytes","name":"constructorArgs","type":"bytes"}],"name":"deployCode","outputs":[{"internalType":"address","name":"deployedAddress","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"artifactPath","type":"string"}],"name":"deployCode","outputs":[{"internalType":"address","name":"deployedAddress","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"string","name":"derivationPath","type":"string"},{"internalType":"uint32","name":"index","type":"uint32"},{"internalType":"string","name":"language","type":"string"}],"name":"deriveKey","outputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"uint32","name":"index","type":"uint32"},{"internalType":"string","name":"language","type":"string"}],"name":"deriveKey","outputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"uint32","name":"index","type":"uint32"}],"name":"deriveKey","outputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"string","name":"derivationPath","type":"string"},{"internalType":"uint32","name":"index","type":"uint32"}],"name":"deriveKey","outputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"name":"ensNamehash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"name":"envAddress","outputs":[{"internalType":"address","name":"value","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"name":"envAddress","outputs":[{"internalType":"address[]","name":"value","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"name":"envBool","outputs":[{"internalType":"bool","name":"value","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"name":"envBool","outputs":[{"internalType":"bool[]","name":"value","type":"bool[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"name":"envBytes","outputs":[{"internalType":"bytes","name":"value","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"name":"envBytes","outputs":[{"internalType":"bytes[]","name":"value","type":"bytes[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"name":"envBytes32","outputs":[{"internalType":"bytes32[]","name":"value","type":"bytes32[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"name":"envBytes32","outputs":[{"internalType":"bytes32","name":"value","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"name":"envExists","outputs":[{"internalType":"bool","name":"result","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"name":"envInt","outputs":[{"internalType":"int256[]","name":"value","type":"int256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"name":"envInt","outputs":[{"internalType":"int256","name":"value","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"bytes32[]","name":"defaultValue","type":"bytes32[]"}],"name":"envOr","outputs":[{"internalType":"bytes32[]","name":"value","type":"bytes32[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"int256[]","name":"defaultValue","type":"int256[]"}],"name":"envOr","outputs":[{"internalType":"int256[]","name":"value","type":"int256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"defaultValue","type":"bool"}],"name":"envOr","outputs":[{"internalType":"bool","name":"value","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"address","name":"defaultValue","type":"address"}],"name":"envOr","outputs":[{"internalType":"address","name":"value","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"defaultValue","type":"uint256"}],"name":"envOr","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"bytes[]","name":"defaultValue","type":"bytes[]"}],"name":"envOr","outputs":[{"internalType":"bytes[]","name":"value","type":"bytes[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"uint256[]","name":"defaultValue","type":"uint256[]"}],"name":"envOr","outputs":[{"internalType":"uint256[]","name":"value","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"string[]","name":"defaultValue","type":"string[]"}],"name":"envOr","outputs":[{"internalType":"string[]","name":"value","type":"string[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes","name":"defaultValue","type":"bytes"}],"name":"envOr","outputs":[{"internalType":"bytes","name":"value","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes32","name":"defaultValue","type":"bytes32"}],"name":"envOr","outputs":[{"internalType":"bytes32","name":"value","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"int256","name":"defaultValue","type":"int256"}],"name":"envOr","outputs":[{"internalType":"int256","name":"value","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"address[]","name":"defaultValue","type":"address[]"}],"name":"envOr","outputs":[{"internalType":"address[]","name":"value","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"defaultValue","type":"string"}],"name":"envOr","outputs":[{"internalType":"string","name":"value","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"bool[]","name":"defaultValue","type":"bool[]"}],"name":"envOr","outputs":[{"internalType":"bool[]","name":"value","type":"bool[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"name":"envString","outputs":[{"internalType":"string[]","name":"value","type":"string[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"name":"envString","outputs":[{"internalType":"string","name":"value","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"name":"envUint","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"name":"envUint","outputs":[{"internalType":"uint256[]","name":"value","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"fromBlock","type":"uint256"},{"internalType":"uint256","name":"toBlock","type":"uint256"},{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32[]","name":"topics","type":"bytes32[]"}],"name":"eth_getLogs","outputs":[{"components":[{"internalType":"address","name":"emitter","type":"address"},{"internalType":"bytes32[]","name":"topics","type":"bytes32[]"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"blockNumber","type":"uint64"},{"internalType":"bytes32","name":"transactionHash","type":"bytes32"},{"internalType":"uint64","name":"transactionIndex","type":"uint64"},{"internalType":"uint256","name":"logIndex","type":"uint256"},{"internalType":"bool","name":"removed","type":"bool"}],"internalType":"struct VmSafe.EthGetLogs[]","name":"logs","type":"tuple[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"name":"exists","outputs":[{"internalType":"bool","name":"result","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string[]","name":"commandInput","type":"string[]"}],"name":"ffi","outputs":[{"internalType":"bytes","name":"result","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"name":"fsMetadata","outputs":[{"components":[{"internalType":"bool","name":"isDir","type":"bool"},{"internalType":"bool","name":"isSymlink","type":"bool"},{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"bool","name":"readOnly","type":"bool"},{"internalType":"uint256","name":"modified","type":"uint256"},{"internalType":"uint256","name":"accessed","type":"uint256"},{"internalType":"uint256","name":"created","type":"uint256"}],"internalType":"struct VmSafe.FsMetadata","name":"metadata","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBlobBaseFee","outputs":[{"internalType":"uint256","name":"blobBaseFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBlockNumber","outputs":[{"internalType":"uint256","name":"height","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBlockTimestamp","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"artifactPath","type":"string"}],"name":"getCode","outputs":[{"internalType":"bytes","name":"creationBytecode","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"artifactPath","type":"string"}],"name":"getDeployedCode","outputs":[{"internalType":"bytes","name":"runtimeBytecode","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFoundryVersion","outputs":[{"internalType":"string","name":"version","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getLabel","outputs":[{"internalType":"string","name":"currentLabel","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"elementSlot","type":"bytes32"}],"name":"getMappingKeyAndParentOf","outputs":[{"internalType":"bool","name":"found","type":"bool"},{"internalType":"bytes32","name":"key","type":"bytes32"},{"internalType":"bytes32","name":"parent","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"mappingSlot","type":"bytes32"}],"name":"getMappingLength","outputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"mappingSlot","type":"bytes32"},{"internalType":"uint256","name":"idx","type":"uint256"}],"name":"getMappingSlotAt","outputs":[{"internalType":"bytes32","name":"value","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}],"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple"}],"name":"getNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getRecordedLogs","outputs":[{"components":[{"internalType":"bytes32[]","name":"topics","type":"bytes32[]"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"address","name":"emitter","type":"address"}],"internalType":"struct VmSafe.Log[]","name":"logs","type":"tuple[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"input","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"indexOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"enum VmSafe.ForgeContext","name":"context","type":"uint8"}],"name":"isContext","outputs":[{"internalType":"bool","name":"result","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"name":"isDir","outputs":[{"internalType":"bool","name":"result","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"name":"isFile","outputs":[{"internalType":"bool","name":"result","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"keyExists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"keyExistsJson","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"keyExistsToml","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"string","name":"newLabel","type":"string"}],"name":"label","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lastCallGas","outputs":[{"components":[{"internalType":"uint64","name":"gasLimit","type":"uint64"},{"internalType":"uint64","name":"gasTotalUsed","type":"uint64"},{"internalType":"uint64","name":"gasMemoryUsed","type":"uint64"},{"internalType":"int64","name":"gasRefunded","type":"int64"},{"internalType":"uint64","name":"gasRemaining","type":"uint64"}],"internalType":"struct VmSafe.Gas","name":"gas","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"slot","type":"bytes32"}],"name":"load","outputs":[{"internalType":"bytes32","name":"data","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"name":"parseAddress","outputs":[{"internalType":"address","name":"parsedValue","type":"address"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"name":"parseBool","outputs":[{"internalType":"bool","name":"parsedValue","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"name":"parseBytes","outputs":[{"internalType":"bytes","name":"parsedValue","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"name":"parseBytes32","outputs":[{"internalType":"bytes32","name":"parsedValue","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"name":"parseInt","outputs":[{"internalType":"int256","name":"parsedValue","type":"int256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"json","type":"string"}],"name":"parseJson","outputs":[{"internalType":"bytes","name":"abiEncodedData","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseJson","outputs":[{"internalType":"bytes","name":"abiEncodedData","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseJsonAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseJsonAddressArray","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseJsonBool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseJsonBoolArray","outputs":[{"internalType":"bool[]","name":"","type":"bool[]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseJsonBytes","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseJsonBytes32","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseJsonBytes32Array","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseJsonBytesArray","outputs":[{"internalType":"bytes[]","name":"","type":"bytes[]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseJsonInt","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseJsonIntArray","outputs":[{"internalType":"int256[]","name":"","type":"int256[]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseJsonKeys","outputs":[{"internalType":"string[]","name":"keys","type":"string[]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseJsonString","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseJsonStringArray","outputs":[{"internalType":"string[]","name":"","type":"string[]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"typeDescription","type":"string"}],"name":"parseJsonType","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"},{"internalType":"string","name":"typeDescription","type":"string"}],"name":"parseJsonType","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"},{"internalType":"string","name":"typeDescription","type":"string"}],"name":"parseJsonTypeArray","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseJsonUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseJsonUintArray","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseToml","outputs":[{"internalType":"bytes","name":"abiEncodedData","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"toml","type":"string"}],"name":"parseToml","outputs":[{"internalType":"bytes","name":"abiEncodedData","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseTomlAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseTomlAddressArray","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseTomlBool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseTomlBoolArray","outputs":[{"internalType":"bool[]","name":"","type":"bool[]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseTomlBytes","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseTomlBytes32","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseTomlBytes32Array","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseTomlBytesArray","outputs":[{"internalType":"bytes[]","name":"","type":"bytes[]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseTomlInt","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseTomlIntArray","outputs":[{"internalType":"int256[]","name":"","type":"int256[]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseTomlKeys","outputs":[{"internalType":"string[]","name":"keys","type":"string[]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseTomlString","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseTomlStringArray","outputs":[{"internalType":"string[]","name":"","type":"string[]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseTomlUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"name":"parseTomlUintArray","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"name":"parseUint","outputs":[{"internalType":"uint256","name":"parsedValue","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pauseGasMetering","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"projectRoot","outputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"promptText","type":"string"}],"name":"prompt","outputs":[{"internalType":"string","name":"input","type":"string"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"promptText","type":"string"}],"name":"promptAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"promptText","type":"string"}],"name":"promptSecret","outputs":[{"internalType":"string","name":"input","type":"string"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"promptText","type":"string"}],"name":"promptSecretUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"promptText","type":"string"}],"name":"promptUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"randomAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"randomUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"min","type":"uint256"},{"internalType":"uint256","name":"max","type":"uint256"}],"name":"randomUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"maxDepth","type":"uint64"}],"name":"readDir","outputs":[{"components":[{"internalType":"string","name":"errorMessage","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"depth","type":"uint64"},{"internalType":"bool","name":"isDir","type":"bool"},{"internalType":"bool","name":"isSymlink","type":"bool"}],"internalType":"struct VmSafe.DirEntry[]","name":"entries","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"maxDepth","type":"uint64"},{"internalType":"bool","name":"followLinks","type":"bool"}],"name":"readDir","outputs":[{"components":[{"internalType":"string","name":"errorMessage","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"depth","type":"uint64"},{"internalType":"bool","name":"isDir","type":"bool"},{"internalType":"bool","name":"isSymlink","type":"bool"}],"internalType":"struct VmSafe.DirEntry[]","name":"entries","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"name":"readDir","outputs":[{"components":[{"internalType":"string","name":"errorMessage","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"depth","type":"uint64"},{"internalType":"bool","name":"isDir","type":"bool"},{"internalType":"bool","name":"isSymlink","type":"bool"}],"internalType":"struct VmSafe.DirEntry[]","name":"entries","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"name":"readFile","outputs":[{"internalType":"string","name":"data","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"name":"readFileBinary","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"name":"readLine","outputs":[{"internalType":"string","name":"line","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"linkPath","type":"string"}],"name":"readLink","outputs":[{"internalType":"string","name":"targetPath","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"record","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"recordLogs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"name":"rememberKey","outputs":[{"internalType":"address","name":"keyAddr","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"bool","name":"recursive","type":"bool"}],"name":"removeDir","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"name":"removeFile","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"input","type":"string"},{"internalType":"string","name":"from","type":"string"},{"internalType":"string","name":"to","type":"string"}],"name":"replace","outputs":[{"internalType":"string","name":"output","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"resumeGasMetering","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"urlOrAlias","type":"string"},{"internalType":"string","name":"method","type":"string"},{"internalType":"string","name":"params","type":"string"}],"name":"rpc","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"method","type":"string"},{"internalType":"string","name":"params","type":"string"}],"name":"rpc","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"rpcAlias","type":"string"}],"name":"rpcUrl","outputs":[{"internalType":"string","name":"json","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rpcUrlStructs","outputs":[{"components":[{"internalType":"string","name":"key","type":"string"},{"internalType":"string","name":"url","type":"string"}],"internalType":"struct VmSafe.Rpc[]","name":"urls","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rpcUrls","outputs":[{"internalType":"string[2][]","name":"urls","type":"string[2][]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"address[]","name":"values","type":"address[]"}],"name":"serializeAddress","outputs":[{"internalType":"string","name":"json","type":"string"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"address","name":"value","type":"address"}],"name":"serializeAddress","outputs":[{"internalType":"string","name":"json","type":"string"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bool[]","name":"values","type":"bool[]"}],"name":"serializeBool","outputs":[{"internalType":"string","name":"json","type":"string"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bool","name":"value","type":"bool"}],"name":"serializeBool","outputs":[{"internalType":"string","name":"json","type":"string"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bytes[]","name":"values","type":"bytes[]"}],"name":"serializeBytes","outputs":[{"internalType":"string","name":"json","type":"string"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bytes","name":"value","type":"bytes"}],"name":"serializeBytes","outputs":[{"internalType":"string","name":"json","type":"string"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bytes32[]","name":"values","type":"bytes32[]"}],"name":"serializeBytes32","outputs":[{"internalType":"string","name":"json","type":"string"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bytes32","name":"value","type":"bytes32"}],"name":"serializeBytes32","outputs":[{"internalType":"string","name":"json","type":"string"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"int256","name":"value","type":"int256"}],"name":"serializeInt","outputs":[{"internalType":"string","name":"json","type":"string"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"int256[]","name":"values","type":"int256[]"}],"name":"serializeInt","outputs":[{"internalType":"string","name":"json","type":"string"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"value","type":"string"}],"name":"serializeJson","outputs":[{"internalType":"string","name":"json","type":"string"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"typeDescription","type":"string"},{"internalType":"bytes","name":"value","type":"bytes"}],"name":"serializeJsonType","outputs":[{"internalType":"string","name":"json","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"string","name":"typeDescription","type":"string"},{"internalType":"bytes","name":"value","type":"bytes"}],"name":"serializeJsonType","outputs":[{"internalType":"string","name":"json","type":"string"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"string[]","name":"values","type":"string[]"}],"name":"serializeString","outputs":[{"internalType":"string","name":"json","type":"string"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"string","name":"value","type":"string"}],"name":"serializeString","outputs":[{"internalType":"string","name":"json","type":"string"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"serializeUint","outputs":[{"internalType":"string","name":"json","type":"string"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"uint256[]","name":"values","type":"uint256[]"}],"name":"serializeUint","outputs":[{"internalType":"string","name":"json","type":"string"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"serializeUintToHex","outputs":[{"internalType":"string","name":"json","type":"string"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"value","type":"string"}],"name":"setEnv","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"digest","type":"bytes32"}],"name":"sign","outputs":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"name":"sign","outputs":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}],"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple"},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"name":"sign","outputs":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"name":"sign","outputs":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}],"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple"},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"name":"signCompact","outputs":[{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"vs","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"name":"signCompact","outputs":[{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"vs","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"digest","type":"bytes32"}],"name":"signCompact","outputs":[{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"vs","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"name":"signCompact","outputs":[{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"vs","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"name":"signP256","outputs":[{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"duration","type":"uint256"}],"name":"sleep","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"input","type":"string"},{"internalType":"string","name":"delimiter","type":"string"}],"name":"split","outputs":[{"internalType":"string[]","name":"outputs","type":"string[]"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"startBroadcast","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"signer","type":"address"}],"name":"startBroadcast","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"name":"startBroadcast","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startMappingRecording","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startStateDiffRecording","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stopAndReturnStateDiff","outputs":[{"components":[{"components":[{"internalType":"uint256","name":"forkId","type":"uint256"},{"internalType":"uint256","name":"chainId","type":"uint256"}],"internalType":"struct VmSafe.ChainInfo","name":"chainInfo","type":"tuple"},{"internalType":"enum VmSafe.AccountAccessKind","name":"kind","type":"uint8"},{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"accessor","type":"address"},{"internalType":"bool","name":"initialized","type":"bool"},{"internalType":"uint256","name":"oldBalance","type":"uint256"},{"internalType":"uint256","name":"newBalance","type":"uint256"},{"internalType":"bytes","name":"deployedCode","type":"bytes"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bool","name":"reverted","type":"bool"},{"components":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"slot","type":"bytes32"},{"internalType":"bool","name":"isWrite","type":"bool"},{"internalType":"bytes32","name":"previousValue","type":"bytes32"},{"internalType":"bytes32","name":"newValue","type":"bytes32"},{"internalType":"bool","name":"reverted","type":"bool"}],"internalType":"struct VmSafe.StorageAccess[]","name":"storageAccesses","type":"tuple[]"},{"internalType":"uint64","name":"depth","type":"uint64"}],"internalType":"struct VmSafe.AccountAccess[]","name":"accountAccesses","type":"tuple[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stopBroadcast","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stopMappingRecording","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"data","type":"string"}],"name":"toBase64","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"name":"toBase64","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"data","type":"string"}],"name":"toBase64URL","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"name":"toBase64URL","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"input","type":"string"}],"name":"toLowercase","outputs":[{"internalType":"string","name":"output","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"value","type":"address"}],"name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"value","type":"bytes"}],"name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"value","type":"int256"}],"name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"value","type":"bytes32"}],"name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"input","type":"string"}],"name":"toUppercase","outputs":[{"internalType":"string","name":"output","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"input","type":"string"}],"name":"trim","outputs":[{"internalType":"string","name":"output","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string[]","name":"commandInput","type":"string[]"}],"name":"tryFfi","outputs":[{"components":[{"internalType":"int32","name":"exitCode","type":"int32"},{"internalType":"bytes","name":"stdout","type":"bytes"},{"internalType":"bytes","name":"stderr","type":"bytes"}],"internalType":"struct VmSafe.FfiResult","name":"result","type":"tuple"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unixTime","outputs":[{"internalType":"uint256","name":"milliseconds","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"string","name":"data","type":"string"}],"name":"writeFile","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"writeFileBinary","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"string","name":"valueKey","type":"string"}],"name":"writeJson","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"path","type":"string"}],"name":"writeJson","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"string","name":"data","type":"string"}],"name":"writeLine","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"string","name":"valueKey","type":"string"}],"name":"writeToml","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"path","type":"string"}],"name":"writeToml","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"accesses(address)":"65bc9481","addr(uint256)":"ffa18649","assertApproxEqAbs(int256,int256,uint256)":"240f839d","assertApproxEqAbs(int256,int256,uint256,string)":"8289e621","assertApproxEqAbs(uint256,uint256,uint256)":"16d207c6","assertApproxEqAbs(uint256,uint256,uint256,string)":"f710b062","assertApproxEqAbsDecimal(int256,int256,uint256,uint256)":"3d5bc8bc","assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)":"6a5066d4","assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)":"045c55ce","assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)":"60429eb2","assertApproxEqRel(int256,int256,uint256)":"fea2d14f","assertApproxEqRel(int256,int256,uint256,string)":"ef277d72","assertApproxEqRel(uint256,uint256,uint256)":"8cf25ef4","assertApproxEqRel(uint256,uint256,uint256,string)":"1ecb7d33","assertApproxEqRelDecimal(int256,int256,uint256,uint256)":"abbf21cc","assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)":"fccc11c4","assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)":"21ed2977","assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)":"82d6c8fd","assertEq(address,address)":"515361f6","assertEq(address,address,string)":"2f2769d1","assertEq(address[],address[])":"3868ac34","assertEq(address[],address[],string)":"3e9173c5","assertEq(bool,bool)":"f7fe3477","assertEq(bool,bool,string)":"4db19e7e","assertEq(bool[],bool[])":"707df785","assertEq(bool[],bool[],string)":"e48a8f8d","assertEq(bytes,bytes)":"97624631","assertEq(bytes,bytes,string)":"e24fed00","assertEq(bytes32,bytes32)":"7c84c69b","assertEq(bytes32,bytes32,string)":"c1fa1ed0","assertEq(bytes32[],bytes32[])":"0cc9ee84","assertEq(bytes32[],bytes32[],string)":"e03e9177","assertEq(bytes[],bytes[])":"e5fb9b4a","assertEq(bytes[],bytes[],string)":"f413f0b6","assertEq(int256,int256)":"fe74f05b","assertEq(int256,int256,string)":"714a2f13","assertEq(int256[],int256[])":"711043ac","assertEq(int256[],int256[],string)":"191f1b30","assertEq(string,string)":"f320d963","assertEq(string,string,string)":"36f656d8","assertEq(string[],string[])":"cf1c049c","assertEq(string[],string[],string)":"eff6b27d","assertEq(uint256,uint256)":"98296c54","assertEq(uint256,uint256,string)":"88b44c85","assertEq(uint256[],uint256[])":"975d5a12","assertEq(uint256[],uint256[],string)":"5d18c73a","assertEqDecimal(int256,int256,uint256)":"48016c04","assertEqDecimal(int256,int256,uint256,string)":"7e77b0c5","assertEqDecimal(uint256,uint256,uint256)":"27af7d9c","assertEqDecimal(uint256,uint256,uint256,string)":"d0cbbdef","assertFalse(bool)":"a5982885","assertFalse(bool,string)":"7ba04809","assertGe(int256,int256)":"0a30b771","assertGe(int256,int256,string)":"a84328dd","assertGe(uint256,uint256)":"a8d4d1d9","assertGe(uint256,uint256,string)":"e25242c0","assertGeDecimal(int256,int256,uint256)":"dc28c0f1","assertGeDecimal(int256,int256,uint256,string)":"5df93c9b","assertGeDecimal(uint256,uint256,uint256)":"3d1fe08a","assertGeDecimal(uint256,uint256,uint256,string)":"8bff9133","assertGt(int256,int256)":"5a362d45","assertGt(int256,int256,string)":"f8d33b9b","assertGt(uint256,uint256)":"db07fcd2","assertGt(uint256,uint256,string)":"d9a3c4d2","assertGtDecimal(int256,int256,uint256)":"78611f0e","assertGtDecimal(int256,int256,uint256,string)":"04a5c7ab","assertGtDecimal(uint256,uint256,uint256)":"eccd2437","assertGtDecimal(uint256,uint256,uint256,string)":"64949a8d","assertLe(int256,int256)":"95fd154e","assertLe(int256,int256,string)":"4dfe692c","assertLe(uint256,uint256)":"8466f415","assertLe(uint256,uint256,string)":"d17d4b0d","assertLeDecimal(int256,int256,uint256)":"11d1364a","assertLeDecimal(int256,int256,uint256,string)":"aa5cf788","assertLeDecimal(uint256,uint256,uint256)":"c304aab7","assertLeDecimal(uint256,uint256,uint256,string)":"7fefbbe0","assertLt(int256,int256)":"3e914080","assertLt(int256,int256,string)":"9ff531e3","assertLt(uint256,uint256)":"b12fc005","assertLt(uint256,uint256,string)":"65d5c135","assertLtDecimal(int256,int256,uint256)":"dbe8d88b","assertLtDecimal(int256,int256,uint256,string)":"40f0b4e0","assertLtDecimal(uint256,uint256,uint256)":"2077337e","assertLtDecimal(uint256,uint256,uint256,string)":"a972d037","assertNotEq(address,address)":"b12e1694","assertNotEq(address,address,string)":"8775a591","assertNotEq(address[],address[])":"46d0b252","assertNotEq(address[],address[],string)":"72c7e0b5","assertNotEq(bool,bool)":"236e4d66","assertNotEq(bool,bool,string)":"1091a261","assertNotEq(bool[],bool[])":"286fafea","assertNotEq(bool[],bool[],string)":"62c6f9fb","assertNotEq(bytes,bytes)":"3cf78e28","assertNotEq(bytes,bytes,string)":"9507540e","assertNotEq(bytes32,bytes32)":"898e83fc","assertNotEq(bytes32,bytes32,string)":"b2332f51","assertNotEq(bytes32[],bytes32[])":"0603ea68","assertNotEq(bytes32[],bytes32[],string)":"b873634c","assertNotEq(bytes[],bytes[])":"edecd035","assertNotEq(bytes[],bytes[],string)":"1dcd1f68","assertNotEq(int256,int256)":"f4c004e3","assertNotEq(int256,int256,string)":"4724c5b9","assertNotEq(int256[],int256[])":"0b72f4ef","assertNotEq(int256[],int256[],string)":"d3977322","assertNotEq(string,string)":"6a8237b3","assertNotEq(string,string,string)":"78bdcea7","assertNotEq(string[],string[])":"bdfacbe8","assertNotEq(string[],string[],string)":"b67187f3","assertNotEq(uint256,uint256)":"b7909320","assertNotEq(uint256,uint256,string)":"98f9bdbd","assertNotEq(uint256[],uint256[])":"56f29cba","assertNotEq(uint256[],uint256[],string)":"9a7fbd8f","assertNotEqDecimal(int256,int256,uint256)":"14e75680","assertNotEqDecimal(int256,int256,uint256,string)":"33949f0b","assertNotEqDecimal(uint256,uint256,uint256)":"669efca7","assertNotEqDecimal(uint256,uint256,uint256,string)":"f5a55558","assertTrue(bool)":"0c9fd581","assertTrue(bool,string)":"a34edc03","assume(bool)":"4c63e562","breakpoint(string)":"f0259e92","breakpoint(string,bool)":"f7d39a8d","broadcast()":"afc98040","broadcast(address)":"e6962cdb","broadcast(uint256)":"f67a965b","broadcastRawTransaction(bytes)":"8c0c72e0","closeFile(string)":"48c3241f","computeCreate2Address(bytes32,bytes32)":"890c283b","computeCreate2Address(bytes32,bytes32,address)":"d323826a","computeCreateAddress(address,uint256)":"74637a7a","copyFile(string,string)":"a54a87d8","createDir(string,bool)":"168b64d3","createWallet(string)":"7404f1d2","createWallet(uint256)":"7a675bb6","createWallet(uint256,string)":"ed7c5462","deployCode(string)":"9a8325a0","deployCode(string,bytes)":"29ce9dde","deriveKey(string,string,uint32)":"6bcb2c1b","deriveKey(string,string,uint32,string)":"29233b1f","deriveKey(string,uint32)":"6229498b","deriveKey(string,uint32,string)":"32c8176d","ensNamehash(string)":"8c374c65","envAddress(string)":"350d56bf","envAddress(string,string)":"ad31b9fa","envBool(string)":"7ed1ec7d","envBool(string,string)":"aaaddeaf","envBytes(string)":"4d7baf06","envBytes(string,string)":"ddc2651b","envBytes32(string)":"97949042","envBytes32(string,string)":"5af231c1","envExists(string)":"ce8365f9","envInt(string)":"892a0c61","envInt(string,string)":"42181150","envOr(string,address)":"561fe540","envOr(string,bool)":"4777f3cf","envOr(string,bytes)":"b3e47705","envOr(string,bytes32)":"b4a85892","envOr(string,int256)":"bbcb713e","envOr(string,string)":"d145736c","envOr(string,string,address[])":"c74e9deb","envOr(string,string,bool[])":"eb85e83b","envOr(string,string,bytes32[])":"2281f367","envOr(string,string,bytes[])":"64bc3e64","envOr(string,string,int256[])":"4700d74b","envOr(string,string,string[])":"859216bc","envOr(string,string,uint256[])":"74318528","envOr(string,uint256)":"5e97348f","envString(string)":"f877cb19","envString(string,string)":"14b02bc9","envUint(string)":"c1978d1f","envUint(string,string)":"f3dec099","eth_getLogs(uint256,uint256,address,bytes32[])":"35e1349b","exists(string)":"261a323e","ffi(string[])":"89160467","fsMetadata(string)":"af368a08","getBlobBaseFee()":"1f6d6ef7","getBlockNumber()":"42cbb15c","getBlockTimestamp()":"796b89b9","getCode(string)":"8d1cc925","getDeployedCode(string)":"3ebf73b4","getFoundryVersion()":"ea991bb5","getLabel(address)":"28a249b0","getMappingKeyAndParentOf(address,bytes32)":"876e24e6","getMappingLength(address,bytes32)":"2f2fd63f","getMappingSlotAt(address,bytes32,uint256)":"ebc73ab4","getNonce((address,uint256,uint256,uint256))":"a5748aad","getNonce(address)":"2d0335ab","getRecordedLogs()":"191553a4","indexOf(string,string)":"8a0807b7","isContext(uint8)":"64af255d","isDir(string)":"7d15d019","isFile(string)":"e0eb04d4","keyExists(string,string)":"528a683c","keyExistsJson(string,string)":"db4235f6","keyExistsToml(string,string)":"600903ad","label(address,string)":"c657c718","lastCallGas()":"2b589b28","load(address,bytes32)":"667f9d70","parseAddress(string)":"c6ce059d","parseBool(string)":"974ef924","parseBytes(string)":"8f5d232d","parseBytes32(string)":"087e6e81","parseInt(string)":"42346c5e","parseJson(string)":"6a82600a","parseJson(string,string)":"85940ef1","parseJsonAddress(string,string)":"1e19e657","parseJsonAddressArray(string,string)":"2fce7883","parseJsonBool(string,string)":"9f86dc91","parseJsonBoolArray(string,string)":"91f3b94f","parseJsonBytes(string,string)":"fd921be8","parseJsonBytes32(string,string)":"1777e59d","parseJsonBytes32Array(string,string)":"91c75bc3","parseJsonBytesArray(string,string)":"6631aa99","parseJsonInt(string,string)":"7b048ccd","parseJsonIntArray(string,string)":"9983c28a","parseJsonKeys(string,string)":"213e4198","parseJsonString(string,string)":"49c4fac8","parseJsonStringArray(string,string)":"498fdcf4","parseJsonType(string,string)":"a9da313b","parseJsonType(string,string,string)":"e3f5ae33","parseJsonTypeArray(string,string,string)":"0175d535","parseJsonUint(string,string)":"addde2b6","parseJsonUintArray(string,string)":"522074ab","parseToml(string)":"592151f0","parseToml(string,string)":"37736e08","parseTomlAddress(string,string)":"65e7c844","parseTomlAddressArray(string,string)":"65c428e7","parseTomlBool(string,string)":"d30dced6","parseTomlBoolArray(string,string)":"127cfe9a","parseTomlBytes(string,string)":"d77bfdb9","parseTomlBytes32(string,string)":"8e214810","parseTomlBytes32Array(string,string)":"3e716f81","parseTomlBytesArray(string,string)":"b197c247","parseTomlInt(string,string)":"c1350739","parseTomlIntArray(string,string)":"d3522ae6","parseTomlKeys(string,string)":"812a44b2","parseTomlString(string,string)":"8bb8dd43","parseTomlStringArray(string,string)":"9f629281","parseTomlUint(string,string)":"cc7b0487","parseTomlUintArray(string,string)":"b5df27c8","parseUint(string)":"fa91454d","pauseGasMetering()":"d1a5b36f","projectRoot()":"d930a0e6","prompt(string)":"47eaf474","promptAddress(string)":"62ee05f4","promptSecret(string)":"1e279d41","promptSecretUint(string)":"69ca02b7","promptUint(string)":"652fd489","randomAddress()":"d5bee9f5","randomUint()":"25124730","randomUint(uint256,uint256)":"d61b051b","readDir(string)":"c4bc59e0","readDir(string,uint64)":"1497876c","readDir(string,uint64,bool)":"8102d70d","readFile(string)":"60f9bb11","readFileBinary(string)":"16ed7bc4","readLine(string)":"70f55728","readLink(string)":"9f5684a2","record()":"266cf109","recordLogs()":"41af2f52","rememberKey(uint256)":"22100064","removeDir(string,bool)":"45c62011","removeFile(string)":"f1afe04d","replace(string,string,string)":"e00ad03e","resumeGasMetering()":"2bcd50e0","rpc(string,string)":"1206c8a8","rpc(string,string,string)":"0199a220","rpcUrl(string)":"975a6ce9","rpcUrlStructs()":"9d2ad72a","rpcUrls()":"a85a8418","serializeAddress(string,string,address)":"972c6062","serializeAddress(string,string,address[])":"1e356e1a","serializeBool(string,string,bool)":"ac22e971","serializeBool(string,string,bool[])":"92925aa1","serializeBytes(string,string,bytes)":"f21d52c7","serializeBytes(string,string,bytes[])":"9884b232","serializeBytes32(string,string,bytes32)":"2d812b44","serializeBytes32(string,string,bytes32[])":"201e43e2","serializeInt(string,string,int256)":"3f33db60","serializeInt(string,string,int256[])":"7676e127","serializeJson(string,string)":"9b3358b0","serializeJsonType(string,bytes)":"6d4f96a6","serializeJsonType(string,string,string,bytes)":"6f93bccb","serializeString(string,string,string)":"88da6d35","serializeString(string,string,string[])":"561cd6f3","serializeUint(string,string,uint256)":"129e9002","serializeUint(string,string,uint256[])":"fee9a469","serializeUintToHex(string,string,uint256)":"ae5a2ae8","setEnv(string,string)":"3d5923ee","sign((address,uint256,uint256,uint256),bytes32)":"b25c5a25","sign(address,bytes32)":"8c1aa205","sign(bytes32)":"799cd333","sign(uint256,bytes32)":"e341eaa4","signCompact((address,uint256,uint256,uint256),bytes32)":"3d0e292f","signCompact(address,bytes32)":"8e2f97bf","signCompact(bytes32)":"a282dc4b","signCompact(uint256,bytes32)":"cc2a781f","signP256(uint256,bytes32)":"83211b40","sleep(uint256)":"fa9d8713","split(string,string)":"8bb75533","startBroadcast()":"7fb5297f","startBroadcast(address)":"7fec2a8d","startBroadcast(uint256)":"ce817d47","startMappingRecording()":"3e9705c0","startStateDiffRecording()":"cf22e3c9","stopAndReturnStateDiff()":"aa5cf90e","stopBroadcast()":"76eadd36","stopMappingRecording()":"0d4aae9b","toBase64(bytes)":"a5cbfe65","toBase64(string)":"3f8be2c8","toBase64URL(bytes)":"c8bd0e4a","toBase64URL(string)":"ae3165b3","toLowercase(string)":"50bb0884","toString(address)":"56ca623e","toString(bool)":"71dce7da","toString(bytes)":"71aad10d","toString(bytes32)":"b11a19e8","toString(int256)":"a322c40e","toString(uint256)":"6900a3ae","toUppercase(string)":"074ae3d7","trim(string)":"b2dad155","tryFfi(string[])":"f45c1ce7","unixTime()":"625387dc","writeFile(string,string)":"897e0a97","writeFileBinary(string,bytes)":"1f21fc80","writeJson(string,string)":"e23cd19f","writeJson(string,string,string)":"35d6ad46","writeLine(string,string)":"619d897f","writeToml(string,string)":"c0865ba7","writeToml(string,string,string)":"51ac6a33"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"accesses\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"readSlots\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"writeSlots\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"addr\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"keyAddr\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqAbs\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqAbs\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqAbs\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqAbs\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqAbsDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqAbsDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqAbsDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqAbsDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqRel\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqRel\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqRel\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqRel\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqRelDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqRelDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqRelDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqRelDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"left\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"right\",\"type\":\"bytes32[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256[]\",\"name\":\"left\",\"type\":\"int256[]\"},{\"internalType\":\"int256[]\",\"name\":\"right\",\"type\":\"int256[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"left\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"right\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"left\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"right\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"left\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"right\",\"type\":\"address[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"left\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"right\",\"type\":\"address[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"left\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"right\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"left\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"right\",\"type\":\"address\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"left\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"right\",\"type\":\"uint256[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool[]\",\"name\":\"left\",\"type\":\"bool[]\"},{\"internalType\":\"bool[]\",\"name\":\"right\",\"type\":\"bool[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256[]\",\"name\":\"left\",\"type\":\"int256[]\"},{\"internalType\":\"int256[]\",\"name\":\"right\",\"type\":\"int256[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"left\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"right\",\"type\":\"bytes32\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"left\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"right\",\"type\":\"uint256[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"left\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"right\",\"type\":\"bytes\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"left\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"right\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"left\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"right\",\"type\":\"string[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"left\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"right\",\"type\":\"bytes32[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"left\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"right\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool[]\",\"name\":\"left\",\"type\":\"bool[]\"},{\"internalType\":\"bool[]\",\"name\":\"right\",\"type\":\"bool[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"left\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes[]\",\"name\":\"right\",\"type\":\"bytes[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"left\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"right\",\"type\":\"string[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"left\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"right\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"left\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes[]\",\"name\":\"right\",\"type\":\"bytes[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"left\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"right\",\"type\":\"bool\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertFalse\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"}],\"name\":\"assertFalse\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertGe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertGe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertGeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertGeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertGt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertGt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertGtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertGtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertLe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertLe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertLeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertLeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertLt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertLt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertLtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertLtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"left\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"right\",\"type\":\"bytes32[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256[]\",\"name\":\"left\",\"type\":\"int256[]\"},{\"internalType\":\"int256[]\",\"name\":\"right\",\"type\":\"int256[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"left\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"right\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"left\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes[]\",\"name\":\"right\",\"type\":\"bytes[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"left\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"right\",\"type\":\"bool\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool[]\",\"name\":\"left\",\"type\":\"bool[]\"},{\"internalType\":\"bool[]\",\"name\":\"right\",\"type\":\"bool[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"left\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"right\",\"type\":\"bytes\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"left\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"right\",\"type\":\"address[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"left\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"right\",\"type\":\"uint256[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool[]\",\"name\":\"left\",\"type\":\"bool[]\"},{\"internalType\":\"bool[]\",\"name\":\"right\",\"type\":\"bool[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"left\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"right\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"left\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"right\",\"type\":\"address[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"left\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"right\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"left\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"right\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"left\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"right\",\"type\":\"bytes32\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"left\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"right\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"left\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"right\",\"type\":\"uint256[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"left\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"right\",\"type\":\"address\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"left\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"right\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"left\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"right\",\"type\":\"string[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"left\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"right\",\"type\":\"bytes32[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"left\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"right\",\"type\":\"string[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256[]\",\"name\":\"left\",\"type\":\"int256[]\"},{\"internalType\":\"int256[]\",\"name\":\"right\",\"type\":\"int256[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"left\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes[]\",\"name\":\"right\",\"type\":\"bytes[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertNotEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertNotEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"}],\"name\":\"assertTrue\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertTrue\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"}],\"name\":\"assume\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"char\",\"type\":\"string\"}],\"name\":\"breakpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"char\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"breakpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"broadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"broadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"broadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"broadcastRawTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"closeFile\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"initCodeHash\",\"type\":\"bytes32\"}],\"name\":\"computeCreate2Address\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"initCodeHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"}],\"name\":\"computeCreate2Address\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"computeCreateAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"from\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"to\",\"type\":\"string\"}],\"name\":\"copyFile\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"copied\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"recursive\",\"type\":\"bool\"}],\"name\":\"createDir\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"walletLabel\",\"type\":\"string\"}],\"name\":\"createWallet\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"createWallet\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"walletLabel\",\"type\":\"string\"}],\"name\":\"createWallet\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"artifactPath\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"constructorArgs\",\"type\":\"bytes\"}],\"name\":\"deployCode\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"deployedAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"artifactPath\",\"type\":\"string\"}],\"name\":\"deployCode\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"deployedAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"derivationPath\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"},{\"internalType\":\"string\",\"name\":\"language\",\"type\":\"string\"}],\"name\":\"deriveKey\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"},{\"internalType\":\"string\",\"name\":\"language\",\"type\":\"string\"}],\"name\":\"deriveKey\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"}],\"name\":\"deriveKey\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"derivationPath\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"}],\"name\":\"deriveKey\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"ensNamehash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envAddress\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"value\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envBool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envBool\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"value\",\"type\":\"bool[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envBytes\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"value\",\"type\":\"bytes[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envBytes32\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"value\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envBytes32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envInt\",\"outputs\":[{\"internalType\":\"int256[]\",\"name\":\"value\",\"type\":\"int256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"defaultValue\",\"type\":\"bytes32[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"value\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"int256[]\",\"name\":\"defaultValue\",\"type\":\"int256[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"int256[]\",\"name\":\"value\",\"type\":\"int256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"defaultValue\",\"type\":\"bool\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"defaultValue\",\"type\":\"address\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"defaultValue\",\"type\":\"uint256\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"bytes[]\",\"name\":\"defaultValue\",\"type\":\"bytes[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"value\",\"type\":\"bytes[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"uint256[]\",\"name\":\"defaultValue\",\"type\":\"uint256[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"value\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"defaultValue\",\"type\":\"string[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"value\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"defaultValue\",\"type\":\"bytes\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"defaultValue\",\"type\":\"bytes32\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"int256\",\"name\":\"defaultValue\",\"type\":\"int256\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"address[]\",\"name\":\"defaultValue\",\"type\":\"address[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"value\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"defaultValue\",\"type\":\"string\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"bool[]\",\"name\":\"defaultValue\",\"type\":\"bool[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"value\",\"type\":\"bool[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envString\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"value\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envUint\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"value\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fromBlock\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toBlock\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32[]\",\"name\":\"topics\",\"type\":\"bytes32[]\"}],\"name\":\"eth_getLogs\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"emitter\",\"type\":\"address\"},{\"internalType\":\"bytes32[]\",\"name\":\"topics\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"transactionHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"transactionIndex\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"logIndex\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"removed\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.EthGetLogs[]\",\"name\":\"logs\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"exists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"commandInput\",\"type\":\"string[]\"}],\"name\":\"ffi\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"fsMetadata\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"isDir\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isSymlink\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"readOnly\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"modified\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accessed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"created\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.FsMetadata\",\"name\":\"metadata\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlobBaseFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blobBaseFee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlockTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"artifactPath\",\"type\":\"string\"}],\"name\":\"getCode\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"creationBytecode\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"artifactPath\",\"type\":\"string\"}],\"name\":\"getDeployedCode\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"runtimeBytecode\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFoundryVersion\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getLabel\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"currentLabel\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"elementSlot\",\"type\":\"bytes32\"}],\"name\":\"getMappingKeyAndParentOf\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"found\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"parent\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"mappingSlot\",\"type\":\"bytes32\"}],\"name\":\"getMappingLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"mappingSlot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"getMappingSlotAt\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"}],\"name\":\"getNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRecordedLogs\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32[]\",\"name\":\"topics\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"emitter\",\"type\":\"address\"}],\"internalType\":\"struct VmSafe.Log[]\",\"name\":\"logs\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"indexOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum VmSafe.ForgeContext\",\"name\":\"context\",\"type\":\"uint8\"}],\"name\":\"isContext\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"isDir\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"isFile\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"keyExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"keyExistsJson\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"keyExistsToml\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"newLabel\",\"type\":\"string\"}],\"name\":\"label\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastCallGas\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"gasLimit\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"gasTotalUsed\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"gasMemoryUsed\",\"type\":\"uint64\"},{\"internalType\":\"int64\",\"name\":\"gasRefunded\",\"type\":\"int64\"},{\"internalType\":\"uint64\",\"name\":\"gasRemaining\",\"type\":\"uint64\"}],\"internalType\":\"struct VmSafe.Gas\",\"name\":\"gas\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"load\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"data\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"parsedValue\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseBool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"parsedValue\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"parsedValue\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseBytes32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"parsedValue\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"parsedValue\",\"type\":\"int256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"name\":\"parseJson\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"abiEncodedData\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJson\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"abiEncodedData\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonAddressArray\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBoolArray\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"\",\"type\":\"bool[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBytes32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBytes32Array\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBytesArray\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"\",\"type\":\"bytes[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonIntArray\",\"outputs\":[{\"internalType\":\"int256[]\",\"name\":\"\",\"type\":\"int256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonKeys\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"keys\",\"type\":\"string[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonStringArray\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"typeDescription\",\"type\":\"string\"}],\"name\":\"parseJsonType\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"typeDescription\",\"type\":\"string\"}],\"name\":\"parseJsonType\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"typeDescription\",\"type\":\"string\"}],\"name\":\"parseJsonTypeArray\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonUintArray\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseToml\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"abiEncodedData\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"}],\"name\":\"parseToml\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"abiEncodedData\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlAddressArray\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBoolArray\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"\",\"type\":\"bool[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBytes32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBytes32Array\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBytesArray\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"\",\"type\":\"bytes[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlIntArray\",\"outputs\":[{\"internalType\":\"int256[]\",\"name\":\"\",\"type\":\"int256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlKeys\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"keys\",\"type\":\"string[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlStringArray\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlUintArray\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"parsedValue\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseGasMetering\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"projectRoot\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"promptText\",\"type\":\"string\"}],\"name\":\"prompt\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"promptText\",\"type\":\"string\"}],\"name\":\"promptAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"promptText\",\"type\":\"string\"}],\"name\":\"promptSecret\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"promptText\",\"type\":\"string\"}],\"name\":\"promptSecretUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"promptText\",\"type\":\"string\"}],\"name\":\"promptUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"randomAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"randomUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"min\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"name\":\"randomUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"maxDepth\",\"type\":\"uint64\"}],\"name\":\"readDir\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"errorMessage\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"depth\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isDir\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isSymlink\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.DirEntry[]\",\"name\":\"entries\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"maxDepth\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"followLinks\",\"type\":\"bool\"}],\"name\":\"readDir\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"errorMessage\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"depth\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isDir\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isSymlink\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.DirEntry[]\",\"name\":\"entries\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"readDir\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"errorMessage\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"depth\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isDir\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isSymlink\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.DirEntry[]\",\"name\":\"entries\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"readFile\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"readFileBinary\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"readLine\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"line\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"linkPath\",\"type\":\"string\"}],\"name\":\"readLink\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"targetPath\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"record\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recordLogs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"rememberKey\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"keyAddr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"recursive\",\"type\":\"bool\"}],\"name\":\"removeDir\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"removeFile\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"from\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"to\",\"type\":\"string\"}],\"name\":\"replace\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"output\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resumeGasMetering\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"urlOrAlias\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"method\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"params\",\"type\":\"string\"}],\"name\":\"rpc\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"method\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"params\",\"type\":\"string\"}],\"name\":\"rpc\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"rpcAlias\",\"type\":\"string\"}],\"name\":\"rpcUrl\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rpcUrlStructs\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"url\",\"type\":\"string\"}],\"internalType\":\"struct VmSafe.Rpc[]\",\"name\":\"urls\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rpcUrls\",\"outputs\":[{\"internalType\":\"string[2][]\",\"name\":\"urls\",\"type\":\"string[2][]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"address[]\",\"name\":\"values\",\"type\":\"address[]\"}],\"name\":\"serializeAddress\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"name\":\"serializeAddress\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bool[]\",\"name\":\"values\",\"type\":\"bool[]\"}],\"name\":\"serializeBool\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"serializeBool\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bytes[]\",\"name\":\"values\",\"type\":\"bytes[]\"}],\"name\":\"serializeBytes\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"name\":\"serializeBytes\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"values\",\"type\":\"bytes32[]\"}],\"name\":\"serializeBytes32\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"name\":\"serializeBytes32\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"name\":\"serializeInt\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"int256[]\",\"name\":\"values\",\"type\":\"int256[]\"}],\"name\":\"serializeInt\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"name\":\"serializeJson\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"typeDescription\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"name\":\"serializeJsonType\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"typeDescription\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"name\":\"serializeJsonType\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"values\",\"type\":\"string[]\"}],\"name\":\"serializeString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"name\":\"serializeString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"serializeUint\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"serializeUint\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"serializeUintToHex\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"name\":\"setEnv\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"sign\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"sign\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"sign\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"sign\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"signCompact\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"vs\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"signCompact\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"vs\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"signCompact\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"vs\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"signCompact\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"vs\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"signP256\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"}],\"name\":\"sleep\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delimiter\",\"type\":\"string\"}],\"name\":\"split\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"outputs\",\"type\":\"string[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startBroadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"startBroadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"startBroadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startMappingRecording\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startStateDiffRecording\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopAndReturnStateDiff\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.ChainInfo\",\"name\":\"chainInfo\",\"type\":\"tuple\"},{\"internalType\":\"enum VmSafe.AccountAccessKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"accessor\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"initialized\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"oldBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newBalance\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"deployedCode\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"reverted\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"isWrite\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"previousValue\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"newValue\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"reverted\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.StorageAccess[]\",\"name\":\"storageAccesses\",\"type\":\"tuple[]\"},{\"internalType\":\"uint64\",\"name\":\"depth\",\"type\":\"uint64\"}],\"internalType\":\"struct VmSafe.AccountAccess[]\",\"name\":\"accountAccesses\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopBroadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopMappingRecording\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"name\":\"toBase64\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"toBase64\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"name\":\"toBase64URL\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"toBase64URL\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"}],\"name\":\"toLowercase\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"output\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"}],\"name\":\"toUppercase\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"output\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"}],\"name\":\"trim\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"output\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"commandInput\",\"type\":\"string[]\"}],\"name\":\"tryFfi\",\"outputs\":[{\"components\":[{\"internalType\":\"int32\",\"name\":\"exitCode\",\"type\":\"int32\"},{\"internalType\":\"bytes\",\"name\":\"stdout\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"stderr\",\"type\":\"bytes\"}],\"internalType\":\"struct VmSafe.FfiResult\",\"name\":\"result\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unixTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"milliseconds\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"name\":\"writeFile\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"writeFileBinary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"}],\"name\":\"writeJson\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"writeJson\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"name\":\"writeLine\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"}],\"name\":\"writeToml\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"writeToml\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"accesses(address)\":{\"notice\":\"Gets all accessed reads and write slot from a `vm.record` session, for a given address.\"},\"addr(uint256)\":{\"notice\":\"Gets the address for a given private key.\"},\"assertApproxEqAbs(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`.\"},\"assertApproxEqAbs(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Includes error message into revert string on failure.\"},\"assertApproxEqAbs(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`.\"},\"assertApproxEqAbs(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Includes error message into revert string on failure.\"},\"assertApproxEqAbsDecimal(int256,int256,uint256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message.\"},\"assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message.\"},\"assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertApproxEqRel(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%\"},\"assertApproxEqRel(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Includes error message into revert string on failure.\"},\"assertApproxEqRel(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%\"},\"assertApproxEqRel(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Includes error message into revert string on failure.\"},\"assertApproxEqRelDecimal(int256,int256,uint256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message.\"},\"assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message.\"},\"assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertEq(address,address)\":{\"notice\":\"Asserts that two `address` values are equal.\"},\"assertEq(address,address,string)\":{\"notice\":\"Asserts that two `address` values are equal and includes error message into revert string on failure.\"},\"assertEq(address[],address[])\":{\"notice\":\"Asserts that two arrays of `address` values are equal.\"},\"assertEq(address[],address[],string)\":{\"notice\":\"Asserts that two arrays of `address` values are equal and includes error message into revert string on failure.\"},\"assertEq(bool,bool)\":{\"notice\":\"Asserts that two `bool` values are equal.\"},\"assertEq(bool,bool,string)\":{\"notice\":\"Asserts that two `bool` values are equal and includes error message into revert string on failure.\"},\"assertEq(bool[],bool[])\":{\"notice\":\"Asserts that two arrays of `bool` values are equal.\"},\"assertEq(bool[],bool[],string)\":{\"notice\":\"Asserts that two arrays of `bool` values are equal and includes error message into revert string on failure.\"},\"assertEq(bytes,bytes)\":{\"notice\":\"Asserts that two `bytes` values are equal.\"},\"assertEq(bytes,bytes,string)\":{\"notice\":\"Asserts that two `bytes` values are equal and includes error message into revert string on failure.\"},\"assertEq(bytes32,bytes32)\":{\"notice\":\"Asserts that two `bytes32` values are equal.\"},\"assertEq(bytes32,bytes32,string)\":{\"notice\":\"Asserts that two `bytes32` values are equal and includes error message into revert string on failure.\"},\"assertEq(bytes32[],bytes32[])\":{\"notice\":\"Asserts that two arrays of `bytes32` values are equal.\"},\"assertEq(bytes32[],bytes32[],string)\":{\"notice\":\"Asserts that two arrays of `bytes32` values are equal and includes error message into revert string on failure.\"},\"assertEq(bytes[],bytes[])\":{\"notice\":\"Asserts that two arrays of `bytes` values are equal.\"},\"assertEq(bytes[],bytes[],string)\":{\"notice\":\"Asserts that two arrays of `bytes` values are equal and includes error message into revert string on failure.\"},\"assertEq(int256,int256)\":{\"notice\":\"Asserts that two `int256` values are equal.\"},\"assertEq(int256,int256,string)\":{\"notice\":\"Asserts that two `int256` values are equal and includes error message into revert string on failure.\"},\"assertEq(int256[],int256[])\":{\"notice\":\"Asserts that two arrays of `int256` values are equal.\"},\"assertEq(int256[],int256[],string)\":{\"notice\":\"Asserts that two arrays of `int256` values are equal and includes error message into revert string on failure.\"},\"assertEq(string,string)\":{\"notice\":\"Asserts that two `string` values are equal.\"},\"assertEq(string,string,string)\":{\"notice\":\"Asserts that two `string` values are equal and includes error message into revert string on failure.\"},\"assertEq(string[],string[])\":{\"notice\":\"Asserts that two arrays of `string` values are equal.\"},\"assertEq(string[],string[],string)\":{\"notice\":\"Asserts that two arrays of `string` values are equal and includes error message into revert string on failure.\"},\"assertEq(uint256,uint256)\":{\"notice\":\"Asserts that two `uint256` values are equal.\"},\"assertEq(uint256,uint256,string)\":{\"notice\":\"Asserts that two `uint256` values are equal and includes error message into revert string on failure.\"},\"assertEq(uint256[],uint256[])\":{\"notice\":\"Asserts that two arrays of `uint256 values are equal.\"},\"assertEq(uint256[],uint256[],string)\":{\"notice\":\"Asserts that two arrays of `uint256` values are equal and includes error message into revert string on failure.\"},\"assertEqDecimal(int256,int256,uint256)\":{\"notice\":\"Asserts that two `int256` values are equal, formatting them with decimals in failure message.\"},\"assertEqDecimal(int256,int256,uint256,string)\":{\"notice\":\"Asserts that two `int256` values are equal, formatting them with decimals in failure message. Includes error message into revert string on failure.\"},\"assertEqDecimal(uint256,uint256,uint256)\":{\"notice\":\"Asserts that two `uint256` values are equal, formatting them with decimals in failure message.\"},\"assertEqDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Asserts that two `uint256` values are equal, formatting them with decimals in failure message. Includes error message into revert string on failure.\"},\"assertFalse(bool)\":{\"notice\":\"Asserts that the given condition is false.\"},\"assertFalse(bool,string)\":{\"notice\":\"Asserts that the given condition is false and includes error message into revert string on failure.\"},\"assertGe(int256,int256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than or equal to second.\"},\"assertGe(int256,int256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than or equal to second. Includes error message into revert string on failure.\"},\"assertGe(uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than or equal to second.\"},\"assertGe(uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than or equal to second. Includes error message into revert string on failure.\"},\"assertGeDecimal(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message.\"},\"assertGeDecimal(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertGeDecimal(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message.\"},\"assertGeDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertGt(int256,int256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than second.\"},\"assertGt(int256,int256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than second. Includes error message into revert string on failure.\"},\"assertGt(uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than second.\"},\"assertGt(uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than second. Includes error message into revert string on failure.\"},\"assertGtDecimal(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than second. Formats values with decimals in failure message.\"},\"assertGtDecimal(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertGtDecimal(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than second. Formats values with decimals in failure message.\"},\"assertGtDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertLe(int256,int256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than or equal to second.\"},\"assertLe(int256,int256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than or equal to second. Includes error message into revert string on failure.\"},\"assertLe(uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than or equal to second.\"},\"assertLe(uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than or equal to second. Includes error message into revert string on failure.\"},\"assertLeDecimal(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message.\"},\"assertLeDecimal(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertLeDecimal(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message.\"},\"assertLeDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertLt(int256,int256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than second.\"},\"assertLt(int256,int256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than second. Includes error message into revert string on failure.\"},\"assertLt(uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than second.\"},\"assertLt(uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than second. Includes error message into revert string on failure.\"},\"assertLtDecimal(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than second. Formats values with decimals in failure message.\"},\"assertLtDecimal(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertLtDecimal(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than second. Formats values with decimals in failure message.\"},\"assertLtDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertNotEq(address,address)\":{\"notice\":\"Asserts that two `address` values are not equal.\"},\"assertNotEq(address,address,string)\":{\"notice\":\"Asserts that two `address` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(address[],address[])\":{\"notice\":\"Asserts that two arrays of `address` values are not equal.\"},\"assertNotEq(address[],address[],string)\":{\"notice\":\"Asserts that two arrays of `address` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bool,bool)\":{\"notice\":\"Asserts that two `bool` values are not equal.\"},\"assertNotEq(bool,bool,string)\":{\"notice\":\"Asserts that two `bool` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bool[],bool[])\":{\"notice\":\"Asserts that two arrays of `bool` values are not equal.\"},\"assertNotEq(bool[],bool[],string)\":{\"notice\":\"Asserts that two arrays of `bool` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bytes,bytes)\":{\"notice\":\"Asserts that two `bytes` values are not equal.\"},\"assertNotEq(bytes,bytes,string)\":{\"notice\":\"Asserts that two `bytes` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bytes32,bytes32)\":{\"notice\":\"Asserts that two `bytes32` values are not equal.\"},\"assertNotEq(bytes32,bytes32,string)\":{\"notice\":\"Asserts that two `bytes32` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bytes32[],bytes32[])\":{\"notice\":\"Asserts that two arrays of `bytes32` values are not equal.\"},\"assertNotEq(bytes32[],bytes32[],string)\":{\"notice\":\"Asserts that two arrays of `bytes32` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bytes[],bytes[])\":{\"notice\":\"Asserts that two arrays of `bytes` values are not equal.\"},\"assertNotEq(bytes[],bytes[],string)\":{\"notice\":\"Asserts that two arrays of `bytes` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(int256,int256)\":{\"notice\":\"Asserts that two `int256` values are not equal.\"},\"assertNotEq(int256,int256,string)\":{\"notice\":\"Asserts that two `int256` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(int256[],int256[])\":{\"notice\":\"Asserts that two arrays of `int256` values are not equal.\"},\"assertNotEq(int256[],int256[],string)\":{\"notice\":\"Asserts that two arrays of `int256` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(string,string)\":{\"notice\":\"Asserts that two `string` values are not equal.\"},\"assertNotEq(string,string,string)\":{\"notice\":\"Asserts that two `string` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(string[],string[])\":{\"notice\":\"Asserts that two arrays of `string` values are not equal.\"},\"assertNotEq(string[],string[],string)\":{\"notice\":\"Asserts that two arrays of `string` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(uint256,uint256)\":{\"notice\":\"Asserts that two `uint256` values are not equal.\"},\"assertNotEq(uint256,uint256,string)\":{\"notice\":\"Asserts that two `uint256` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(uint256[],uint256[])\":{\"notice\":\"Asserts that two arrays of `uint256` values are not equal.\"},\"assertNotEq(uint256[],uint256[],string)\":{\"notice\":\"Asserts that two arrays of `uint256` values are not equal and includes error message into revert string on failure.\"},\"assertNotEqDecimal(int256,int256,uint256)\":{\"notice\":\"Asserts that two `int256` values are not equal, formatting them with decimals in failure message.\"},\"assertNotEqDecimal(int256,int256,uint256,string)\":{\"notice\":\"Asserts that two `int256` values are not equal, formatting them with decimals in failure message. Includes error message into revert string on failure.\"},\"assertNotEqDecimal(uint256,uint256,uint256)\":{\"notice\":\"Asserts that two `uint256` values are not equal, formatting them with decimals in failure message.\"},\"assertNotEqDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Asserts that two `uint256` values are not equal, formatting them with decimals in failure message. Includes error message into revert string on failure.\"},\"assertTrue(bool)\":{\"notice\":\"Asserts that the given condition is true.\"},\"assertTrue(bool,string)\":{\"notice\":\"Asserts that the given condition is true and includes error message into revert string on failure.\"},\"assume(bool)\":{\"notice\":\"If the condition is false, discard this run's fuzz inputs and generate new ones.\"},\"breakpoint(string)\":{\"notice\":\"Writes a breakpoint to jump to in the debugger.\"},\"breakpoint(string,bool)\":{\"notice\":\"Writes a conditional breakpoint to jump to in the debugger.\"},\"broadcast()\":{\"notice\":\"Has the next call (at this call depth only) create transactions that can later be signed and sent onchain. Broadcasting address is determined by checking the following in order: 1. If `--sender` argument was provided, that address is used. 2. If exactly one signer (e.g. private key, hw wallet, keystore) is set when `forge broadcast` is invoked, that signer is used. 3. Otherwise, default foundry sender (1804c8AB1F12E6bbf3894d4083f33e07309d1f38) is used.\"},\"broadcast(address)\":{\"notice\":\"Has the next call (at this call depth only) create a transaction with the address provided as the sender that can later be signed and sent onchain.\"},\"broadcast(uint256)\":{\"notice\":\"Has the next call (at this call depth only) create a transaction with the private key provided as the sender that can later be signed and sent onchain.\"},\"broadcastRawTransaction(bytes)\":{\"notice\":\"Takes a signed transaction and broadcasts it to the network.\"},\"closeFile(string)\":{\"notice\":\"Closes file for reading, resetting the offset and allowing to read it from beginning with readLine. `path` is relative to the project root.\"},\"computeCreate2Address(bytes32,bytes32)\":{\"notice\":\"Compute the address of a contract created with CREATE2 using the default CREATE2 deployer.\"},\"computeCreate2Address(bytes32,bytes32,address)\":{\"notice\":\"Compute the address of a contract created with CREATE2 using the given CREATE2 deployer.\"},\"computeCreateAddress(address,uint256)\":{\"notice\":\"Compute the address a contract will be deployed at for a given deployer address and nonce.\"},\"copyFile(string,string)\":{\"notice\":\"Copies the contents of one file to another. This function will **overwrite** the contents of `to`. On success, the total number of bytes copied is returned and it is equal to the length of the `to` file as reported by `metadata`. Both `from` and `to` are relative to the project root.\"},\"createDir(string,bool)\":{\"notice\":\"Creates a new, empty directory at the provided path. This cheatcode will revert in the following situations, but is not limited to just these cases: - User lacks permissions to modify `path`. - A parent of the given path doesn't exist and `recursive` is false. - `path` already exists and `recursive` is false. `path` is relative to the project root.\"},\"createWallet(string)\":{\"notice\":\"Derives a private key from the name, labels the account with that name, and returns the wallet.\"},\"createWallet(uint256)\":{\"notice\":\"Generates a wallet from the private key and returns the wallet.\"},\"createWallet(uint256,string)\":{\"notice\":\"Generates a wallet from the private key, labels the account with that name, and returns the wallet.\"},\"deployCode(string)\":{\"notice\":\"Deploys a contract from an artifact file. Takes in the relative path to the json file or the path to the artifact in the form of :: where and parts are optional.\"},\"deployCode(string,bytes)\":{\"notice\":\"Deploys a contract from an artifact file. Takes in the relative path to the json file or the path to the artifact in the form of :: where and parts are optional. Additionaly accepts abi-encoded constructor arguments.\"},\"deriveKey(string,string,uint32)\":{\"notice\":\"Derive a private key from a provided mnenomic string (or mnenomic file path) at `{derivationPath}{index}`.\"},\"deriveKey(string,string,uint32,string)\":{\"notice\":\"Derive a private key from a provided mnenomic string (or mnenomic file path) in the specified language at `{derivationPath}{index}`.\"},\"deriveKey(string,uint32)\":{\"notice\":\"Derive a private key from a provided mnenomic string (or mnenomic file path) at the derivation path `m/44'/60'/0'/0/{index}`.\"},\"deriveKey(string,uint32,string)\":{\"notice\":\"Derive a private key from a provided mnenomic string (or mnenomic file path) in the specified language at the derivation path `m/44'/60'/0'/0/{index}`.\"},\"ensNamehash(string)\":{\"notice\":\"Returns ENS namehash for provided string.\"},\"envAddress(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `address`. Reverts if the variable was not found or could not be parsed.\"},\"envAddress(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envBool(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bool`. Reverts if the variable was not found or could not be parsed.\"},\"envBool(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envBytes(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bytes`. Reverts if the variable was not found or could not be parsed.\"},\"envBytes(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envBytes32(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bytes32`. Reverts if the variable was not found or could not be parsed.\"},\"envBytes32(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envExists(string)\":{\"notice\":\"Gets the environment variable `name` and returns true if it exists, else returns false.\"},\"envInt(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `int256`. Reverts if the variable was not found or could not be parsed.\"},\"envInt(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envOr(string,address)\":{\"notice\":\"Gets the environment variable `name` and parses it as `address`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,bool)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bool`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,bytes)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bytes`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,bytes32)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bytes32`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,int256)\":{\"notice\":\"Gets the environment variable `name` and parses it as `int256`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `string`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,address[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,bool[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,bytes32[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,bytes[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,int256[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,string[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,uint256[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,uint256)\":{\"notice\":\"Gets the environment variable `name` and parses it as `uint256`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envString(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `string`. Reverts if the variable was not found or could not be parsed.\"},\"envString(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envUint(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `uint256`. Reverts if the variable was not found or could not be parsed.\"},\"envUint(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"eth_getLogs(uint256,uint256,address,bytes32[])\":{\"notice\":\"Gets all the logs according to specified filter.\"},\"exists(string)\":{\"notice\":\"Returns true if the given path points to an existing entity, else returns false.\"},\"ffi(string[])\":{\"notice\":\"Performs a foreign function call via the terminal.\"},\"fsMetadata(string)\":{\"notice\":\"Given a path, query the file system to get information about a file, directory, etc.\"},\"getBlobBaseFee()\":{\"notice\":\"Gets the current `block.blobbasefee`. You should use this instead of `block.blobbasefee` if you use `vm.blobBaseFee`, as `block.blobbasefee` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180\"},\"getBlockNumber()\":{\"notice\":\"Gets the current `block.number`. You should use this instead of `block.number` if you use `vm.roll`, as `block.number` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180\"},\"getBlockTimestamp()\":{\"notice\":\"Gets the current `block.timestamp`. You should use this instead of `block.timestamp` if you use `vm.warp`, as `block.timestamp` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180\"},\"getCode(string)\":{\"notice\":\"Gets the creation bytecode from an artifact file. Takes in the relative path to the json file or the path to the artifact in the form of :: where and parts are optional.\"},\"getDeployedCode(string)\":{\"notice\":\"Gets the deployed bytecode from an artifact file. Takes in the relative path to the json file or the path to the artifact in the form of :: where and parts are optional.\"},\"getFoundryVersion()\":{\"notice\":\"Returns the Foundry version. Format: ++ Sample output: 0.2.0+faa94c384+202407110019 Note: Build timestamps may vary slightly across platforms due to separate CI jobs. For reliable version comparisons, use YYYYMMDD0000 format (e.g., >= 202407110000) to compare timestamps while ignoring minor time differences.\"},\"getLabel(address)\":{\"notice\":\"Gets the label for the specified address.\"},\"getMappingKeyAndParentOf(address,bytes32)\":{\"notice\":\"Gets the map key and parent of a mapping at a given slot, for a given address.\"},\"getMappingLength(address,bytes32)\":{\"notice\":\"Gets the number of elements in the mapping at the given slot, for a given address.\"},\"getMappingSlotAt(address,bytes32,uint256)\":{\"notice\":\"Gets the elements at index idx of the mapping at the given slot, for a given address. The index must be less than the length of the mapping (i.e. the number of keys in the mapping).\"},\"getNonce((address,uint256,uint256,uint256))\":{\"notice\":\"Get the nonce of a `Wallet`.\"},\"getNonce(address)\":{\"notice\":\"Gets the nonce of an account.\"},\"getRecordedLogs()\":{\"notice\":\"Gets all the recorded logs.\"},\"indexOf(string,string)\":{\"notice\":\"Returns the index of the first occurrence of a `key` in an `input` string. Returns `NOT_FOUND` (i.e. `type(uint256).max`) if the `key` is not found. Returns 0 in case of an empty `key`.\"},\"isContext(uint8)\":{\"notice\":\"Returns true if `forge` command was executed in given context.\"},\"isDir(string)\":{\"notice\":\"Returns true if the path exists on disk and is pointing at a directory, else returns false.\"},\"isFile(string)\":{\"notice\":\"Returns true if the path exists on disk and is pointing at a regular file, else returns false.\"},\"keyExists(string,string)\":{\"notice\":\"Checks if `key` exists in a JSON object `keyExists` is being deprecated in favor of `keyExistsJson`. It will be removed in future versions.\"},\"keyExistsJson(string,string)\":{\"notice\":\"Checks if `key` exists in a JSON object.\"},\"keyExistsToml(string,string)\":{\"notice\":\"Checks if `key` exists in a TOML table.\"},\"label(address,string)\":{\"notice\":\"Labels an address in call traces.\"},\"lastCallGas()\":{\"notice\":\"Gets the gas used in the last call.\"},\"load(address,bytes32)\":{\"notice\":\"Loads a storage slot from an address.\"},\"parseAddress(string)\":{\"notice\":\"Parses the given `string` into an `address`.\"},\"parseBool(string)\":{\"notice\":\"Parses the given `string` into a `bool`.\"},\"parseBytes(string)\":{\"notice\":\"Parses the given `string` into `bytes`.\"},\"parseBytes32(string)\":{\"notice\":\"Parses the given `string` into a `bytes32`.\"},\"parseInt(string)\":{\"notice\":\"Parses the given `string` into a `int256`.\"},\"parseJson(string)\":{\"notice\":\"ABI-encodes a JSON object.\"},\"parseJson(string,string)\":{\"notice\":\"ABI-encodes a JSON object at `key`.\"},\"parseJsonAddress(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `address`.\"},\"parseJsonAddressArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `address[]`.\"},\"parseJsonBool(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bool`.\"},\"parseJsonBoolArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bool[]`.\"},\"parseJsonBytes(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bytes`.\"},\"parseJsonBytes32(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bytes32`.\"},\"parseJsonBytes32Array(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bytes32[]`.\"},\"parseJsonBytesArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bytes[]`.\"},\"parseJsonInt(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `int256`.\"},\"parseJsonIntArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `int256[]`.\"},\"parseJsonKeys(string,string)\":{\"notice\":\"Returns an array of all the keys in a JSON object.\"},\"parseJsonString(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `string`.\"},\"parseJsonStringArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `string[]`.\"},\"parseJsonType(string,string)\":{\"notice\":\"Parses a string of JSON data and coerces it to type corresponding to `typeDescription`.\"},\"parseJsonType(string,string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to type corresponding to `typeDescription`.\"},\"parseJsonTypeArray(string,string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to type array corresponding to `typeDescription`.\"},\"parseJsonUint(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `uint256`.\"},\"parseJsonUintArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `uint256[]`.\"},\"parseToml(string)\":{\"notice\":\"ABI-encodes a TOML table.\"},\"parseToml(string,string)\":{\"notice\":\"ABI-encodes a TOML table at `key`.\"},\"parseTomlAddress(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `address`.\"},\"parseTomlAddressArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `address[]`.\"},\"parseTomlBool(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bool`.\"},\"parseTomlBoolArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bool[]`.\"},\"parseTomlBytes(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bytes`.\"},\"parseTomlBytes32(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bytes32`.\"},\"parseTomlBytes32Array(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bytes32[]`.\"},\"parseTomlBytesArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bytes[]`.\"},\"parseTomlInt(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `int256`.\"},\"parseTomlIntArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `int256[]`.\"},\"parseTomlKeys(string,string)\":{\"notice\":\"Returns an array of all the keys in a TOML table.\"},\"parseTomlString(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `string`.\"},\"parseTomlStringArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `string[]`.\"},\"parseTomlUint(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `uint256`.\"},\"parseTomlUintArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `uint256[]`.\"},\"parseUint(string)\":{\"notice\":\"Parses the given `string` into a `uint256`.\"},\"pauseGasMetering()\":{\"notice\":\"Pauses gas metering (i.e. gas usage is not counted). Noop if already paused.\"},\"projectRoot()\":{\"notice\":\"Get the path of the current project root.\"},\"prompt(string)\":{\"notice\":\"Prompts the user for a string value in the terminal.\"},\"promptAddress(string)\":{\"notice\":\"Prompts the user for an address in the terminal.\"},\"promptSecret(string)\":{\"notice\":\"Prompts the user for a hidden string value in the terminal.\"},\"promptSecretUint(string)\":{\"notice\":\"Prompts the user for hidden uint256 in the terminal (usually pk).\"},\"promptUint(string)\":{\"notice\":\"Prompts the user for uint256 in the terminal.\"},\"randomAddress()\":{\"notice\":\"Returns a random `address`.\"},\"randomUint()\":{\"notice\":\"Returns a random uint256 value.\"},\"randomUint(uint256,uint256)\":{\"notice\":\"Returns random uin256 value between the provided range (=min..=max).\"},\"readDir(string)\":{\"notice\":\"Reads the directory at the given path recursively, up to `maxDepth`. `maxDepth` defaults to 1, meaning only the direct children of the given directory will be returned. Follows symbolic links if `followLinks` is true.\"},\"readDir(string,uint64)\":{\"notice\":\"See `readDir(string)`.\"},\"readDir(string,uint64,bool)\":{\"notice\":\"See `readDir(string)`.\"},\"readFile(string)\":{\"notice\":\"Reads the entire content of file to string. `path` is relative to the project root.\"},\"readFileBinary(string)\":{\"notice\":\"Reads the entire content of file as binary. `path` is relative to the project root.\"},\"readLine(string)\":{\"notice\":\"Reads next line of file to string.\"},\"readLink(string)\":{\"notice\":\"Reads a symbolic link, returning the path that the link points to. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` is not a symbolic link. - `path` does not exist.\"},\"record()\":{\"notice\":\"Records all storage reads and writes.\"},\"recordLogs()\":{\"notice\":\"Record all the transaction logs.\"},\"rememberKey(uint256)\":{\"notice\":\"Adds a private key to the local forge wallet and returns the address.\"},\"removeDir(string,bool)\":{\"notice\":\"Removes a directory at the provided path. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` doesn't exist. - `path` isn't a directory. - User lacks permissions to modify `path`. - The directory is not empty and `recursive` is false. `path` is relative to the project root.\"},\"removeFile(string)\":{\"notice\":\"Removes a file from the filesystem. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` points to a directory. - The file doesn't exist. - The user lacks permissions to remove the file. `path` is relative to the project root.\"},\"replace(string,string,string)\":{\"notice\":\"Replaces occurrences of `from` in the given `string` with `to`.\"},\"resumeGasMetering()\":{\"notice\":\"Resumes gas metering (i.e. gas usage is counted again). Noop if already on.\"},\"rpc(string,string)\":{\"notice\":\"Performs an Ethereum JSON-RPC request to the current fork URL.\"},\"rpc(string,string,string)\":{\"notice\":\"Performs an Ethereum JSON-RPC request to the given endpoint.\"},\"rpcUrl(string)\":{\"notice\":\"Returns the RPC url for the given alias.\"},\"rpcUrlStructs()\":{\"notice\":\"Returns all rpc urls and their aliases as structs.\"},\"rpcUrls()\":{\"notice\":\"Returns all rpc urls and their aliases `[alias, url][]`.\"},\"serializeAddress(string,string,address)\":{\"notice\":\"See `serializeJson`.\"},\"serializeAddress(string,string,address[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeBool(string,string,bool)\":{\"notice\":\"See `serializeJson`.\"},\"serializeBool(string,string,bool[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeBytes(string,string,bytes)\":{\"notice\":\"See `serializeJson`.\"},\"serializeBytes(string,string,bytes[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeBytes32(string,string,bytes32)\":{\"notice\":\"See `serializeJson`.\"},\"serializeBytes32(string,string,bytes32[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeInt(string,string,int256)\":{\"notice\":\"See `serializeJson`.\"},\"serializeInt(string,string,int256[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeJson(string,string)\":{\"notice\":\"Serializes a key and value to a JSON object stored in-memory that can be later written to a file. Returns the stringified version of the specific JSON file up to that moment.\"},\"serializeJsonType(string,bytes)\":{\"notice\":\"See `serializeJson`.\"},\"serializeJsonType(string,string,string,bytes)\":{\"notice\":\"See `serializeJson`.\"},\"serializeString(string,string,string)\":{\"notice\":\"See `serializeJson`.\"},\"serializeString(string,string,string[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeUint(string,string,uint256)\":{\"notice\":\"See `serializeJson`.\"},\"serializeUint(string,string,uint256[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeUintToHex(string,string,uint256)\":{\"notice\":\"See `serializeJson`.\"},\"setEnv(string,string)\":{\"notice\":\"Sets environment variables.\"},\"sign((address,uint256,uint256,uint256),bytes32)\":{\"notice\":\"Signs data with a `Wallet`.\"},\"sign(address,bytes32)\":{\"notice\":\"Signs `digest` with signer provided to script using the secp256k1 curve. Raises error if none of the signers passed into the script have provided address.\"},\"sign(bytes32)\":{\"notice\":\"Signs `digest` with signer provided to script using the secp256k1 curve. If `--sender` is provided, the signer with provided address is used, otherwise, if exactly one signer is provided to the script, that signer is used. Raises error if signer passed through `--sender` does not match any unlocked signers or if `--sender` is not provided and not exactly one signer is passed to the script.\"},\"sign(uint256,bytes32)\":{\"notice\":\"Signs `digest` with `privateKey` using the secp256k1 curve.\"},\"signCompact((address,uint256,uint256,uint256),bytes32)\":{\"notice\":\"Signs data with a `Wallet`. Returns a compact signature (`r`, `vs`) as per EIP-2098, where `vs` encodes both the signature's `s` value, and the recovery id `v` in a single bytes32. This format reduces the signature size from 65 to 64 bytes.\"},\"signCompact(address,bytes32)\":{\"notice\":\"Signs `digest` with signer provided to script using the secp256k1 curve. Returns a compact signature (`r`, `vs`) as per EIP-2098, where `vs` encodes both the signature's `s` value, and the recovery id `v` in a single bytes32. This format reduces the signature size from 65 to 64 bytes. Raises error if none of the signers passed into the script have provided address.\"},\"signCompact(bytes32)\":{\"notice\":\"Signs `digest` with signer provided to script using the secp256k1 curve. Returns a compact signature (`r`, `vs`) as per EIP-2098, where `vs` encodes both the signature's `s` value, and the recovery id `v` in a single bytes32. This format reduces the signature size from 65 to 64 bytes. If `--sender` is provided, the signer with provided address is used, otherwise, if exactly one signer is provided to the script, that signer is used. Raises error if signer passed through `--sender` does not match any unlocked signers or if `--sender` is not provided and not exactly one signer is passed to the script.\"},\"signCompact(uint256,bytes32)\":{\"notice\":\"Signs `digest` with `privateKey` using the secp256k1 curve. Returns a compact signature (`r`, `vs`) as per EIP-2098, where `vs` encodes both the signature's `s` value, and the recovery id `v` in a single bytes32. This format reduces the signature size from 65 to 64 bytes.\"},\"signP256(uint256,bytes32)\":{\"notice\":\"Signs `digest` with `privateKey` using the secp256r1 curve.\"},\"sleep(uint256)\":{\"notice\":\"Suspends execution of the main thread for `duration` milliseconds.\"},\"split(string,string)\":{\"notice\":\"Splits the given `string` into an array of strings divided by the `delimiter`.\"},\"startBroadcast()\":{\"notice\":\"Has all subsequent calls (at this call depth only) create transactions that can later be signed and sent onchain. Broadcasting address is determined by checking the following in order: 1. If `--sender` argument was provided, that address is used. 2. If exactly one signer (e.g. private key, hw wallet, keystore) is set when `forge broadcast` is invoked, that signer is used. 3. Otherwise, default foundry sender (1804c8AB1F12E6bbf3894d4083f33e07309d1f38) is used.\"},\"startBroadcast(address)\":{\"notice\":\"Has all subsequent calls (at this call depth only) create transactions with the address provided that can later be signed and sent onchain.\"},\"startBroadcast(uint256)\":{\"notice\":\"Has all subsequent calls (at this call depth only) create transactions with the private key provided that can later be signed and sent onchain.\"},\"startMappingRecording()\":{\"notice\":\"Starts recording all map SSTOREs for later retrieval.\"},\"startStateDiffRecording()\":{\"notice\":\"Record all account accesses as part of CREATE, CALL or SELFDESTRUCT opcodes in order, along with the context of the calls\"},\"stopAndReturnStateDiff()\":{\"notice\":\"Returns an ordered array of all account accesses from a `vm.startStateDiffRecording` session.\"},\"stopBroadcast()\":{\"notice\":\"Stops collecting onchain transactions.\"},\"stopMappingRecording()\":{\"notice\":\"Stops recording all map SSTOREs for later retrieval and clears the recorded data.\"},\"toBase64(bytes)\":{\"notice\":\"Encodes a `bytes` value to a base64 string.\"},\"toBase64(string)\":{\"notice\":\"Encodes a `string` value to a base64 string.\"},\"toBase64URL(bytes)\":{\"notice\":\"Encodes a `bytes` value to a base64url string.\"},\"toBase64URL(string)\":{\"notice\":\"Encodes a `string` value to a base64url string.\"},\"toLowercase(string)\":{\"notice\":\"Converts the given `string` value to Lowercase.\"},\"toString(address)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(bool)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(bytes)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(bytes32)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(int256)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(uint256)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toUppercase(string)\":{\"notice\":\"Converts the given `string` value to Uppercase.\"},\"trim(string)\":{\"notice\":\"Trims leading and trailing whitespace from the given `string` value.\"},\"tryFfi(string[])\":{\"notice\":\"Performs a foreign function call via terminal and returns the exit code, stdout, and stderr.\"},\"unixTime()\":{\"notice\":\"Returns the time since unix epoch in milliseconds.\"},\"writeFile(string,string)\":{\"notice\":\"Writes data to file, creating a file if it does not exist, and entirely replacing its contents if it does. `path` is relative to the project root.\"},\"writeFileBinary(string,bytes)\":{\"notice\":\"Writes binary data to a file, creating a file if it does not exist, and entirely replacing its contents if it does. `path` is relative to the project root.\"},\"writeJson(string,string)\":{\"notice\":\"Write a serialized JSON object to a file. If the file exists, it will be overwritten.\"},\"writeJson(string,string,string)\":{\"notice\":\"Write a serialized JSON object to an **existing** JSON file, replacing a value with key = This is useful to replace a specific value of a JSON file, without having to parse the entire thing.\"},\"writeLine(string,string)\":{\"notice\":\"Writes line to file, creating a file if it does not exist. `path` is relative to the project root.\"},\"writeToml(string,string)\":{\"notice\":\"Takes serialized JSON, converts to TOML and write a serialized TOML to a file.\"},\"writeToml(string,string,string)\":{\"notice\":\"Takes serialized JSON, converts to TOML and write a serialized TOML table to an **existing** TOML file, replacing a value with key = This is useful to replace a specific value of a TOML file, without having to parse the entire thing.\"}},\"notice\":\"The `VmSafe` interface does not allow manipulation of the EVM state or other actions that may result in Script simulations differing from on-chain execution. It is recommended to only use these cheats in scripts.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Upgrades.sol\":\"VmSafe\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"src/Upgrades.sol\":{\"keccak256\":\"0x420d4a351f46367d1fd8ea9409af6772fc442019d8f51bdd61b2114886ab3f98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dd2a0235e70d4f89d1d67af78ec13dd396224ec6cd87e4f906796bf50e385204\",\"dweb:/ipfs/QmULbNuaseWNiMWpBdR7ayYw5tknsYji6YtPG9KYd4k9Dp\"]}},\"version\":1}"},"console":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220bc4a0ff94ba95805618bc329c788162261898b6f283011c969e0235df4e430d764736f6c634300081c0033","opcodes":"PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xBC BLOBBASEFEE 0xF 0xF9 0x4B 0xA9 PC SDIV PUSH2 0x8BC3 0x29 0xC7 DUP9 AND 0x22 PUSH2 0x898B PUSH16 0x283011C969E0235DF4E430D764736F6C PUSH4 0x4300081C STOP CALLER ","sourceMap":"97901:67248:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220bc4a0ff94ba95805618bc329c788162261898b6f283011c969e0235df4e430d764736f6c634300081c0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xBC BLOBBASEFEE 0xF 0xF9 0x4B 0xA9 PC SDIV PUSH2 0x8BC3 0x29 0xC7 DUP9 AND 0x22 PUSH2 0x898B PUSH16 0x283011C969E0235DF4E430D764736F6C PUSH4 0x4300081C STOP CALLER ","sourceMap":"97901:67248:0:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Upgrades.sol\":\"console\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"src/Upgrades.sol\":{\"keccak256\":\"0x420d4a351f46367d1fd8ea9409af6772fc442019d8f51bdd61b2114886ab3f98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dd2a0235e70d4f89d1d67af78ec13dd396224ec6cd87e4f906796bf50e385204\",\"dweb:/ipfs/QmULbNuaseWNiMWpBdR7ayYw5tknsYji6YtPG9KYd4k9Dp\"]}},\"version\":1}"}}}}} \ No newline at end of file diff --git a/artifacts/src/Upgrades.sol/Address.dbg.json b/artifacts/src/Upgrades.sol/Address.dbg.json new file mode 100644 index 0000000..fc8f341 --- /dev/null +++ b/artifacts/src/Upgrades.sol/Address.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../build-info/7d80f87a51d3a5d7ae3341681c898b45.json" +} diff --git a/artifacts/src/Upgrades.sol/Address.json b/artifacts/src/Upgrades.sol/Address.json new file mode 100644 index 0000000..3af6adf --- /dev/null +++ b/artifacts/src/Upgrades.sol/Address.json @@ -0,0 +1,38 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Address", + "sourceName": "src/Upgrades.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + } + ], + "name": "AddressEmptyCode", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "AddressInsufficientBalance", + "type": "error" + }, + { + "inputs": [], + "name": "FailedInnerCall", + "type": "error" + } + ], + "bytecode": "0x60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220cdc4e07c754ebcbe21c3ba73f0aaa6ef168d35381fadc32652039de4dc067b6064736f6c634300081c0033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220cdc4e07c754ebcbe21c3ba73f0aaa6ef168d35381fadc32652039de4dc067b6064736f6c634300081c0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/src/Upgrades.sol/BeaconProxy.dbg.json b/artifacts/src/Upgrades.sol/BeaconProxy.dbg.json new file mode 100644 index 0000000..fc8f341 --- /dev/null +++ b/artifacts/src/Upgrades.sol/BeaconProxy.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../build-info/7d80f87a51d3a5d7ae3341681c898b45.json" +} diff --git a/artifacts/src/Upgrades.sol/BeaconProxy.json b/artifacts/src/Upgrades.sol/BeaconProxy.json new file mode 100644 index 0000000..36661cc --- /dev/null +++ b/artifacts/src/Upgrades.sol/BeaconProxy.json @@ -0,0 +1,87 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "BeaconProxy", + "sourceName": "src/Upgrades.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "beacon", + "type": "address" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "stateMutability": "payable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + } + ], + "name": "AddressEmptyCode", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "beacon", + "type": "address" + } + ], + "name": "ERC1967InvalidBeacon", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "implementation", + "type": "address" + } + ], + "name": "ERC1967InvalidImplementation", + "type": "error" + }, + { + "inputs": [], + "name": "ERC1967NonPayable", + "type": "error" + }, + { + "inputs": [], + "name": "FailedInnerCall", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "beacon", + "type": "address" + } + ], + "name": "BeaconUpgraded", + "type": "event" + }, + { + "stateMutability": "payable", + "type": "fallback" + } + ], + "bytecode": "0x60a060405260405161096038038061096083398181016040528101906100259190610684565b610035828261007060201b60201c565b8173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250505050610795565b61007f8261016360201b60201c565b8173ffffffffffffffffffffffffffffffffffffffff167f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e60405160405180910390a26000815111156101505761014a8273ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561011a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061013e91906106e0565b8261030660201b60201c565b5061015f565b61015e61039060201b60201c565b5b5050565b60008173ffffffffffffffffffffffffffffffffffffffff163b036101bf57806040517f64ced0ec0000000000000000000000000000000000000000000000000000000081526004016101b6919061071c565b60405180910390fd5b806101f27fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5060001b6103cd60201b60201c565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008173ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610280573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a491906106e0565b905060008173ffffffffffffffffffffffffffffffffffffffff163b0361030257806040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526004016102f9919061071c565b60405180910390fd5b5050565b60606000808473ffffffffffffffffffffffffffffffffffffffff1684604051610330919061077e565b600060405180830381855af49150503d806000811461036b576040519150601f19603f3d011682016040523d82523d6000602084013e610370565b606091505b50915091506103868583836103d760201b60201c565b9250505092915050565b60003411156103cb576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6000819050919050565b6060826103f2576103ed8261046c60201b60201c565b610464565b6000825114801561041a575060008473ffffffffffffffffffffffffffffffffffffffff163b145b1561045c57836040517f9996b315000000000000000000000000000000000000000000000000000000008152600401610453919061071c565b60405180910390fd5b819050610465565b5b9392505050565b60008151111561047f5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006104f0826104c5565b9050919050565b610500816104e5565b811461050b57600080fd5b50565b60008151905061051d816104f7565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6105768261052d565b810181811067ffffffffffffffff821117156105955761059461053e565b5b80604052505050565b60006105a86104b1565b90506105b4828261056d565b919050565b600067ffffffffffffffff8211156105d4576105d361053e565b5b6105dd8261052d565b9050602081019050919050565b60005b838110156106085780820151818401526020810190506105ed565b60008484015250505050565b6000610627610622846105b9565b61059e565b90508281526020810184848401111561064357610642610528565b5b61064e8482856105ea565b509392505050565b600082601f83011261066b5761066a610523565b5b815161067b848260208601610614565b91505092915050565b6000806040838503121561069b5761069a6104bb565b5b60006106a98582860161050e565b925050602083015167ffffffffffffffff8111156106ca576106c96104c0565b5b6106d685828601610656565b9150509250929050565b6000602082840312156106f6576106f56104bb565b5b60006107048482850161050e565b91505092915050565b610716816104e5565b82525050565b6000602082019050610731600083018461070d565b92915050565b600081519050919050565b600081905092915050565b600061075882610737565b6107628185610742565b93506107728185602086016105ea565b80840191505092915050565b600061078a828461074d565b915081905092915050565b6080516101b16107af600039600060c701526101b16000f3fe608060405261000c61000e565b005b61001e610019610020565b61009d565b565b600061002a6100c3565b73ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610074573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610098919061014e565b905090565b3660008037600080366000845af43d6000803e80600081146100be573d6000f35b3d6000fd5b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061011b826100f0565b9050919050565b61012b81610110565b811461013657600080fd5b50565b60008151905061014881610122565b92915050565b600060208284031215610164576101636100eb565b5b600061017284828501610139565b9150509291505056fea2646970667358221220c3ae381cdcb092dca499b2dd32af80658a48cc272ab16fe0ef3baa84f4b3436264736f6c634300081c0033", + "deployedBytecode": "0x608060405261000c61000e565b005b61001e610019610020565b61009d565b565b600061002a6100c3565b73ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610074573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610098919061014e565b905090565b3660008037600080366000845af43d6000803e80600081146100be573d6000f35b3d6000fd5b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061011b826100f0565b9050919050565b61012b81610110565b811461013657600080fd5b50565b60008151905061014881610122565b92915050565b600060208284031215610164576101636100eb565b5b600061017284828501610139565b9150509291505056fea2646970667358221220c3ae381cdcb092dca499b2dd32af80658a48cc272ab16fe0ef3baa84f4b3436264736f6c634300081c0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/src/Upgrades.sol/Context.dbg.json b/artifacts/src/Upgrades.sol/Context.dbg.json new file mode 100644 index 0000000..fc8f341 --- /dev/null +++ b/artifacts/src/Upgrades.sol/Context.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../build-info/7d80f87a51d3a5d7ae3341681c898b45.json" +} diff --git a/artifacts/src/Upgrades.sol/Context.json b/artifacts/src/Upgrades.sol/Context.json new file mode 100644 index 0000000..7a8ff08 --- /dev/null +++ b/artifacts/src/Upgrades.sol/Context.json @@ -0,0 +1,10 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Context", + "sourceName": "src/Upgrades.sol", + "abi": [], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/src/Upgrades.sol/Core.dbg.json b/artifacts/src/Upgrades.sol/Core.dbg.json new file mode 100644 index 0000000..fc8f341 --- /dev/null +++ b/artifacts/src/Upgrades.sol/Core.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../build-info/7d80f87a51d3a5d7ae3341681c898b45.json" +} diff --git a/artifacts/src/Upgrades.sol/Core.json b/artifacts/src/Upgrades.sol/Core.json new file mode 100644 index 0000000..3ac0d9b --- /dev/null +++ b/artifacts/src/Upgrades.sol/Core.json @@ -0,0 +1,10 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Core", + "sourceName": "src/Upgrades.sol", + "abi": [], + "bytecode": "0x60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e2f4192d65245b2f93455b53b035a67cb13445f3c45b8de343e3e042ec183d2964736f6c634300081c0033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e2f4192d65245b2f93455b53b035a67cb13445f3c45b8de343e3e042ec183d2964736f6c634300081c0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/src/Upgrades.sol/Defender.dbg.json b/artifacts/src/Upgrades.sol/Defender.dbg.json new file mode 100644 index 0000000..fc8f341 --- /dev/null +++ b/artifacts/src/Upgrades.sol/Defender.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../build-info/7d80f87a51d3a5d7ae3341681c898b45.json" +} diff --git a/artifacts/src/Upgrades.sol/Defender.json b/artifacts/src/Upgrades.sol/Defender.json new file mode 100644 index 0000000..6ce21ea --- /dev/null +++ b/artifacts/src/Upgrades.sol/Defender.json @@ -0,0 +1,10 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Defender", + "sourceName": "src/Upgrades.sol", + "abi": [], + "bytecode": "0x60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122071bf07a7573c7876323eecca2a1b826bc2256b29087a6ac5cf76ab4722174afa64736f6c634300081c0033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122071bf07a7573c7876323eecca2a1b826bc2256b29087a6ac5cf76ab4722174afa64736f6c634300081c0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/src/Upgrades.sol/DefenderDeploy.dbg.json b/artifacts/src/Upgrades.sol/DefenderDeploy.dbg.json new file mode 100644 index 0000000..fc8f341 --- /dev/null +++ b/artifacts/src/Upgrades.sol/DefenderDeploy.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../build-info/7d80f87a51d3a5d7ae3341681c898b45.json" +} diff --git a/artifacts/src/Upgrades.sol/DefenderDeploy.json b/artifacts/src/Upgrades.sol/DefenderDeploy.json new file mode 100644 index 0000000..b58bad5 --- /dev/null +++ b/artifacts/src/Upgrades.sol/DefenderDeploy.json @@ -0,0 +1,10 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "DefenderDeploy", + "sourceName": "src/Upgrades.sol", + "abi": [], + "bytecode": "0x60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122000823474dc2ec5670c8beea7650217b0591cf075a78888a7f9cd275c701b2c3164736f6c634300081c0033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122000823474dc2ec5670c8beea7650217b0591cf075a78888a7f9cd275c701b2c3164736f6c634300081c0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/src/Upgrades.sol/ERC1967Proxy.dbg.json b/artifacts/src/Upgrades.sol/ERC1967Proxy.dbg.json new file mode 100644 index 0000000..fc8f341 --- /dev/null +++ b/artifacts/src/Upgrades.sol/ERC1967Proxy.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../build-info/7d80f87a51d3a5d7ae3341681c898b45.json" +} diff --git a/artifacts/src/Upgrades.sol/ERC1967Proxy.json b/artifacts/src/Upgrades.sol/ERC1967Proxy.json new file mode 100644 index 0000000..d20b964 --- /dev/null +++ b/artifacts/src/Upgrades.sol/ERC1967Proxy.json @@ -0,0 +1,76 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "ERC1967Proxy", + "sourceName": "src/Upgrades.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "implementation", + "type": "address" + }, + { + "internalType": "bytes", + "name": "_data", + "type": "bytes" + } + ], + "stateMutability": "payable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + } + ], + "name": "AddressEmptyCode", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "implementation", + "type": "address" + } + ], + "name": "ERC1967InvalidImplementation", + "type": "error" + }, + { + "inputs": [], + "name": "ERC1967NonPayable", + "type": "error" + }, + { + "inputs": [], + "name": "FailedInnerCall", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "implementation", + "type": "address" + } + ], + "name": "Upgraded", + "type": "event" + }, + { + "stateMutability": "payable", + "type": "fallback" + } + ], + "bytecode": "0x60806040526040516106e53803806106e583398181016040528101906100259190610512565b610035828261003c60201b60201c565b50506105f6565b61004b826100c160201b60201c565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a26000815111156100ae576100a8828261019460201b60201c565b506100bd565b6100bc61021e60201b60201c565b5b5050565b60008173ffffffffffffffffffffffffffffffffffffffff163b0361011d57806040517f4c9c8ce3000000000000000000000000000000000000000000000000000000008152600401610114919061057d565b60405180910390fd5b806101507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61025b60201b60201c565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606000808473ffffffffffffffffffffffffffffffffffffffff16846040516101be91906105df565b600060405180830381855af49150503d80600081146101f9576040519150601f19603f3d011682016040523d82523d6000602084013e6101fe565b606091505b509150915061021485838361026560201b60201c565b9250505092915050565b6000341115610259576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6000819050919050565b6060826102805761027b826102fa60201b60201c565b6102f2565b600082511480156102a8575060008473ffffffffffffffffffffffffffffffffffffffff163b145b156102ea57836040517f9996b3150000000000000000000000000000000000000000000000000000000081526004016102e1919061057d565b60405180910390fd5b8190506102f3565b5b9392505050565b60008151111561030d5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061037e82610353565b9050919050565b61038e81610373565b811461039957600080fd5b50565b6000815190506103ab81610385565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610404826103bb565b810181811067ffffffffffffffff82111715610423576104226103cc565b5b80604052505050565b600061043661033f565b905061044282826103fb565b919050565b600067ffffffffffffffff821115610462576104616103cc565b5b61046b826103bb565b9050602081019050919050565b60005b8381101561049657808201518184015260208101905061047b565b60008484015250505050565b60006104b56104b084610447565b61042c565b9050828152602081018484840111156104d1576104d06103b6565b5b6104dc848285610478565b509392505050565b600082601f8301126104f9576104f86103b1565b5b81516105098482602086016104a2565b91505092915050565b6000806040838503121561052957610528610349565b5b60006105378582860161039c565b925050602083015167ffffffffffffffff8111156105585761055761034e565b5b610564858286016104e4565b9150509250929050565b61057781610373565b82525050565b6000602082019050610592600083018461056e565b92915050565b600081519050919050565b600081905092915050565b60006105b982610598565b6105c381856105a3565b93506105d3818560208601610478565b80840191505092915050565b60006105eb82846105ae565b915081905092915050565b60e1806106046000396000f3fe6080604052600a600c565b005b60186014601a565b6027565b565b60006022604c565b905090565b3660008037600080366000845af43d6000803e80600081146047573d6000f35b3d6000fd5b600060787f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b60a1565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081905091905056fea2646970667358221220c5b968bc804a8dadb0c833392290a2aa8480ebf2c2cdddda46896225dfa4488164736f6c634300081c0033", + "deployedBytecode": "0x6080604052600a600c565b005b60186014601a565b6027565b565b60006022604c565b905090565b3660008037600080366000845af43d6000803e80600081146047573d6000f35b3d6000fd5b600060787f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b60a1565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081905091905056fea2646970667358221220c5b968bc804a8dadb0c833392290a2aa8480ebf2c2cdddda46896225dfa4488164736f6c634300081c0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/src/Upgrades.sol/ERC1967Utils.dbg.json b/artifacts/src/Upgrades.sol/ERC1967Utils.dbg.json new file mode 100644 index 0000000..fc8f341 --- /dev/null +++ b/artifacts/src/Upgrades.sol/ERC1967Utils.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../build-info/7d80f87a51d3a5d7ae3341681c898b45.json" +} diff --git a/artifacts/src/Upgrades.sol/ERC1967Utils.json b/artifacts/src/Upgrades.sol/ERC1967Utils.json new file mode 100644 index 0000000..5013791 --- /dev/null +++ b/artifacts/src/Upgrades.sol/ERC1967Utils.json @@ -0,0 +1,94 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "ERC1967Utils", + "sourceName": "src/Upgrades.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "admin", + "type": "address" + } + ], + "name": "ERC1967InvalidAdmin", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "beacon", + "type": "address" + } + ], + "name": "ERC1967InvalidBeacon", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "implementation", + "type": "address" + } + ], + "name": "ERC1967InvalidImplementation", + "type": "error" + }, + { + "inputs": [], + "name": "ERC1967NonPayable", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "previousAdmin", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "newAdmin", + "type": "address" + } + ], + "name": "AdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "beacon", + "type": "address" + } + ], + "name": "BeaconUpgraded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "implementation", + "type": "address" + } + ], + "name": "Upgraded", + "type": "event" + } + ], + "bytecode": "0x60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122086592a46b7834d97af067e09577f9ab500b43afab9e0d8cfbbad94ec35e4757564736f6c634300081c0033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122086592a46b7834d97af067e09577f9ab500b43afab9e0d8cfbbad94ec35e4757564736f6c634300081c0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/src/Upgrades.sol/IBeacon.dbg.json b/artifacts/src/Upgrades.sol/IBeacon.dbg.json new file mode 100644 index 0000000..fc8f341 --- /dev/null +++ b/artifacts/src/Upgrades.sol/IBeacon.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../build-info/7d80f87a51d3a5d7ae3341681c898b45.json" +} diff --git a/artifacts/src/Upgrades.sol/IBeacon.json b/artifacts/src/Upgrades.sol/IBeacon.json new file mode 100644 index 0000000..99d0ead --- /dev/null +++ b/artifacts/src/Upgrades.sol/IBeacon.json @@ -0,0 +1,24 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IBeacon", + "sourceName": "src/Upgrades.sol", + "abi": [ + { + "inputs": [], + "name": "implementation", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/src/Upgrades.sol/IERC1967.dbg.json b/artifacts/src/Upgrades.sol/IERC1967.dbg.json new file mode 100644 index 0000000..fc8f341 --- /dev/null +++ b/artifacts/src/Upgrades.sol/IERC1967.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../build-info/7d80f87a51d3a5d7ae3341681c898b45.json" +} diff --git a/artifacts/src/Upgrades.sol/IERC1967.json b/artifacts/src/Upgrades.sol/IERC1967.json new file mode 100644 index 0000000..7e302e0 --- /dev/null +++ b/artifacts/src/Upgrades.sol/IERC1967.json @@ -0,0 +1,56 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IERC1967", + "sourceName": "src/Upgrades.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "previousAdmin", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "newAdmin", + "type": "address" + } + ], + "name": "AdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "beacon", + "type": "address" + } + ], + "name": "BeaconUpgraded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "implementation", + "type": "address" + } + ], + "name": "Upgraded", + "type": "event" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/src/Upgrades.sol/IProxyAdmin.dbg.json b/artifacts/src/Upgrades.sol/IProxyAdmin.dbg.json new file mode 100644 index 0000000..fc8f341 --- /dev/null +++ b/artifacts/src/Upgrades.sol/IProxyAdmin.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../build-info/7d80f87a51d3a5d7ae3341681c898b45.json" +} diff --git a/artifacts/src/Upgrades.sol/IProxyAdmin.json b/artifacts/src/Upgrades.sol/IProxyAdmin.json new file mode 100644 index 0000000..301612e --- /dev/null +++ b/artifacts/src/Upgrades.sol/IProxyAdmin.json @@ -0,0 +1,52 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IProxyAdmin", + "sourceName": "src/Upgrades.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "upgrade", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "upgradeAndCall", + "outputs": [], + "stateMutability": "payable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/src/Upgrades.sol/ITransparentUpgradeableProxy.dbg.json b/artifacts/src/Upgrades.sol/ITransparentUpgradeableProxy.dbg.json new file mode 100644 index 0000000..fc8f341 --- /dev/null +++ b/artifacts/src/Upgrades.sol/ITransparentUpgradeableProxy.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../build-info/7d80f87a51d3a5d7ae3341681c898b45.json" +} diff --git a/artifacts/src/Upgrades.sol/ITransparentUpgradeableProxy.json b/artifacts/src/Upgrades.sol/ITransparentUpgradeableProxy.json new file mode 100644 index 0000000..f914883 --- /dev/null +++ b/artifacts/src/Upgrades.sol/ITransparentUpgradeableProxy.json @@ -0,0 +1,74 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "ITransparentUpgradeableProxy", + "sourceName": "src/Upgrades.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "previousAdmin", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "newAdmin", + "type": "address" + } + ], + "name": "AdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "beacon", + "type": "address" + } + ], + "name": "BeaconUpgraded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "implementation", + "type": "address" + } + ], + "name": "Upgraded", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "upgradeToAndCall", + "outputs": [], + "stateMutability": "payable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/src/Upgrades.sol/IUpgradeableBeacon.dbg.json b/artifacts/src/Upgrades.sol/IUpgradeableBeacon.dbg.json new file mode 100644 index 0000000..fc8f341 --- /dev/null +++ b/artifacts/src/Upgrades.sol/IUpgradeableBeacon.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../build-info/7d80f87a51d3a5d7ae3341681c898b45.json" +} diff --git a/artifacts/src/Upgrades.sol/IUpgradeableBeacon.json b/artifacts/src/Upgrades.sol/IUpgradeableBeacon.json new file mode 100644 index 0000000..bd35f90 --- /dev/null +++ b/artifacts/src/Upgrades.sol/IUpgradeableBeacon.json @@ -0,0 +1,24 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IUpgradeableBeacon", + "sourceName": "src/Upgrades.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "upgradeTo", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/src/Upgrades.sol/IUpgradeableProxy.dbg.json b/artifacts/src/Upgrades.sol/IUpgradeableProxy.dbg.json new file mode 100644 index 0000000..fc8f341 --- /dev/null +++ b/artifacts/src/Upgrades.sol/IUpgradeableProxy.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../build-info/7d80f87a51d3a5d7ae3341681c898b45.json" +} diff --git a/artifacts/src/Upgrades.sol/IUpgradeableProxy.json b/artifacts/src/Upgrades.sol/IUpgradeableProxy.json new file mode 100644 index 0000000..b088559 --- /dev/null +++ b/artifacts/src/Upgrades.sol/IUpgradeableProxy.json @@ -0,0 +1,42 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IUpgradeableProxy", + "sourceName": "src/Upgrades.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "upgradeTo", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "upgradeToAndCall", + "outputs": [], + "stateMutability": "payable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/src/Upgrades.sol/Math.dbg.json b/artifacts/src/Upgrades.sol/Math.dbg.json new file mode 100644 index 0000000..fc8f341 --- /dev/null +++ b/artifacts/src/Upgrades.sol/Math.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../build-info/7d80f87a51d3a5d7ae3341681c898b45.json" +} diff --git a/artifacts/src/Upgrades.sol/Math.json b/artifacts/src/Upgrades.sol/Math.json new file mode 100644 index 0000000..3fdd0f9 --- /dev/null +++ b/artifacts/src/Upgrades.sol/Math.json @@ -0,0 +1,16 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Math", + "sourceName": "src/Upgrades.sol", + "abi": [ + { + "inputs": [], + "name": "MathOverflowedMulDiv", + "type": "error" + } + ], + "bytecode": "0x60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f4a0a4b34bbba9cbb2e5f756b6020a24ba1925cf9cd541062eff696a1f4a461964736f6c634300081c0033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f4a0a4b34bbba9cbb2e5f756b6020a24ba1925cf9cd541062eff696a1f4a461964736f6c634300081c0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/src/Upgrades.sol/Ownable.dbg.json b/artifacts/src/Upgrades.sol/Ownable.dbg.json new file mode 100644 index 0000000..fc8f341 --- /dev/null +++ b/artifacts/src/Upgrades.sol/Ownable.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../build-info/7d80f87a51d3a5d7ae3341681c898b45.json" +} diff --git a/artifacts/src/Upgrades.sol/Ownable.json b/artifacts/src/Upgrades.sol/Ownable.json new file mode 100644 index 0000000..039a29a --- /dev/null +++ b/artifacts/src/Upgrades.sol/Ownable.json @@ -0,0 +1,85 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Ownable", + "sourceName": "src/Upgrades.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnableInvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "OwnableUnauthorizedAccount", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/src/Upgrades.sol/Proxy.dbg.json b/artifacts/src/Upgrades.sol/Proxy.dbg.json new file mode 100644 index 0000000..fc8f341 --- /dev/null +++ b/artifacts/src/Upgrades.sol/Proxy.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../build-info/7d80f87a51d3a5d7ae3341681c898b45.json" +} diff --git a/artifacts/src/Upgrades.sol/Proxy.json b/artifacts/src/Upgrades.sol/Proxy.json new file mode 100644 index 0000000..89c4fa8 --- /dev/null +++ b/artifacts/src/Upgrades.sol/Proxy.json @@ -0,0 +1,15 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Proxy", + "sourceName": "src/Upgrades.sol", + "abi": [ + { + "stateMutability": "payable", + "type": "fallback" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/src/Upgrades.sol/ProxyAdmin.dbg.json b/artifacts/src/Upgrades.sol/ProxyAdmin.dbg.json new file mode 100644 index 0000000..fc8f341 --- /dev/null +++ b/artifacts/src/Upgrades.sol/ProxyAdmin.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../build-info/7d80f87a51d3a5d7ae3341681c898b45.json" +} diff --git a/artifacts/src/Upgrades.sol/ProxyAdmin.json b/artifacts/src/Upgrades.sol/ProxyAdmin.json new file mode 100644 index 0000000..19cb323 --- /dev/null +++ b/artifacts/src/Upgrades.sol/ProxyAdmin.json @@ -0,0 +1,132 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "ProxyAdmin", + "sourceName": "src/Upgrades.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "initialOwner", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnableInvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "OwnableUnauthorizedAccount", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [], + "name": "UPGRADE_INTERFACE_VERSION", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract ITransparentUpgradeableProxy", + "name": "proxy", + "type": "address" + }, + { + "internalType": "address", + "name": "implementation", + "type": "address" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "upgradeAndCall", + "outputs": [], + "stateMutability": "payable", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b50604051610a2b380380610a2b833981810160405281019061003291906101e2565b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100a55760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161009c919061021e565b60405180910390fd5b6100b4816100bb60201b60201c565b5050610239565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006101af82610184565b9050919050565b6101bf816101a4565b81146101ca57600080fd5b50565b6000815190506101dc816101b6565b92915050565b6000602082840312156101f8576101f761017f565b5b6000610206848285016101cd565b91505092915050565b610218816101a4565b82525050565b6000602082019050610233600083018461020f565b92915050565b6107e3806102486000396000f3fe60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610091578063ad3cb1cc146100ad578063f2fde38b146100d8575b600080fd5b34801561005b57600080fd5b50610064610101565b005b34801561007257600080fd5b5061007b610115565b604051610088919061040c565b60405180910390f35b6100ab60048036038101906100a691906105eb565b61013e565b005b3480156100b957600080fd5b506100c26101b9565b6040516100cf91906106d9565b60405180910390f35b3480156100e457600080fd5b506100ff60048036038101906100fa91906106fb565b6101f2565b005b610109610278565b61011360006102ff565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610146610278565b8273ffffffffffffffffffffffffffffffffffffffff16634f1ef2863484846040518463ffffffff1660e01b815260040161018292919061077d565b6000604051808303818588803b15801561019b57600080fd5b505af11580156101af573d6000803e3d6000fd5b5050505050505050565b6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6101fa610278565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361026c5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610263919061040c565b60405180910390fd5b610275816102ff565b50565b6102806103c3565b73ffffffffffffffffffffffffffffffffffffffff1661029e610115565b73ffffffffffffffffffffffffffffffffffffffff16146102fd576102c16103c3565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016102f4919061040c565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103f6826103cb565b9050919050565b610406816103eb565b82525050565b600060208201905061042160008301846103fd565b92915050565b6000604051905090565b600080fd5b600080fd5b6000610446826103eb565b9050919050565b6104568161043b565b811461046157600080fd5b50565b6000813590506104738161044d565b92915050565b610482816103eb565b811461048d57600080fd5b50565b60008135905061049f81610479565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6104f8826104af565b810181811067ffffffffffffffff82111715610517576105166104c0565b5b80604052505050565b600061052a610427565b905061053682826104ef565b919050565b600067ffffffffffffffff821115610556576105556104c0565b5b61055f826104af565b9050602081019050919050565b82818337600083830152505050565b600061058e6105898461053b565b610520565b9050828152602081018484840111156105aa576105a96104aa565b5b6105b584828561056c565b509392505050565b600082601f8301126105d2576105d16104a5565b5b81356105e284826020860161057b565b91505092915050565b60008060006060848603121561060457610603610431565b5b600061061286828701610464565b935050602061062386828701610490565b925050604084013567ffffffffffffffff81111561064457610643610436565b5b610650868287016105bd565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b60005b83811015610694578082015181840152602081019050610679565b60008484015250505050565b60006106ab8261065a565b6106b58185610665565b93506106c5818560208601610676565b6106ce816104af565b840191505092915050565b600060208201905081810360008301526106f381846106a0565b905092915050565b60006020828403121561071157610710610431565b5b600061071f84828501610490565b91505092915050565b600081519050919050565b600082825260208201905092915050565b600061074f82610728565b6107598185610733565b9350610769818560208601610676565b610772816104af565b840191505092915050565b600060408201905061079260008301856103fd565b81810360208301526107a48184610744565b9050939250505056fea26469706673582212207618fbcb2a391d05e882e2fcc53acd9c8d0257c7ed9e673b7bd1c2b353ab85fa64736f6c634300081c0033", + "deployedBytecode": "0x60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610091578063ad3cb1cc146100ad578063f2fde38b146100d8575b600080fd5b34801561005b57600080fd5b50610064610101565b005b34801561007257600080fd5b5061007b610115565b604051610088919061040c565b60405180910390f35b6100ab60048036038101906100a691906105eb565b61013e565b005b3480156100b957600080fd5b506100c26101b9565b6040516100cf91906106d9565b60405180910390f35b3480156100e457600080fd5b506100ff60048036038101906100fa91906106fb565b6101f2565b005b610109610278565b61011360006102ff565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610146610278565b8273ffffffffffffffffffffffffffffffffffffffff16634f1ef2863484846040518463ffffffff1660e01b815260040161018292919061077d565b6000604051808303818588803b15801561019b57600080fd5b505af11580156101af573d6000803e3d6000fd5b5050505050505050565b6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6101fa610278565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361026c5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610263919061040c565b60405180910390fd5b610275816102ff565b50565b6102806103c3565b73ffffffffffffffffffffffffffffffffffffffff1661029e610115565b73ffffffffffffffffffffffffffffffffffffffff16146102fd576102c16103c3565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016102f4919061040c565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103f6826103cb565b9050919050565b610406816103eb565b82525050565b600060208201905061042160008301846103fd565b92915050565b6000604051905090565b600080fd5b600080fd5b6000610446826103eb565b9050919050565b6104568161043b565b811461046157600080fd5b50565b6000813590506104738161044d565b92915050565b610482816103eb565b811461048d57600080fd5b50565b60008135905061049f81610479565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6104f8826104af565b810181811067ffffffffffffffff82111715610517576105166104c0565b5b80604052505050565b600061052a610427565b905061053682826104ef565b919050565b600067ffffffffffffffff821115610556576105556104c0565b5b61055f826104af565b9050602081019050919050565b82818337600083830152505050565b600061058e6105898461053b565b610520565b9050828152602081018484840111156105aa576105a96104aa565b5b6105b584828561056c565b509392505050565b600082601f8301126105d2576105d16104a5565b5b81356105e284826020860161057b565b91505092915050565b60008060006060848603121561060457610603610431565b5b600061061286828701610464565b935050602061062386828701610490565b925050604084013567ffffffffffffffff81111561064457610643610436565b5b610650868287016105bd565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b60005b83811015610694578082015181840152602081019050610679565b60008484015250505050565b60006106ab8261065a565b6106b58185610665565b93506106c5818560208601610676565b6106ce816104af565b840191505092915050565b600060208201905081810360008301526106f381846106a0565b905092915050565b60006020828403121561071157610710610431565b5b600061071f84828501610490565b91505092915050565b600081519050919050565b600082825260208201905092915050565b600061074f82610728565b6107598185610733565b9350610769818560208601610676565b610772816104af565b840191505092915050565b600060408201905061079260008301856103fd565b81810360208301526107a48184610744565b9050939250505056fea26469706673582212207618fbcb2a391d05e882e2fcc53acd9c8d0257c7ed9e673b7bd1c2b353ab85fa64736f6c634300081c0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/src/Upgrades.sol/SignedMath.dbg.json b/artifacts/src/Upgrades.sol/SignedMath.dbg.json new file mode 100644 index 0000000..fc8f341 --- /dev/null +++ b/artifacts/src/Upgrades.sol/SignedMath.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../build-info/7d80f87a51d3a5d7ae3341681c898b45.json" +} diff --git a/artifacts/src/Upgrades.sol/SignedMath.json b/artifacts/src/Upgrades.sol/SignedMath.json new file mode 100644 index 0000000..c94f93c --- /dev/null +++ b/artifacts/src/Upgrades.sol/SignedMath.json @@ -0,0 +1,10 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "SignedMath", + "sourceName": "src/Upgrades.sol", + "abi": [], + "bytecode": "0x60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220df386b03058967d5776e308127b4fe1986505b0f3d5b847ee5b4bdaca7e077ca64736f6c634300081c0033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220df386b03058967d5776e308127b4fe1986505b0f3d5b847ee5b4bdaca7e077ca64736f6c634300081c0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/src/Upgrades.sol/StorageSlot.dbg.json b/artifacts/src/Upgrades.sol/StorageSlot.dbg.json new file mode 100644 index 0000000..fc8f341 --- /dev/null +++ b/artifacts/src/Upgrades.sol/StorageSlot.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../build-info/7d80f87a51d3a5d7ae3341681c898b45.json" +} diff --git a/artifacts/src/Upgrades.sol/StorageSlot.json b/artifacts/src/Upgrades.sol/StorageSlot.json new file mode 100644 index 0000000..73ae096 --- /dev/null +++ b/artifacts/src/Upgrades.sol/StorageSlot.json @@ -0,0 +1,10 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "StorageSlot", + "sourceName": "src/Upgrades.sol", + "abi": [], + "bytecode": "0x60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209cb2a424c86244506134191dcca19199340fa059a1480475dec6c08475e65a9c64736f6c634300081c0033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209cb2a424c86244506134191dcca19199340fa059a1480475dec6c08475e65a9c64736f6c634300081c0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/src/Upgrades.sol/Strings.dbg.json b/artifacts/src/Upgrades.sol/Strings.dbg.json new file mode 100644 index 0000000..fc8f341 --- /dev/null +++ b/artifacts/src/Upgrades.sol/Strings.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../build-info/7d80f87a51d3a5d7ae3341681c898b45.json" +} diff --git a/artifacts/src/Upgrades.sol/Strings.json b/artifacts/src/Upgrades.sol/Strings.json new file mode 100644 index 0000000..2ac41f6 --- /dev/null +++ b/artifacts/src/Upgrades.sol/Strings.json @@ -0,0 +1,27 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Strings", + "sourceName": "src/Upgrades.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "length", + "type": "uint256" + } + ], + "name": "StringsInsufficientHexLength", + "type": "error" + } + ], + "bytecode": "0x60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212206ae49a6fea135fd8e8124a3c8b6302828462ba1eeb0849a4214a8c3749f3d1d664736f6c634300081c0033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212206ae49a6fea135fd8e8124a3c8b6302828462ba1eeb0849a4214a8c3749f3d1d664736f6c634300081c0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/src/Upgrades.sol/TransparentUpgradeableProxy.dbg.json b/artifacts/src/Upgrades.sol/TransparentUpgradeableProxy.dbg.json new file mode 100644 index 0000000..fc8f341 --- /dev/null +++ b/artifacts/src/Upgrades.sol/TransparentUpgradeableProxy.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../build-info/7d80f87a51d3a5d7ae3341681c898b45.json" +} diff --git a/artifacts/src/Upgrades.sol/TransparentUpgradeableProxy.json b/artifacts/src/Upgrades.sol/TransparentUpgradeableProxy.json new file mode 100644 index 0000000..bcd7afc --- /dev/null +++ b/artifacts/src/Upgrades.sol/TransparentUpgradeableProxy.json @@ -0,0 +1,116 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "TransparentUpgradeableProxy", + "sourceName": "src/Upgrades.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_logic", + "type": "address" + }, + { + "internalType": "address", + "name": "initialOwner", + "type": "address" + }, + { + "internalType": "bytes", + "name": "_data", + "type": "bytes" + } + ], + "stateMutability": "payable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + } + ], + "name": "AddressEmptyCode", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "admin", + "type": "address" + } + ], + "name": "ERC1967InvalidAdmin", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "implementation", + "type": "address" + } + ], + "name": "ERC1967InvalidImplementation", + "type": "error" + }, + { + "inputs": [], + "name": "ERC1967NonPayable", + "type": "error" + }, + { + "inputs": [], + "name": "FailedInnerCall", + "type": "error" + }, + { + "inputs": [], + "name": "ProxyDeniedAdminAccess", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "previousAdmin", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "newAdmin", + "type": "address" + } + ], + "name": "AdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "implementation", + "type": "address" + } + ], + "name": "Upgraded", + "type": "event" + }, + { + "stateMutability": "payable", + "type": "fallback" + } + ], + "bytecode": "0x60a0604052604051611ae5380380611ae58339818101604052810190610025919061074f565b828161003782826100c460201b60201c565b5050816040516100469061056f565b61005091906107cd565b604051809103906000f08015801561006c573d6000803e3d6000fd5b5073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506100bc6100b161014960201b60201c565b61015360201b60201c565b50505061086f565b6100d3826101ab60201b60201c565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a260008151111561013657610130828261027e60201b60201c565b50610145565b61014461030860201b60201c565b5b5050565b6000608051905090565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61018261034560201b60201c565b826040516101919291906107e8565b60405180910390a16101a8816103a260201b60201c565b50565b60008173ffffffffffffffffffffffffffffffffffffffff163b0361020757806040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526004016101fe91906107cd565b60405180910390fd5b8061023a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61048b60201b60201c565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606000808473ffffffffffffffffffffffffffffffffffffffff16846040516102a89190610858565b600060405180830381855af49150503d80600081146102e3576040519150601f19603f3d011682016040523d82523d6000602084013e6102e8565b606091505b50915091506102fe85838361049560201b60201c565b9250505092915050565b6000341115610343576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60006103797fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610360001b61048b60201b60201c565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036104145760006040517f62e77ba200000000000000000000000000000000000000000000000000000000815260040161040b91906107cd565b60405180910390fd5b806104477fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610360001b61048b60201b60201c565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000819050919050565b6060826104b0576104ab8261052a60201b60201c565b610522565b600082511480156104d8575060008473ffffffffffffffffffffffffffffffffffffffff163b145b1561051a57836040517f9996b31500000000000000000000000000000000000000000000000000000000815260040161051191906107cd565b60405180910390fd5b819050610523565b5b9392505050565b60008151111561053d5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a2b806110ba83390190565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006105bb82610590565b9050919050565b6105cb816105b0565b81146105d657600080fd5b50565b6000815190506105e8816105c2565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610641826105f8565b810181811067ffffffffffffffff821117156106605761065f610609565b5b80604052505050565b600061067361057c565b905061067f8282610638565b919050565b600067ffffffffffffffff82111561069f5761069e610609565b5b6106a8826105f8565b9050602081019050919050565b60005b838110156106d35780820151818401526020810190506106b8565b60008484015250505050565b60006106f26106ed84610684565b610669565b90508281526020810184848401111561070e5761070d6105f3565b5b6107198482856106b5565b509392505050565b600082601f830112610736576107356105ee565b5b81516107468482602086016106df565b91505092915050565b60008060006060848603121561076857610767610586565b5b6000610776868287016105d9565b9350506020610787868287016105d9565b925050604084015167ffffffffffffffff8111156107a8576107a761058b565b5b6107b486828701610721565b9150509250925092565b6107c7816105b0565b82525050565b60006020820190506107e260008301846107be565b92915050565b60006040820190506107fd60008301856107be565b61080a60208301846107be565b9392505050565b600081519050919050565b600081905092915050565b600061083282610811565b61083c818561081c565b935061084c8185602086016106b5565b80840191505092915050565b60006108648284610827565b915081905092915050565b60805161083061088a600039600061010601526108306000f3fe608060405261000c61000e565b005b610016610102565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16036100f757634f1ef28660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166000357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146100ea576040517fd2b576ec00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6100f261012a565b610100565b6100ff610160565b5b565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b6000806000366004908092610141939291906104f1565b81019061014e91906106da565b9150915061015c8282610172565b5050565b61017061016b6101e5565b6101f4565b565b61017b8261021a565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a26000815111156101d8576101d282826102e7565b506101e1565b6101e061036b565b5b5050565b60006101ef6103a8565b905090565b3660008037600080366000845af43d6000803e8060008114610215573d6000f35b3d6000fd5b60008173ffffffffffffffffffffffffffffffffffffffff163b0361027657806040517f4c9c8ce300000000000000000000000000000000000000000000000000000000815260040161026d9190610757565b60405180910390fd5b806102a37f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6103ff565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606000808473ffffffffffffffffffffffffffffffffffffffff168460405161031191906107e3565b600060405180830381855af49150503d806000811461034c576040519150601f19603f3d011682016040523d82523d6000602084013e610351565b606091505b5091509150610361858383610409565b9250505092915050565b60003411156103a6576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60006103d67f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6103ff565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b60608261041e5761041982610498565b610490565b60008251148015610446575060008473ffffffffffffffffffffffffffffffffffffffff163b145b1561048857836040517f9996b31500000000000000000000000000000000000000000000000000000000815260040161047f9190610757565b60405180910390fd5b819050610491565b5b9392505050565b6000815111156104ab5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000604051905090565b600080fd5b600080fd5b60008085851115610505576105046104e7565b5b83861115610516576105156104ec565b5b6001850283019150848603905094509492505050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061056182610536565b9050919050565b61057181610556565b811461057c57600080fd5b50565b60008135905061058e81610568565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6105e78261059e565b810181811067ffffffffffffffff82111715610606576106056105af565b5b80604052505050565b60006106196104dd565b905061062582826105de565b919050565b600067ffffffffffffffff821115610645576106446105af565b5b61064e8261059e565b9050602081019050919050565b82818337600083830152505050565b600061067d6106788461062a565b61060f565b90508281526020810184848401111561069957610698610599565b5b6106a484828561065b565b509392505050565b600082601f8301126106c1576106c0610594565b5b81356106d184826020860161066a565b91505092915050565b600080604083850312156106f1576106f061052c565b5b60006106ff8582860161057f565b925050602083013567ffffffffffffffff8111156107205761071f610531565b5b61072c858286016106ac565b9150509250929050565b600061074182610536565b9050919050565b61075181610736565b82525050565b600060208201905061076c6000830184610748565b92915050565b600081519050919050565b600081905092915050565b60005b838110156107a657808201518184015260208101905061078b565b60008484015250505050565b60006107bd82610772565b6107c7818561077d565b93506107d7818560208601610788565b80840191505092915050565b60006107ef82846107b2565b91508190509291505056fea26469706673582212206be732332064e778aac95f60931947bf328cda42bd2ec28b7e8b830cda74729164736f6c634300081c0033608060405234801561001057600080fd5b50604051610a2b380380610a2b833981810160405281019061003291906101e2565b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100a55760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161009c919061021e565b60405180910390fd5b6100b4816100bb60201b60201c565b5050610239565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006101af82610184565b9050919050565b6101bf816101a4565b81146101ca57600080fd5b50565b6000815190506101dc816101b6565b92915050565b6000602082840312156101f8576101f761017f565b5b6000610206848285016101cd565b91505092915050565b610218816101a4565b82525050565b6000602082019050610233600083018461020f565b92915050565b6107e3806102486000396000f3fe60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610091578063ad3cb1cc146100ad578063f2fde38b146100d8575b600080fd5b34801561005b57600080fd5b50610064610101565b005b34801561007257600080fd5b5061007b610115565b604051610088919061040c565b60405180910390f35b6100ab60048036038101906100a691906105eb565b61013e565b005b3480156100b957600080fd5b506100c26101b9565b6040516100cf91906106d9565b60405180910390f35b3480156100e457600080fd5b506100ff60048036038101906100fa91906106fb565b6101f2565b005b610109610278565b61011360006102ff565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610146610278565b8273ffffffffffffffffffffffffffffffffffffffff16634f1ef2863484846040518463ffffffff1660e01b815260040161018292919061077d565b6000604051808303818588803b15801561019b57600080fd5b505af11580156101af573d6000803e3d6000fd5b5050505050505050565b6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6101fa610278565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361026c5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610263919061040c565b60405180910390fd5b610275816102ff565b50565b6102806103c3565b73ffffffffffffffffffffffffffffffffffffffff1661029e610115565b73ffffffffffffffffffffffffffffffffffffffff16146102fd576102c16103c3565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016102f4919061040c565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103f6826103cb565b9050919050565b610406816103eb565b82525050565b600060208201905061042160008301846103fd565b92915050565b6000604051905090565b600080fd5b600080fd5b6000610446826103eb565b9050919050565b6104568161043b565b811461046157600080fd5b50565b6000813590506104738161044d565b92915050565b610482816103eb565b811461048d57600080fd5b50565b60008135905061049f81610479565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6104f8826104af565b810181811067ffffffffffffffff82111715610517576105166104c0565b5b80604052505050565b600061052a610427565b905061053682826104ef565b919050565b600067ffffffffffffffff821115610556576105556104c0565b5b61055f826104af565b9050602081019050919050565b82818337600083830152505050565b600061058e6105898461053b565b610520565b9050828152602081018484840111156105aa576105a96104aa565b5b6105b584828561056c565b509392505050565b600082601f8301126105d2576105d16104a5565b5b81356105e284826020860161057b565b91505092915050565b60008060006060848603121561060457610603610431565b5b600061061286828701610464565b935050602061062386828701610490565b925050604084013567ffffffffffffffff81111561064457610643610436565b5b610650868287016105bd565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b60005b83811015610694578082015181840152602081019050610679565b60008484015250505050565b60006106ab8261065a565b6106b58185610665565b93506106c5818560208601610676565b6106ce816104af565b840191505092915050565b600060208201905081810360008301526106f381846106a0565b905092915050565b60006020828403121561071157610710610431565b5b600061071f84828501610490565b91505092915050565b600081519050919050565b600082825260208201905092915050565b600061074f82610728565b6107598185610733565b9350610769818560208601610676565b610772816104af565b840191505092915050565b600060408201905061079260008301856103fd565b81810360208301526107a48184610744565b9050939250505056fea26469706673582212207618fbcb2a391d05e882e2fcc53acd9c8d0257c7ed9e673b7bd1c2b353ab85fa64736f6c634300081c0033", + "deployedBytecode": "0x608060405261000c61000e565b005b610016610102565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16036100f757634f1ef28660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166000357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146100ea576040517fd2b576ec00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6100f261012a565b610100565b6100ff610160565b5b565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b6000806000366004908092610141939291906104f1565b81019061014e91906106da565b9150915061015c8282610172565b5050565b61017061016b6101e5565b6101f4565b565b61017b8261021a565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a26000815111156101d8576101d282826102e7565b506101e1565b6101e061036b565b5b5050565b60006101ef6103a8565b905090565b3660008037600080366000845af43d6000803e8060008114610215573d6000f35b3d6000fd5b60008173ffffffffffffffffffffffffffffffffffffffff163b0361027657806040517f4c9c8ce300000000000000000000000000000000000000000000000000000000815260040161026d9190610757565b60405180910390fd5b806102a37f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6103ff565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606000808473ffffffffffffffffffffffffffffffffffffffff168460405161031191906107e3565b600060405180830381855af49150503d806000811461034c576040519150601f19603f3d011682016040523d82523d6000602084013e610351565b606091505b5091509150610361858383610409565b9250505092915050565b60003411156103a6576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60006103d67f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6103ff565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b60608261041e5761041982610498565b610490565b60008251148015610446575060008473ffffffffffffffffffffffffffffffffffffffff163b145b1561048857836040517f9996b31500000000000000000000000000000000000000000000000000000000815260040161047f9190610757565b60405180910390fd5b819050610491565b5b9392505050565b6000815111156104ab5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000604051905090565b600080fd5b600080fd5b60008085851115610505576105046104e7565b5b83861115610516576105156104ec565b5b6001850283019150848603905094509492505050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061056182610536565b9050919050565b61057181610556565b811461057c57600080fd5b50565b60008135905061058e81610568565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6105e78261059e565b810181811067ffffffffffffffff82111715610606576106056105af565b5b80604052505050565b60006106196104dd565b905061062582826105de565b919050565b600067ffffffffffffffff821115610645576106446105af565b5b61064e8261059e565b9050602081019050919050565b82818337600083830152505050565b600061067d6106788461062a565b61060f565b90508281526020810184848401111561069957610698610599565b5b6106a484828561065b565b509392505050565b600082601f8301126106c1576106c0610594565b5b81356106d184826020860161066a565b91505092915050565b600080604083850312156106f1576106f061052c565b5b60006106ff8582860161057f565b925050602083013567ffffffffffffffff8111156107205761071f610531565b5b61072c858286016106ac565b9150509250929050565b600061074182610536565b9050919050565b61075181610736565b82525050565b600060208201905061076c6000830184610748565b92915050565b600081519050919050565b600081905092915050565b60005b838110156107a657808201518184015260208101905061078b565b60008484015250505050565b60006107bd82610772565b6107c7818561077d565b93506107d7818560208601610788565b80840191505092915050565b60006107ef82846107b2565b91508190509291505056fea26469706673582212206be732332064e778aac95f60931947bf328cda42bd2ec28b7e8b830cda74729164736f6c634300081c0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/src/Upgrades.sol/UnsafeUpgrades.dbg.json b/artifacts/src/Upgrades.sol/UnsafeUpgrades.dbg.json new file mode 100644 index 0000000..fc8f341 --- /dev/null +++ b/artifacts/src/Upgrades.sol/UnsafeUpgrades.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../build-info/7d80f87a51d3a5d7ae3341681c898b45.json" +} diff --git a/artifacts/src/Upgrades.sol/UnsafeUpgrades.json b/artifacts/src/Upgrades.sol/UnsafeUpgrades.json new file mode 100644 index 0000000..e438555 --- /dev/null +++ b/artifacts/src/Upgrades.sol/UnsafeUpgrades.json @@ -0,0 +1,10 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "UnsafeUpgrades", + "sourceName": "src/Upgrades.sol", + "abi": [], + "bytecode": "0x60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220021baba273bb1070b6a33b08942cd622816824addddc5b60f199328ef00c981164736f6c634300081c0033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220021baba273bb1070b6a33b08942cd622816824addddc5b60f199328ef00c981164736f6c634300081c0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/src/Upgrades.sol/UpgradeableBeacon.dbg.json b/artifacts/src/Upgrades.sol/UpgradeableBeacon.dbg.json new file mode 100644 index 0000000..fc8f341 --- /dev/null +++ b/artifacts/src/Upgrades.sol/UpgradeableBeacon.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../build-info/7d80f87a51d3a5d7ae3341681c898b45.json" +} diff --git a/artifacts/src/Upgrades.sol/UpgradeableBeacon.json b/artifacts/src/Upgrades.sol/UpgradeableBeacon.json new file mode 100644 index 0000000..ffd1eba --- /dev/null +++ b/artifacts/src/Upgrades.sol/UpgradeableBeacon.json @@ -0,0 +1,151 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "UpgradeableBeacon", + "sourceName": "src/Upgrades.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "implementation_", + "type": "address" + }, + { + "internalType": "address", + "name": "initialOwner", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "implementation", + "type": "address" + } + ], + "name": "BeaconInvalidImplementation", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnableInvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "OwnableUnauthorizedAccount", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "implementation", + "type": "address" + } + ], + "name": "Upgraded", + "type": "event" + }, + { + "inputs": [], + "name": "implementation", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newImplementation", + "type": "address" + } + ], + "name": "upgradeTo", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b5060405161084f38038061084f833981810160405281019061003291906102d5565b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100a55760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161009c9190610324565b60405180910390fd5b6100b4816100cb60201b60201c565b506100c48261018f60201b60201c565b505061033f565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008173ffffffffffffffffffffffffffffffffffffffff163b036101eb57806040517f847ac5640000000000000000000000000000000000000000000000000000000081526004016101e29190610324565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a250565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006102a282610277565b9050919050565b6102b281610297565b81146102bd57600080fd5b50565b6000815190506102cf816102a9565b92915050565b600080604083850312156102ec576102eb610272565b5b60006102fa858286016102c0565b925050602061030b858286016102c0565b9150509250929050565b61031e81610297565b82525050565b60006020820190506103396000830184610315565b92915050565b6105018061034e6000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80633659cfe61461005c5780635c60da1b14610078578063715018a6146100965780638da5cb5b146100a0578063f2fde38b146100be575b600080fd5b61007660048036038101906100719190610474565b6100da565b005b6100806100ee565b60405161008d91906104b0565b60405180910390f35b61009e610118565b005b6100a861012c565b6040516100b591906104b0565b60405180910390f35b6100d860048036038101906100d39190610474565b610155565b005b6100e26101db565b6100eb81610262565b50565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6101206101db565b61012a6000610345565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61015d6101db565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036101cf5760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016101c691906104b0565b60405180910390fd5b6101d881610345565b50565b6101e3610409565b73ffffffffffffffffffffffffffffffffffffffff1661020161012c565b73ffffffffffffffffffffffffffffffffffffffff161461026057610224610409565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161025791906104b0565b60405180910390fd5b565b60008173ffffffffffffffffffffffffffffffffffffffff163b036102be57806040517f847ac5640000000000000000000000000000000000000000000000000000000081526004016102b591906104b0565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a250565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061044182610416565b9050919050565b61045181610436565b811461045c57600080fd5b50565b60008135905061046e81610448565b92915050565b60006020828403121561048a57610489610411565b5b60006104988482850161045f565b91505092915050565b6104aa81610436565b82525050565b60006020820190506104c560008301846104a1565b9291505056fea2646970667358221220aad755861b74d31885bdc5d8f1b1aa44ae08f3acdbfb8171d854505a03b102c664736f6c634300081c0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100575760003560e01c80633659cfe61461005c5780635c60da1b14610078578063715018a6146100965780638da5cb5b146100a0578063f2fde38b146100be575b600080fd5b61007660048036038101906100719190610474565b6100da565b005b6100806100ee565b60405161008d91906104b0565b60405180910390f35b61009e610118565b005b6100a861012c565b6040516100b591906104b0565b60405180910390f35b6100d860048036038101906100d39190610474565b610155565b005b6100e26101db565b6100eb81610262565b50565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6101206101db565b61012a6000610345565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61015d6101db565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036101cf5760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016101c691906104b0565b60405180910390fd5b6101d881610345565b50565b6101e3610409565b73ffffffffffffffffffffffffffffffffffffffff1661020161012c565b73ffffffffffffffffffffffffffffffffffffffff161461026057610224610409565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161025791906104b0565b60405180910390fd5b565b60008173ffffffffffffffffffffffffffffffffffffffff163b036102be57806040517f847ac5640000000000000000000000000000000000000000000000000000000081526004016102b591906104b0565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a250565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061044182610416565b9050919050565b61045181610436565b811461045c57600080fd5b50565b60008135905061046e81610448565b92915050565b60006020828403121561048a57610489610411565b5b60006104988482850161045f565b91505092915050565b6104aa81610436565b82525050565b60006020820190506104c560008301846104a1565b9291505056fea2646970667358221220aad755861b74d31885bdc5d8f1b1aa44ae08f3acdbfb8171d854505a03b102c664736f6c634300081c0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/src/Upgrades.sol/Upgrades.dbg.json b/artifacts/src/Upgrades.sol/Upgrades.dbg.json new file mode 100644 index 0000000..fc8f341 --- /dev/null +++ b/artifacts/src/Upgrades.sol/Upgrades.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../build-info/7d80f87a51d3a5d7ae3341681c898b45.json" +} diff --git a/artifacts/src/Upgrades.sol/Upgrades.json b/artifacts/src/Upgrades.sol/Upgrades.json new file mode 100644 index 0000000..6d4e812 --- /dev/null +++ b/artifacts/src/Upgrades.sol/Upgrades.json @@ -0,0 +1,10 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Upgrades", + "sourceName": "src/Upgrades.sol", + "abi": [], + "bytecode": "0x60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a99f8096bd9334840efab435915648dfa85b40885cd92cb51ba78c006ee663b664736f6c634300081c0033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a99f8096bd9334840efab435915648dfa85b40885cd92cb51ba78c006ee663b664736f6c634300081c0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/src/Upgrades.sol/Utils.dbg.json b/artifacts/src/Upgrades.sol/Utils.dbg.json new file mode 100644 index 0000000..fc8f341 --- /dev/null +++ b/artifacts/src/Upgrades.sol/Utils.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../build-info/7d80f87a51d3a5d7ae3341681c898b45.json" +} diff --git a/artifacts/src/Upgrades.sol/Utils.json b/artifacts/src/Upgrades.sol/Utils.json new file mode 100644 index 0000000..99a2107 --- /dev/null +++ b/artifacts/src/Upgrades.sol/Utils.json @@ -0,0 +1,10 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Utils", + "sourceName": "src/Upgrades.sol", + "abi": [], + "bytecode": "0x60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e97b895a962d79d6a695a2f493352c781ce57ca8f2721379c395a3b0a41e960564736f6c634300081c0033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e97b895a962d79d6a695a2f493352c781ce57ca8f2721379c395a3b0a41e960564736f6c634300081c0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/src/Upgrades.sol/Versions.dbg.json b/artifacts/src/Upgrades.sol/Versions.dbg.json new file mode 100644 index 0000000..fc8f341 --- /dev/null +++ b/artifacts/src/Upgrades.sol/Versions.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../build-info/7d80f87a51d3a5d7ae3341681c898b45.json" +} diff --git a/artifacts/src/Upgrades.sol/Versions.json b/artifacts/src/Upgrades.sol/Versions.json new file mode 100644 index 0000000..dabfc3b --- /dev/null +++ b/artifacts/src/Upgrades.sol/Versions.json @@ -0,0 +1,10 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Versions", + "sourceName": "src/Upgrades.sol", + "abi": [], + "bytecode": "0x60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220177b9adf977806043f2b031d5de95645e5cf324da902d758fe164e2b47101bab64736f6c634300081c0033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220177b9adf977806043f2b031d5de95645e5cf324da902d758fe164e2b47101bab64736f6c634300081c0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/src/Upgrades.sol/Vm.dbg.json b/artifacts/src/Upgrades.sol/Vm.dbg.json new file mode 100644 index 0000000..fc8f341 --- /dev/null +++ b/artifacts/src/Upgrades.sol/Vm.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../build-info/7d80f87a51d3a5d7ae3341681c898b45.json" +} diff --git a/artifacts/src/Upgrades.sol/Vm.json b/artifacts/src/Upgrades.sol/Vm.json new file mode 100644 index 0000000..901da02 --- /dev/null +++ b/artifacts/src/Upgrades.sol/Vm.json @@ -0,0 +1,9116 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Vm", + "sourceName": "src/Upgrades.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + } + ], + "name": "accesses", + "outputs": [ + { + "internalType": "bytes32[]", + "name": "readSlots", + "type": "bytes32[]" + }, + { + "internalType": "bytes32[]", + "name": "writeSlots", + "type": "bytes32[]" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "activeFork", + "outputs": [ + { + "internalType": "uint256", + "name": "forkId", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "privateKey", + "type": "uint256" + } + ], + "name": "addr", + "outputs": [ + { + "internalType": "address", + "name": "keyAddr", + "type": "address" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "allowCheatcodes", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxDelta", + "type": "uint256" + } + ], + "name": "assertApproxEqAbs", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "maxDelta", + "type": "uint256" + } + ], + "name": "assertApproxEqAbs", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "maxDelta", + "type": "uint256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertApproxEqAbs", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxDelta", + "type": "uint256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertApproxEqAbs", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxDelta", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + } + ], + "name": "assertApproxEqAbsDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "maxDelta", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + } + ], + "name": "assertApproxEqAbsDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxDelta", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertApproxEqAbsDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "maxDelta", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertApproxEqAbsDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxPercentDelta", + "type": "uint256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertApproxEqRel", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxPercentDelta", + "type": "uint256" + } + ], + "name": "assertApproxEqRel", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "maxPercentDelta", + "type": "uint256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertApproxEqRel", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "maxPercentDelta", + "type": "uint256" + } + ], + "name": "assertApproxEqRel", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxPercentDelta", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + } + ], + "name": "assertApproxEqRelDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxPercentDelta", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertApproxEqRelDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "maxPercentDelta", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + } + ], + "name": "assertApproxEqRelDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "maxPercentDelta", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertApproxEqRelDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32[]", + "name": "left", + "type": "bytes32[]" + }, + { + "internalType": "bytes32[]", + "name": "right", + "type": "bytes32[]" + } + ], + "name": "assertEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256[]", + "name": "left", + "type": "int256[]" + }, + { + "internalType": "int256[]", + "name": "right", + "type": "int256[]" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "left", + "type": "address" + }, + { + "internalType": "address", + "name": "right", + "type": "address" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "left", + "type": "string" + }, + { + "internalType": "string", + "name": "right", + "type": "string" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "left", + "type": "address[]" + }, + { + "internalType": "address[]", + "name": "right", + "type": "address[]" + } + ], + "name": "assertEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "left", + "type": "address[]" + }, + { + "internalType": "address[]", + "name": "right", + "type": "address[]" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool", + "name": "left", + "type": "bool" + }, + { + "internalType": "bool", + "name": "right", + "type": "bool" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "left", + "type": "address" + }, + { + "internalType": "address", + "name": "right", + "type": "address" + } + ], + "name": "assertEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256[]", + "name": "left", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "right", + "type": "uint256[]" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool[]", + "name": "left", + "type": "bool[]" + }, + { + "internalType": "bool[]", + "name": "right", + "type": "bool[]" + } + ], + "name": "assertEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256[]", + "name": "left", + "type": "int256[]" + }, + { + "internalType": "int256[]", + "name": "right", + "type": "int256[]" + } + ], + "name": "assertEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "left", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "right", + "type": "bytes32" + } + ], + "name": "assertEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256[]", + "name": "left", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "right", + "type": "uint256[]" + } + ], + "name": "assertEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "left", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "right", + "type": "bytes" + } + ], + "name": "assertEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + } + ], + "name": "assertEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "left", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "right", + "type": "bytes32" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string[]", + "name": "left", + "type": "string[]" + }, + { + "internalType": "string[]", + "name": "right", + "type": "string[]" + } + ], + "name": "assertEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32[]", + "name": "left", + "type": "bytes32[]" + }, + { + "internalType": "bytes32[]", + "name": "right", + "type": "bytes32[]" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "left", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "right", + "type": "bytes" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool[]", + "name": "left", + "type": "bool[]" + }, + { + "internalType": "bool[]", + "name": "right", + "type": "bool[]" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes[]", + "name": "left", + "type": "bytes[]" + }, + { + "internalType": "bytes[]", + "name": "right", + "type": "bytes[]" + } + ], + "name": "assertEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string[]", + "name": "left", + "type": "string[]" + }, + { + "internalType": "string[]", + "name": "right", + "type": "string[]" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "left", + "type": "string" + }, + { + "internalType": "string", + "name": "right", + "type": "string" + } + ], + "name": "assertEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes[]", + "name": "left", + "type": "bytes[]" + }, + { + "internalType": "bytes[]", + "name": "right", + "type": "bytes[]" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool", + "name": "left", + "type": "bool" + }, + { + "internalType": "bool", + "name": "right", + "type": "bool" + } + ], + "name": "assertEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + } + ], + "name": "assertEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + } + ], + "name": "assertEqDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + } + ], + "name": "assertEqDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertEqDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertEqDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool", + "name": "condition", + "type": "bool" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertFalse", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool", + "name": "condition", + "type": "bool" + } + ], + "name": "assertFalse", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + } + ], + "name": "assertGe", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertGe", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + } + ], + "name": "assertGe", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertGe", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + } + ], + "name": "assertGeDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertGeDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertGeDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + } + ], + "name": "assertGeDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + } + ], + "name": "assertGt", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertGt", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + } + ], + "name": "assertGt", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertGt", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertGtDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertGtDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + } + ], + "name": "assertGtDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + } + ], + "name": "assertGtDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertLe", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + } + ], + "name": "assertLe", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + } + ], + "name": "assertLe", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertLe", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + } + ], + "name": "assertLeDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertLeDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertLeDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + } + ], + "name": "assertLeDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + } + ], + "name": "assertLt", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertLt", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertLt", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + } + ], + "name": "assertLt", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + } + ], + "name": "assertLtDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertLtDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertLtDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + } + ], + "name": "assertLtDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32[]", + "name": "left", + "type": "bytes32[]" + }, + { + "internalType": "bytes32[]", + "name": "right", + "type": "bytes32[]" + } + ], + "name": "assertNotEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256[]", + "name": "left", + "type": "int256[]" + }, + { + "internalType": "int256[]", + "name": "right", + "type": "int256[]" + } + ], + "name": "assertNotEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool", + "name": "left", + "type": "bool" + }, + { + "internalType": "bool", + "name": "right", + "type": "bool" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertNotEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes[]", + "name": "left", + "type": "bytes[]" + }, + { + "internalType": "bytes[]", + "name": "right", + "type": "bytes[]" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertNotEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool", + "name": "left", + "type": "bool" + }, + { + "internalType": "bool", + "name": "right", + "type": "bool" + } + ], + "name": "assertNotEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool[]", + "name": "left", + "type": "bool[]" + }, + { + "internalType": "bool[]", + "name": "right", + "type": "bool[]" + } + ], + "name": "assertNotEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "left", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "right", + "type": "bytes" + } + ], + "name": "assertNotEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "left", + "type": "address[]" + }, + { + "internalType": "address[]", + "name": "right", + "type": "address[]" + } + ], + "name": "assertNotEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertNotEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256[]", + "name": "left", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "right", + "type": "uint256[]" + } + ], + "name": "assertNotEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool[]", + "name": "left", + "type": "bool[]" + }, + { + "internalType": "bool[]", + "name": "right", + "type": "bool[]" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertNotEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "left", + "type": "string" + }, + { + "internalType": "string", + "name": "right", + "type": "string" + } + ], + "name": "assertNotEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "left", + "type": "address[]" + }, + { + "internalType": "address[]", + "name": "right", + "type": "address[]" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertNotEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "left", + "type": "string" + }, + { + "internalType": "string", + "name": "right", + "type": "string" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertNotEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "left", + "type": "address" + }, + { + "internalType": "address", + "name": "right", + "type": "address" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertNotEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "left", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "right", + "type": "bytes32" + } + ], + "name": "assertNotEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "left", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "right", + "type": "bytes" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertNotEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertNotEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256[]", + "name": "left", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "right", + "type": "uint256[]" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertNotEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "left", + "type": "address" + }, + { + "internalType": "address", + "name": "right", + "type": "address" + } + ], + "name": "assertNotEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "left", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "right", + "type": "bytes32" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertNotEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string[]", + "name": "left", + "type": "string[]" + }, + { + "internalType": "string[]", + "name": "right", + "type": "string[]" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertNotEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + } + ], + "name": "assertNotEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32[]", + "name": "left", + "type": "bytes32[]" + }, + { + "internalType": "bytes32[]", + "name": "right", + "type": "bytes32[]" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertNotEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string[]", + "name": "left", + "type": "string[]" + }, + { + "internalType": "string[]", + "name": "right", + "type": "string[]" + } + ], + "name": "assertNotEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256[]", + "name": "left", + "type": "int256[]" + }, + { + "internalType": "int256[]", + "name": "right", + "type": "int256[]" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertNotEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes[]", + "name": "left", + "type": "bytes[]" + }, + { + "internalType": "bytes[]", + "name": "right", + "type": "bytes[]" + } + ], + "name": "assertNotEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + } + ], + "name": "assertNotEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + } + ], + "name": "assertNotEqDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertNotEqDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + } + ], + "name": "assertNotEqDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertNotEqDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool", + "name": "condition", + "type": "bool" + } + ], + "name": "assertTrue", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool", + "name": "condition", + "type": "bool" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertTrue", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool", + "name": "condition", + "type": "bool" + } + ], + "name": "assume", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "newBlobBaseFee", + "type": "uint256" + } + ], + "name": "blobBaseFee", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32[]", + "name": "hashes", + "type": "bytes32[]" + } + ], + "name": "blobhashes", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "char", + "type": "string" + } + ], + "name": "breakpoint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "char", + "type": "string" + }, + { + "internalType": "bool", + "name": "value", + "type": "bool" + } + ], + "name": "breakpoint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "broadcast", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "signer", + "type": "address" + } + ], + "name": "broadcast", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "privateKey", + "type": "uint256" + } + ], + "name": "broadcast", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "broadcastRawTransaction", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "newChainId", + "type": "uint256" + } + ], + "name": "chainId", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "clearMockedCalls", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "path", + "type": "string" + } + ], + "name": "closeFile", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newCoinbase", + "type": "address" + } + ], + "name": "coinbase", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "salt", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "initCodeHash", + "type": "bytes32" + } + ], + "name": "computeCreate2Address", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "salt", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "initCodeHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "deployer", + "type": "address" + } + ], + "name": "computeCreate2Address", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "deployer", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + } + ], + "name": "computeCreateAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "from", + "type": "string" + }, + { + "internalType": "string", + "name": "to", + "type": "string" + } + ], + "name": "copyFile", + "outputs": [ + { + "internalType": "uint64", + "name": "copied", + "type": "uint64" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "path", + "type": "string" + }, + { + "internalType": "bool", + "name": "recursive", + "type": "bool" + } + ], + "name": "createDir", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "urlOrAlias", + "type": "string" + } + ], + "name": "createFork", + "outputs": [ + { + "internalType": "uint256", + "name": "forkId", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "urlOrAlias", + "type": "string" + }, + { + "internalType": "uint256", + "name": "blockNumber", + "type": "uint256" + } + ], + "name": "createFork", + "outputs": [ + { + "internalType": "uint256", + "name": "forkId", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "urlOrAlias", + "type": "string" + }, + { + "internalType": "bytes32", + "name": "txHash", + "type": "bytes32" + } + ], + "name": "createFork", + "outputs": [ + { + "internalType": "uint256", + "name": "forkId", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "urlOrAlias", + "type": "string" + }, + { + "internalType": "uint256", + "name": "blockNumber", + "type": "uint256" + } + ], + "name": "createSelectFork", + "outputs": [ + { + "internalType": "uint256", + "name": "forkId", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "urlOrAlias", + "type": "string" + }, + { + "internalType": "bytes32", + "name": "txHash", + "type": "bytes32" + } + ], + "name": "createSelectFork", + "outputs": [ + { + "internalType": "uint256", + "name": "forkId", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "urlOrAlias", + "type": "string" + } + ], + "name": "createSelectFork", + "outputs": [ + { + "internalType": "uint256", + "name": "forkId", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "walletLabel", + "type": "string" + } + ], + "name": "createWallet", + "outputs": [ + { + "components": [ + { + "internalType": "address", + "name": "addr", + "type": "address" + }, + { + "internalType": "uint256", + "name": "publicKeyX", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "publicKeyY", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "privateKey", + "type": "uint256" + } + ], + "internalType": "struct VmSafe.Wallet", + "name": "wallet", + "type": "tuple" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "privateKey", + "type": "uint256" + } + ], + "name": "createWallet", + "outputs": [ + { + "components": [ + { + "internalType": "address", + "name": "addr", + "type": "address" + }, + { + "internalType": "uint256", + "name": "publicKeyX", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "publicKeyY", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "privateKey", + "type": "uint256" + } + ], + "internalType": "struct VmSafe.Wallet", + "name": "wallet", + "type": "tuple" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "privateKey", + "type": "uint256" + }, + { + "internalType": "string", + "name": "walletLabel", + "type": "string" + } + ], + "name": "createWallet", + "outputs": [ + { + "components": [ + { + "internalType": "address", + "name": "addr", + "type": "address" + }, + { + "internalType": "uint256", + "name": "publicKeyX", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "publicKeyY", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "privateKey", + "type": "uint256" + } + ], + "internalType": "struct VmSafe.Wallet", + "name": "wallet", + "type": "tuple" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "newBalance", + "type": "uint256" + } + ], + "name": "deal", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "snapshotId", + "type": "uint256" + } + ], + "name": "deleteSnapshot", + "outputs": [ + { + "internalType": "bool", + "name": "success", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "deleteSnapshots", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "artifactPath", + "type": "string" + }, + { + "internalType": "bytes", + "name": "constructorArgs", + "type": "bytes" + } + ], + "name": "deployCode", + "outputs": [ + { + "internalType": "address", + "name": "deployedAddress", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "artifactPath", + "type": "string" + } + ], + "name": "deployCode", + "outputs": [ + { + "internalType": "address", + "name": "deployedAddress", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "mnemonic", + "type": "string" + }, + { + "internalType": "string", + "name": "derivationPath", + "type": "string" + }, + { + "internalType": "uint32", + "name": "index", + "type": "uint32" + }, + { + "internalType": "string", + "name": "language", + "type": "string" + } + ], + "name": "deriveKey", + "outputs": [ + { + "internalType": "uint256", + "name": "privateKey", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "mnemonic", + "type": "string" + }, + { + "internalType": "uint32", + "name": "index", + "type": "uint32" + }, + { + "internalType": "string", + "name": "language", + "type": "string" + } + ], + "name": "deriveKey", + "outputs": [ + { + "internalType": "uint256", + "name": "privateKey", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "mnemonic", + "type": "string" + }, + { + "internalType": "uint32", + "name": "index", + "type": "uint32" + } + ], + "name": "deriveKey", + "outputs": [ + { + "internalType": "uint256", + "name": "privateKey", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "mnemonic", + "type": "string" + }, + { + "internalType": "string", + "name": "derivationPath", + "type": "string" + }, + { + "internalType": "uint32", + "name": "index", + "type": "uint32" + } + ], + "name": "deriveKey", + "outputs": [ + { + "internalType": "uint256", + "name": "privateKey", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "newDifficulty", + "type": "uint256" + } + ], + "name": "difficulty", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "pathToStateJson", + "type": "string" + } + ], + "name": "dumpState", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + } + ], + "name": "ensNamehash", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + } + ], + "name": "envAddress", + "outputs": [ + { + "internalType": "address", + "name": "value", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "delim", + "type": "string" + } + ], + "name": "envAddress", + "outputs": [ + { + "internalType": "address[]", + "name": "value", + "type": "address[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + } + ], + "name": "envBool", + "outputs": [ + { + "internalType": "bool", + "name": "value", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "delim", + "type": "string" + } + ], + "name": "envBool", + "outputs": [ + { + "internalType": "bool[]", + "name": "value", + "type": "bool[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + } + ], + "name": "envBytes", + "outputs": [ + { + "internalType": "bytes", + "name": "value", + "type": "bytes" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "delim", + "type": "string" + } + ], + "name": "envBytes", + "outputs": [ + { + "internalType": "bytes[]", + "name": "value", + "type": "bytes[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "delim", + "type": "string" + } + ], + "name": "envBytes32", + "outputs": [ + { + "internalType": "bytes32[]", + "name": "value", + "type": "bytes32[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + } + ], + "name": "envBytes32", + "outputs": [ + { + "internalType": "bytes32", + "name": "value", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + } + ], + "name": "envExists", + "outputs": [ + { + "internalType": "bool", + "name": "result", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "delim", + "type": "string" + } + ], + "name": "envInt", + "outputs": [ + { + "internalType": "int256[]", + "name": "value", + "type": "int256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + } + ], + "name": "envInt", + "outputs": [ + { + "internalType": "int256", + "name": "value", + "type": "int256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "delim", + "type": "string" + }, + { + "internalType": "bytes32[]", + "name": "defaultValue", + "type": "bytes32[]" + } + ], + "name": "envOr", + "outputs": [ + { + "internalType": "bytes32[]", + "name": "value", + "type": "bytes32[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "delim", + "type": "string" + }, + { + "internalType": "int256[]", + "name": "defaultValue", + "type": "int256[]" + } + ], + "name": "envOr", + "outputs": [ + { + "internalType": "int256[]", + "name": "value", + "type": "int256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "bool", + "name": "defaultValue", + "type": "bool" + } + ], + "name": "envOr", + "outputs": [ + { + "internalType": "bool", + "name": "value", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "address", + "name": "defaultValue", + "type": "address" + } + ], + "name": "envOr", + "outputs": [ + { + "internalType": "address", + "name": "value", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "uint256", + "name": "defaultValue", + "type": "uint256" + } + ], + "name": "envOr", + "outputs": [ + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "delim", + "type": "string" + }, + { + "internalType": "bytes[]", + "name": "defaultValue", + "type": "bytes[]" + } + ], + "name": "envOr", + "outputs": [ + { + "internalType": "bytes[]", + "name": "value", + "type": "bytes[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "delim", + "type": "string" + }, + { + "internalType": "uint256[]", + "name": "defaultValue", + "type": "uint256[]" + } + ], + "name": "envOr", + "outputs": [ + { + "internalType": "uint256[]", + "name": "value", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "delim", + "type": "string" + }, + { + "internalType": "string[]", + "name": "defaultValue", + "type": "string[]" + } + ], + "name": "envOr", + "outputs": [ + { + "internalType": "string[]", + "name": "value", + "type": "string[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "bytes", + "name": "defaultValue", + "type": "bytes" + } + ], + "name": "envOr", + "outputs": [ + { + "internalType": "bytes", + "name": "value", + "type": "bytes" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "bytes32", + "name": "defaultValue", + "type": "bytes32" + } + ], + "name": "envOr", + "outputs": [ + { + "internalType": "bytes32", + "name": "value", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "int256", + "name": "defaultValue", + "type": "int256" + } + ], + "name": "envOr", + "outputs": [ + { + "internalType": "int256", + "name": "value", + "type": "int256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "delim", + "type": "string" + }, + { + "internalType": "address[]", + "name": "defaultValue", + "type": "address[]" + } + ], + "name": "envOr", + "outputs": [ + { + "internalType": "address[]", + "name": "value", + "type": "address[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "defaultValue", + "type": "string" + } + ], + "name": "envOr", + "outputs": [ + { + "internalType": "string", + "name": "value", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "delim", + "type": "string" + }, + { + "internalType": "bool[]", + "name": "defaultValue", + "type": "bool[]" + } + ], + "name": "envOr", + "outputs": [ + { + "internalType": "bool[]", + "name": "value", + "type": "bool[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "delim", + "type": "string" + } + ], + "name": "envString", + "outputs": [ + { + "internalType": "string[]", + "name": "value", + "type": "string[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + } + ], + "name": "envString", + "outputs": [ + { + "internalType": "string", + "name": "value", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + } + ], + "name": "envUint", + "outputs": [ + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "delim", + "type": "string" + } + ], + "name": "envUint", + "outputs": [ + { + "internalType": "uint256[]", + "name": "value", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "internalType": "bytes", + "name": "newRuntimeBytecode", + "type": "bytes" + } + ], + "name": "etch", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "fromBlock", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "toBlock", + "type": "uint256" + }, + { + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "internalType": "bytes32[]", + "name": "topics", + "type": "bytes32[]" + } + ], + "name": "eth_getLogs", + "outputs": [ + { + "components": [ + { + "internalType": "address", + "name": "emitter", + "type": "address" + }, + { + "internalType": "bytes32[]", + "name": "topics", + "type": "bytes32[]" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "blockHash", + "type": "bytes32" + }, + { + "internalType": "uint64", + "name": "blockNumber", + "type": "uint64" + }, + { + "internalType": "bytes32", + "name": "transactionHash", + "type": "bytes32" + }, + { + "internalType": "uint64", + "name": "transactionIndex", + "type": "uint64" + }, + { + "internalType": "uint256", + "name": "logIndex", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "removed", + "type": "bool" + } + ], + "internalType": "struct VmSafe.EthGetLogs[]", + "name": "logs", + "type": "tuple[]" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "path", + "type": "string" + } + ], + "name": "exists", + "outputs": [ + { + "internalType": "bool", + "name": "result", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "callee", + "type": "address" + }, + { + "internalType": "uint256", + "name": "msgValue", + "type": "uint256" + }, + { + "internalType": "uint64", + "name": "gas", + "type": "uint64" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "expectCall", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "callee", + "type": "address" + }, + { + "internalType": "uint256", + "name": "msgValue", + "type": "uint256" + }, + { + "internalType": "uint64", + "name": "gas", + "type": "uint64" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "uint64", + "name": "count", + "type": "uint64" + } + ], + "name": "expectCall", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "callee", + "type": "address" + }, + { + "internalType": "uint256", + "name": "msgValue", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "uint64", + "name": "count", + "type": "uint64" + } + ], + "name": "expectCall", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "callee", + "type": "address" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "expectCall", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "callee", + "type": "address" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "uint64", + "name": "count", + "type": "uint64" + } + ], + "name": "expectCall", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "callee", + "type": "address" + }, + { + "internalType": "uint256", + "name": "msgValue", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "expectCall", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "callee", + "type": "address" + }, + { + "internalType": "uint256", + "name": "msgValue", + "type": "uint256" + }, + { + "internalType": "uint64", + "name": "minGas", + "type": "uint64" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "expectCallMinGas", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "callee", + "type": "address" + }, + { + "internalType": "uint256", + "name": "msgValue", + "type": "uint256" + }, + { + "internalType": "uint64", + "name": "minGas", + "type": "uint64" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "uint64", + "name": "count", + "type": "uint64" + } + ], + "name": "expectCallMinGas", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "expectEmit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool", + "name": "checkTopic1", + "type": "bool" + }, + { + "internalType": "bool", + "name": "checkTopic2", + "type": "bool" + }, + { + "internalType": "bool", + "name": "checkTopic3", + "type": "bool" + }, + { + "internalType": "bool", + "name": "checkData", + "type": "bool" + } + ], + "name": "expectEmit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool", + "name": "checkTopic1", + "type": "bool" + }, + { + "internalType": "bool", + "name": "checkTopic2", + "type": "bool" + }, + { + "internalType": "bool", + "name": "checkTopic3", + "type": "bool" + }, + { + "internalType": "bool", + "name": "checkData", + "type": "bool" + }, + { + "internalType": "address", + "name": "emitter", + "type": "address" + } + ], + "name": "expectEmit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "emitter", + "type": "address" + } + ], + "name": "expectEmit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "expectEmitAnonymous", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "emitter", + "type": "address" + } + ], + "name": "expectEmitAnonymous", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool", + "name": "checkTopic0", + "type": "bool" + }, + { + "internalType": "bool", + "name": "checkTopic1", + "type": "bool" + }, + { + "internalType": "bool", + "name": "checkTopic2", + "type": "bool" + }, + { + "internalType": "bool", + "name": "checkTopic3", + "type": "bool" + }, + { + "internalType": "bool", + "name": "checkData", + "type": "bool" + }, + { + "internalType": "address", + "name": "emitter", + "type": "address" + } + ], + "name": "expectEmitAnonymous", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool", + "name": "checkTopic0", + "type": "bool" + }, + { + "internalType": "bool", + "name": "checkTopic1", + "type": "bool" + }, + { + "internalType": "bool", + "name": "checkTopic2", + "type": "bool" + }, + { + "internalType": "bool", + "name": "checkTopic3", + "type": "bool" + }, + { + "internalType": "bool", + "name": "checkData", + "type": "bool" + } + ], + "name": "expectEmitAnonymous", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "revertData", + "type": "bytes4" + } + ], + "name": "expectRevert", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "revertData", + "type": "bytes" + } + ], + "name": "expectRevert", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "expectRevert", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "min", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "max", + "type": "uint64" + } + ], + "name": "expectSafeMemory", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "min", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "max", + "type": "uint64" + } + ], + "name": "expectSafeMemoryCall", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "newBasefee", + "type": "uint256" + } + ], + "name": "fee", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string[]", + "name": "commandInput", + "type": "string[]" + } + ], + "name": "ffi", + "outputs": [ + { + "internalType": "bytes", + "name": "result", + "type": "bytes" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "path", + "type": "string" + } + ], + "name": "fsMetadata", + "outputs": [ + { + "components": [ + { + "internalType": "bool", + "name": "isDir", + "type": "bool" + }, + { + "internalType": "bool", + "name": "isSymlink", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "length", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "readOnly", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "modified", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "accessed", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "created", + "type": "uint256" + } + ], + "internalType": "struct VmSafe.FsMetadata", + "name": "metadata", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getBlobBaseFee", + "outputs": [ + { + "internalType": "uint256", + "name": "blobBaseFee", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getBlobhashes", + "outputs": [ + { + "internalType": "bytes32[]", + "name": "hashes", + "type": "bytes32[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getBlockNumber", + "outputs": [ + { + "internalType": "uint256", + "name": "height", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getBlockTimestamp", + "outputs": [ + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "artifactPath", + "type": "string" + } + ], + "name": "getCode", + "outputs": [ + { + "internalType": "bytes", + "name": "creationBytecode", + "type": "bytes" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "artifactPath", + "type": "string" + } + ], + "name": "getDeployedCode", + "outputs": [ + { + "internalType": "bytes", + "name": "runtimeBytecode", + "type": "bytes" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getFoundryVersion", + "outputs": [ + { + "internalType": "string", + "name": "version", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "getLabel", + "outputs": [ + { + "internalType": "string", + "name": "currentLabel", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "elementSlot", + "type": "bytes32" + } + ], + "name": "getMappingKeyAndParentOf", + "outputs": [ + { + "internalType": "bool", + "name": "found", + "type": "bool" + }, + { + "internalType": "bytes32", + "name": "key", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "parent", + "type": "bytes32" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "mappingSlot", + "type": "bytes32" + } + ], + "name": "getMappingLength", + "outputs": [ + { + "internalType": "uint256", + "name": "length", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "mappingSlot", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "idx", + "type": "uint256" + } + ], + "name": "getMappingSlotAt", + "outputs": [ + { + "internalType": "bytes32", + "name": "value", + "type": "bytes32" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "getNonce", + "outputs": [ + { + "internalType": "uint64", + "name": "nonce", + "type": "uint64" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "address", + "name": "addr", + "type": "address" + }, + { + "internalType": "uint256", + "name": "publicKeyX", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "publicKeyY", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "privateKey", + "type": "uint256" + } + ], + "internalType": "struct VmSafe.Wallet", + "name": "wallet", + "type": "tuple" + } + ], + "name": "getNonce", + "outputs": [ + { + "internalType": "uint64", + "name": "nonce", + "type": "uint64" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "getRecordedLogs", + "outputs": [ + { + "components": [ + { + "internalType": "bytes32[]", + "name": "topics", + "type": "bytes32[]" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "address", + "name": "emitter", + "type": "address" + } + ], + "internalType": "struct VmSafe.Log[]", + "name": "logs", + "type": "tuple[]" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "input", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "indexOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "enum VmSafe.ForgeContext", + "name": "context", + "type": "uint8" + } + ], + "name": "isContext", + "outputs": [ + { + "internalType": "bool", + "name": "result", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "path", + "type": "string" + } + ], + "name": "isDir", + "outputs": [ + { + "internalType": "bool", + "name": "result", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "path", + "type": "string" + } + ], + "name": "isFile", + "outputs": [ + { + "internalType": "bool", + "name": "result", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "isPersistent", + "outputs": [ + { + "internalType": "bool", + "name": "persistent", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "keyExists", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "keyExistsJson", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "toml", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "keyExistsToml", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "string", + "name": "newLabel", + "type": "string" + } + ], + "name": "label", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "lastCallGas", + "outputs": [ + { + "components": [ + { + "internalType": "uint64", + "name": "gasLimit", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "gasTotalUsed", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "gasMemoryUsed", + "type": "uint64" + }, + { + "internalType": "int64", + "name": "gasRefunded", + "type": "int64" + }, + { + "internalType": "uint64", + "name": "gasRemaining", + "type": "uint64" + } + ], + "internalType": "struct VmSafe.Gas", + "name": "gas", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "slot", + "type": "bytes32" + } + ], + "name": "load", + "outputs": [ + { + "internalType": "bytes32", + "name": "data", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "pathToAllocsJson", + "type": "string" + } + ], + "name": "loadAllocs", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "accounts", + "type": "address[]" + } + ], + "name": "makePersistent", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account0", + "type": "address" + }, + { + "internalType": "address", + "name": "account1", + "type": "address" + } + ], + "name": "makePersistent", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "makePersistent", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account0", + "type": "address" + }, + { + "internalType": "address", + "name": "account1", + "type": "address" + }, + { + "internalType": "address", + "name": "account2", + "type": "address" + } + ], + "name": "makePersistent", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "callee", + "type": "address" + }, + { + "internalType": "uint256", + "name": "msgValue", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "returnData", + "type": "bytes" + } + ], + "name": "mockCall", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "callee", + "type": "address" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "returnData", + "type": "bytes" + } + ], + "name": "mockCall", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "callee", + "type": "address" + }, + { + "internalType": "uint256", + "name": "msgValue", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "revertData", + "type": "bytes" + } + ], + "name": "mockCallRevert", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "callee", + "type": "address" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "revertData", + "type": "bytes" + } + ], + "name": "mockCallRevert", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "stringifiedValue", + "type": "string" + } + ], + "name": "parseAddress", + "outputs": [ + { + "internalType": "address", + "name": "parsedValue", + "type": "address" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "stringifiedValue", + "type": "string" + } + ], + "name": "parseBool", + "outputs": [ + { + "internalType": "bool", + "name": "parsedValue", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "stringifiedValue", + "type": "string" + } + ], + "name": "parseBytes", + "outputs": [ + { + "internalType": "bytes", + "name": "parsedValue", + "type": "bytes" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "stringifiedValue", + "type": "string" + } + ], + "name": "parseBytes32", + "outputs": [ + { + "internalType": "bytes32", + "name": "parsedValue", + "type": "bytes32" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "stringifiedValue", + "type": "string" + } + ], + "name": "parseInt", + "outputs": [ + { + "internalType": "int256", + "name": "parsedValue", + "type": "int256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + } + ], + "name": "parseJson", + "outputs": [ + { + "internalType": "bytes", + "name": "abiEncodedData", + "type": "bytes" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseJson", + "outputs": [ + { + "internalType": "bytes", + "name": "abiEncodedData", + "type": "bytes" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseJsonAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseJsonAddressArray", + "outputs": [ + { + "internalType": "address[]", + "name": "", + "type": "address[]" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseJsonBool", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseJsonBoolArray", + "outputs": [ + { + "internalType": "bool[]", + "name": "", + "type": "bool[]" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseJsonBytes", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseJsonBytes32", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseJsonBytes32Array", + "outputs": [ + { + "internalType": "bytes32[]", + "name": "", + "type": "bytes32[]" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseJsonBytesArray", + "outputs": [ + { + "internalType": "bytes[]", + "name": "", + "type": "bytes[]" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseJsonInt", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseJsonIntArray", + "outputs": [ + { + "internalType": "int256[]", + "name": "", + "type": "int256[]" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseJsonKeys", + "outputs": [ + { + "internalType": "string[]", + "name": "keys", + "type": "string[]" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseJsonString", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseJsonStringArray", + "outputs": [ + { + "internalType": "string[]", + "name": "", + "type": "string[]" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + }, + { + "internalType": "string", + "name": "typeDescription", + "type": "string" + } + ], + "name": "parseJsonType", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + }, + { + "internalType": "string", + "name": "typeDescription", + "type": "string" + } + ], + "name": "parseJsonType", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + }, + { + "internalType": "string", + "name": "typeDescription", + "type": "string" + } + ], + "name": "parseJsonTypeArray", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseJsonUint", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseJsonUintArray", + "outputs": [ + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "toml", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseToml", + "outputs": [ + { + "internalType": "bytes", + "name": "abiEncodedData", + "type": "bytes" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "toml", + "type": "string" + } + ], + "name": "parseToml", + "outputs": [ + { + "internalType": "bytes", + "name": "abiEncodedData", + "type": "bytes" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "toml", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseTomlAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "toml", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseTomlAddressArray", + "outputs": [ + { + "internalType": "address[]", + "name": "", + "type": "address[]" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "toml", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseTomlBool", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "toml", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseTomlBoolArray", + "outputs": [ + { + "internalType": "bool[]", + "name": "", + "type": "bool[]" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "toml", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseTomlBytes", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "toml", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseTomlBytes32", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "toml", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseTomlBytes32Array", + "outputs": [ + { + "internalType": "bytes32[]", + "name": "", + "type": "bytes32[]" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "toml", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseTomlBytesArray", + "outputs": [ + { + "internalType": "bytes[]", + "name": "", + "type": "bytes[]" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "toml", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseTomlInt", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "toml", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseTomlIntArray", + "outputs": [ + { + "internalType": "int256[]", + "name": "", + "type": "int256[]" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "toml", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseTomlKeys", + "outputs": [ + { + "internalType": "string[]", + "name": "keys", + "type": "string[]" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "toml", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseTomlString", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "toml", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseTomlStringArray", + "outputs": [ + { + "internalType": "string[]", + "name": "", + "type": "string[]" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "toml", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseTomlUint", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "toml", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseTomlUintArray", + "outputs": [ + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "stringifiedValue", + "type": "string" + } + ], + "name": "parseUint", + "outputs": [ + { + "internalType": "uint256", + "name": "parsedValue", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "pauseGasMetering", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "msgSender", + "type": "address" + }, + { + "internalType": "address", + "name": "txOrigin", + "type": "address" + } + ], + "name": "prank", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "msgSender", + "type": "address" + } + ], + "name": "prank", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "newPrevrandao", + "type": "bytes32" + } + ], + "name": "prevrandao", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "newPrevrandao", + "type": "uint256" + } + ], + "name": "prevrandao", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "projectRoot", + "outputs": [ + { + "internalType": "string", + "name": "path", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "promptText", + "type": "string" + } + ], + "name": "prompt", + "outputs": [ + { + "internalType": "string", + "name": "input", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "promptText", + "type": "string" + } + ], + "name": "promptAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "promptText", + "type": "string" + } + ], + "name": "promptSecret", + "outputs": [ + { + "internalType": "string", + "name": "input", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "promptText", + "type": "string" + } + ], + "name": "promptSecretUint", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "promptText", + "type": "string" + } + ], + "name": "promptUint", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "randomAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "randomUint", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "min", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "max", + "type": "uint256" + } + ], + "name": "randomUint", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "readCallers", + "outputs": [ + { + "internalType": "enum VmSafe.CallerMode", + "name": "callerMode", + "type": "uint8" + }, + { + "internalType": "address", + "name": "msgSender", + "type": "address" + }, + { + "internalType": "address", + "name": "txOrigin", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "path", + "type": "string" + }, + { + "internalType": "uint64", + "name": "maxDepth", + "type": "uint64" + } + ], + "name": "readDir", + "outputs": [ + { + "components": [ + { + "internalType": "string", + "name": "errorMessage", + "type": "string" + }, + { + "internalType": "string", + "name": "path", + "type": "string" + }, + { + "internalType": "uint64", + "name": "depth", + "type": "uint64" + }, + { + "internalType": "bool", + "name": "isDir", + "type": "bool" + }, + { + "internalType": "bool", + "name": "isSymlink", + "type": "bool" + } + ], + "internalType": "struct VmSafe.DirEntry[]", + "name": "entries", + "type": "tuple[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "path", + "type": "string" + }, + { + "internalType": "uint64", + "name": "maxDepth", + "type": "uint64" + }, + { + "internalType": "bool", + "name": "followLinks", + "type": "bool" + } + ], + "name": "readDir", + "outputs": [ + { + "components": [ + { + "internalType": "string", + "name": "errorMessage", + "type": "string" + }, + { + "internalType": "string", + "name": "path", + "type": "string" + }, + { + "internalType": "uint64", + "name": "depth", + "type": "uint64" + }, + { + "internalType": "bool", + "name": "isDir", + "type": "bool" + }, + { + "internalType": "bool", + "name": "isSymlink", + "type": "bool" + } + ], + "internalType": "struct VmSafe.DirEntry[]", + "name": "entries", + "type": "tuple[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "path", + "type": "string" + } + ], + "name": "readDir", + "outputs": [ + { + "components": [ + { + "internalType": "string", + "name": "errorMessage", + "type": "string" + }, + { + "internalType": "string", + "name": "path", + "type": "string" + }, + { + "internalType": "uint64", + "name": "depth", + "type": "uint64" + }, + { + "internalType": "bool", + "name": "isDir", + "type": "bool" + }, + { + "internalType": "bool", + "name": "isSymlink", + "type": "bool" + } + ], + "internalType": "struct VmSafe.DirEntry[]", + "name": "entries", + "type": "tuple[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "path", + "type": "string" + } + ], + "name": "readFile", + "outputs": [ + { + "internalType": "string", + "name": "data", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "path", + "type": "string" + } + ], + "name": "readFileBinary", + "outputs": [ + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "path", + "type": "string" + } + ], + "name": "readLine", + "outputs": [ + { + "internalType": "string", + "name": "line", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "linkPath", + "type": "string" + } + ], + "name": "readLink", + "outputs": [ + { + "internalType": "string", + "name": "targetPath", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "record", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "recordLogs", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "privateKey", + "type": "uint256" + } + ], + "name": "rememberKey", + "outputs": [ + { + "internalType": "address", + "name": "keyAddr", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "path", + "type": "string" + }, + { + "internalType": "bool", + "name": "recursive", + "type": "bool" + } + ], + "name": "removeDir", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "path", + "type": "string" + } + ], + "name": "removeFile", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "input", + "type": "string" + }, + { + "internalType": "string", + "name": "from", + "type": "string" + }, + { + "internalType": "string", + "name": "to", + "type": "string" + } + ], + "name": "replace", + "outputs": [ + { + "internalType": "string", + "name": "output", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "resetNonce", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "resumeGasMetering", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "snapshotId", + "type": "uint256" + } + ], + "name": "revertTo", + "outputs": [ + { + "internalType": "bool", + "name": "success", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "snapshotId", + "type": "uint256" + } + ], + "name": "revertToAndDelete", + "outputs": [ + { + "internalType": "bool", + "name": "success", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "accounts", + "type": "address[]" + } + ], + "name": "revokePersistent", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokePersistent", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "newHeight", + "type": "uint256" + } + ], + "name": "roll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "txHash", + "type": "bytes32" + } + ], + "name": "rollFork", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "forkId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "blockNumber", + "type": "uint256" + } + ], + "name": "rollFork", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "blockNumber", + "type": "uint256" + } + ], + "name": "rollFork", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "forkId", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "txHash", + "type": "bytes32" + } + ], + "name": "rollFork", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "urlOrAlias", + "type": "string" + }, + { + "internalType": "string", + "name": "method", + "type": "string" + }, + { + "internalType": "string", + "name": "params", + "type": "string" + } + ], + "name": "rpc", + "outputs": [ + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "method", + "type": "string" + }, + { + "internalType": "string", + "name": "params", + "type": "string" + } + ], + "name": "rpc", + "outputs": [ + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "rpcAlias", + "type": "string" + } + ], + "name": "rpcUrl", + "outputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "rpcUrlStructs", + "outputs": [ + { + "components": [ + { + "internalType": "string", + "name": "key", + "type": "string" + }, + { + "internalType": "string", + "name": "url", + "type": "string" + } + ], + "internalType": "struct VmSafe.Rpc[]", + "name": "urls", + "type": "tuple[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "rpcUrls", + "outputs": [ + { + "internalType": "string[2][]", + "name": "urls", + "type": "string[2][]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "forkId", + "type": "uint256" + } + ], + "name": "selectFork", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "objectKey", + "type": "string" + }, + { + "internalType": "string", + "name": "valueKey", + "type": "string" + }, + { + "internalType": "address[]", + "name": "values", + "type": "address[]" + } + ], + "name": "serializeAddress", + "outputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "objectKey", + "type": "string" + }, + { + "internalType": "string", + "name": "valueKey", + "type": "string" + }, + { + "internalType": "address", + "name": "value", + "type": "address" + } + ], + "name": "serializeAddress", + "outputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "objectKey", + "type": "string" + }, + { + "internalType": "string", + "name": "valueKey", + "type": "string" + }, + { + "internalType": "bool[]", + "name": "values", + "type": "bool[]" + } + ], + "name": "serializeBool", + "outputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "objectKey", + "type": "string" + }, + { + "internalType": "string", + "name": "valueKey", + "type": "string" + }, + { + "internalType": "bool", + "name": "value", + "type": "bool" + } + ], + "name": "serializeBool", + "outputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "objectKey", + "type": "string" + }, + { + "internalType": "string", + "name": "valueKey", + "type": "string" + }, + { + "internalType": "bytes[]", + "name": "values", + "type": "bytes[]" + } + ], + "name": "serializeBytes", + "outputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "objectKey", + "type": "string" + }, + { + "internalType": "string", + "name": "valueKey", + "type": "string" + }, + { + "internalType": "bytes", + "name": "value", + "type": "bytes" + } + ], + "name": "serializeBytes", + "outputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "objectKey", + "type": "string" + }, + { + "internalType": "string", + "name": "valueKey", + "type": "string" + }, + { + "internalType": "bytes32[]", + "name": "values", + "type": "bytes32[]" + } + ], + "name": "serializeBytes32", + "outputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "objectKey", + "type": "string" + }, + { + "internalType": "string", + "name": "valueKey", + "type": "string" + }, + { + "internalType": "bytes32", + "name": "value", + "type": "bytes32" + } + ], + "name": "serializeBytes32", + "outputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "objectKey", + "type": "string" + }, + { + "internalType": "string", + "name": "valueKey", + "type": "string" + }, + { + "internalType": "int256", + "name": "value", + "type": "int256" + } + ], + "name": "serializeInt", + "outputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "objectKey", + "type": "string" + }, + { + "internalType": "string", + "name": "valueKey", + "type": "string" + }, + { + "internalType": "int256[]", + "name": "values", + "type": "int256[]" + } + ], + "name": "serializeInt", + "outputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "objectKey", + "type": "string" + }, + { + "internalType": "string", + "name": "value", + "type": "string" + } + ], + "name": "serializeJson", + "outputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "typeDescription", + "type": "string" + }, + { + "internalType": "bytes", + "name": "value", + "type": "bytes" + } + ], + "name": "serializeJsonType", + "outputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "objectKey", + "type": "string" + }, + { + "internalType": "string", + "name": "valueKey", + "type": "string" + }, + { + "internalType": "string", + "name": "typeDescription", + "type": "string" + }, + { + "internalType": "bytes", + "name": "value", + "type": "bytes" + } + ], + "name": "serializeJsonType", + "outputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "objectKey", + "type": "string" + }, + { + "internalType": "string", + "name": "valueKey", + "type": "string" + }, + { + "internalType": "string[]", + "name": "values", + "type": "string[]" + } + ], + "name": "serializeString", + "outputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "objectKey", + "type": "string" + }, + { + "internalType": "string", + "name": "valueKey", + "type": "string" + }, + { + "internalType": "string", + "name": "value", + "type": "string" + } + ], + "name": "serializeString", + "outputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "objectKey", + "type": "string" + }, + { + "internalType": "string", + "name": "valueKey", + "type": "string" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "serializeUint", + "outputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "objectKey", + "type": "string" + }, + { + "internalType": "string", + "name": "valueKey", + "type": "string" + }, + { + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + } + ], + "name": "serializeUint", + "outputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "objectKey", + "type": "string" + }, + { + "internalType": "string", + "name": "valueKey", + "type": "string" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "serializeUintToHex", + "outputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "blockNumber", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "blockHash", + "type": "bytes32" + } + ], + "name": "setBlockhash", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "value", + "type": "string" + } + ], + "name": "setEnv", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint64", + "name": "newNonce", + "type": "uint64" + } + ], + "name": "setNonce", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint64", + "name": "newNonce", + "type": "uint64" + } + ], + "name": "setNonceUnsafe", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "digest", + "type": "bytes32" + } + ], + "name": "sign", + "outputs": [ + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "signer", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "digest", + "type": "bytes32" + } + ], + "name": "sign", + "outputs": [ + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "address", + "name": "addr", + "type": "address" + }, + { + "internalType": "uint256", + "name": "publicKeyX", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "publicKeyY", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "privateKey", + "type": "uint256" + } + ], + "internalType": "struct VmSafe.Wallet", + "name": "wallet", + "type": "tuple" + }, + { + "internalType": "bytes32", + "name": "digest", + "type": "bytes32" + } + ], + "name": "sign", + "outputs": [ + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "privateKey", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "digest", + "type": "bytes32" + } + ], + "name": "sign", + "outputs": [ + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "address", + "name": "addr", + "type": "address" + }, + { + "internalType": "uint256", + "name": "publicKeyX", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "publicKeyY", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "privateKey", + "type": "uint256" + } + ], + "internalType": "struct VmSafe.Wallet", + "name": "wallet", + "type": "tuple" + }, + { + "internalType": "bytes32", + "name": "digest", + "type": "bytes32" + } + ], + "name": "signCompact", + "outputs": [ + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "vs", + "type": "bytes32" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "signer", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "digest", + "type": "bytes32" + } + ], + "name": "signCompact", + "outputs": [ + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "vs", + "type": "bytes32" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "digest", + "type": "bytes32" + } + ], + "name": "signCompact", + "outputs": [ + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "vs", + "type": "bytes32" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "privateKey", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "digest", + "type": "bytes32" + } + ], + "name": "signCompact", + "outputs": [ + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "vs", + "type": "bytes32" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "privateKey", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "digest", + "type": "bytes32" + } + ], + "name": "signP256", + "outputs": [ + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool", + "name": "skipTest", + "type": "bool" + } + ], + "name": "skip", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "duration", + "type": "uint256" + } + ], + "name": "sleep", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "snapshot", + "outputs": [ + { + "internalType": "uint256", + "name": "snapshotId", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "input", + "type": "string" + }, + { + "internalType": "string", + "name": "delimiter", + "type": "string" + } + ], + "name": "split", + "outputs": [ + { + "internalType": "string[]", + "name": "outputs", + "type": "string[]" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "startBroadcast", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "signer", + "type": "address" + } + ], + "name": "startBroadcast", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "privateKey", + "type": "uint256" + } + ], + "name": "startBroadcast", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "startMappingRecording", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "msgSender", + "type": "address" + } + ], + "name": "startPrank", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "msgSender", + "type": "address" + }, + { + "internalType": "address", + "name": "txOrigin", + "type": "address" + } + ], + "name": "startPrank", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "startStateDiffRecording", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "stopAndReturnStateDiff", + "outputs": [ + { + "components": [ + { + "components": [ + { + "internalType": "uint256", + "name": "forkId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + } + ], + "internalType": "struct VmSafe.ChainInfo", + "name": "chainInfo", + "type": "tuple" + }, + { + "internalType": "enum VmSafe.AccountAccessKind", + "name": "kind", + "type": "uint8" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "address", + "name": "accessor", + "type": "address" + }, + { + "internalType": "bool", + "name": "initialized", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "oldBalance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "newBalance", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "deployedCode", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "bool", + "name": "reverted", + "type": "bool" + }, + { + "components": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "slot", + "type": "bytes32" + }, + { + "internalType": "bool", + "name": "isWrite", + "type": "bool" + }, + { + "internalType": "bytes32", + "name": "previousValue", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "newValue", + "type": "bytes32" + }, + { + "internalType": "bool", + "name": "reverted", + "type": "bool" + } + ], + "internalType": "struct VmSafe.StorageAccess[]", + "name": "storageAccesses", + "type": "tuple[]" + }, + { + "internalType": "uint64", + "name": "depth", + "type": "uint64" + } + ], + "internalType": "struct VmSafe.AccountAccess[]", + "name": "accountAccesses", + "type": "tuple[]" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "stopBroadcast", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "stopExpectSafeMemory", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "stopMappingRecording", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "stopPrank", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "slot", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "value", + "type": "bytes32" + } + ], + "name": "store", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "data", + "type": "string" + } + ], + "name": "toBase64", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "toBase64", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "data", + "type": "string" + } + ], + "name": "toBase64URL", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "toBase64URL", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "input", + "type": "string" + } + ], + "name": "toLowercase", + "outputs": [ + { + "internalType": "string", + "name": "output", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "value", + "type": "address" + } + ], + "name": "toString", + "outputs": [ + { + "internalType": "string", + "name": "stringifiedValue", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "toString", + "outputs": [ + { + "internalType": "string", + "name": "stringifiedValue", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "value", + "type": "bytes" + } + ], + "name": "toString", + "outputs": [ + { + "internalType": "string", + "name": "stringifiedValue", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool", + "name": "value", + "type": "bool" + } + ], + "name": "toString", + "outputs": [ + { + "internalType": "string", + "name": "stringifiedValue", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "value", + "type": "int256" + } + ], + "name": "toString", + "outputs": [ + { + "internalType": "string", + "name": "stringifiedValue", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "value", + "type": "bytes32" + } + ], + "name": "toString", + "outputs": [ + { + "internalType": "string", + "name": "stringifiedValue", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "input", + "type": "string" + } + ], + "name": "toUppercase", + "outputs": [ + { + "internalType": "string", + "name": "output", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "forkId", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "txHash", + "type": "bytes32" + } + ], + "name": "transact", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "txHash", + "type": "bytes32" + } + ], + "name": "transact", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "input", + "type": "string" + } + ], + "name": "trim", + "outputs": [ + { + "internalType": "string", + "name": "output", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string[]", + "name": "commandInput", + "type": "string[]" + } + ], + "name": "tryFfi", + "outputs": [ + { + "components": [ + { + "internalType": "int32", + "name": "exitCode", + "type": "int32" + }, + { + "internalType": "bytes", + "name": "stdout", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "stderr", + "type": "bytes" + } + ], + "internalType": "struct VmSafe.FfiResult", + "name": "result", + "type": "tuple" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "newGasPrice", + "type": "uint256" + } + ], + "name": "txGasPrice", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "unixTime", + "outputs": [ + { + "internalType": "uint256", + "name": "milliseconds", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "newTimestamp", + "type": "uint256" + } + ], + "name": "warp", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "path", + "type": "string" + }, + { + "internalType": "string", + "name": "data", + "type": "string" + } + ], + "name": "writeFile", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "path", + "type": "string" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "writeFileBinary", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + }, + { + "internalType": "string", + "name": "path", + "type": "string" + }, + { + "internalType": "string", + "name": "valueKey", + "type": "string" + } + ], + "name": "writeJson", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + }, + { + "internalType": "string", + "name": "path", + "type": "string" + } + ], + "name": "writeJson", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "path", + "type": "string" + }, + { + "internalType": "string", + "name": "data", + "type": "string" + } + ], + "name": "writeLine", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + }, + { + "internalType": "string", + "name": "path", + "type": "string" + }, + { + "internalType": "string", + "name": "valueKey", + "type": "string" + } + ], + "name": "writeToml", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + }, + { + "internalType": "string", + "name": "path", + "type": "string" + } + ], + "name": "writeToml", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/src/Upgrades.sol/VmSafe.dbg.json b/artifacts/src/Upgrades.sol/VmSafe.dbg.json new file mode 100644 index 0000000..fc8f341 --- /dev/null +++ b/artifacts/src/Upgrades.sol/VmSafe.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../build-info/7d80f87a51d3a5d7ae3341681c898b45.json" +} diff --git a/artifacts/src/Upgrades.sol/VmSafe.json b/artifacts/src/Upgrades.sol/VmSafe.json new file mode 100644 index 0000000..727ec2f --- /dev/null +++ b/artifacts/src/Upgrades.sol/VmSafe.json @@ -0,0 +1,7677 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "VmSafe", + "sourceName": "src/Upgrades.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + } + ], + "name": "accesses", + "outputs": [ + { + "internalType": "bytes32[]", + "name": "readSlots", + "type": "bytes32[]" + }, + { + "internalType": "bytes32[]", + "name": "writeSlots", + "type": "bytes32[]" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "privateKey", + "type": "uint256" + } + ], + "name": "addr", + "outputs": [ + { + "internalType": "address", + "name": "keyAddr", + "type": "address" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxDelta", + "type": "uint256" + } + ], + "name": "assertApproxEqAbs", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "maxDelta", + "type": "uint256" + } + ], + "name": "assertApproxEqAbs", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "maxDelta", + "type": "uint256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertApproxEqAbs", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxDelta", + "type": "uint256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertApproxEqAbs", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxDelta", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + } + ], + "name": "assertApproxEqAbsDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "maxDelta", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + } + ], + "name": "assertApproxEqAbsDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxDelta", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertApproxEqAbsDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "maxDelta", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertApproxEqAbsDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxPercentDelta", + "type": "uint256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertApproxEqRel", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxPercentDelta", + "type": "uint256" + } + ], + "name": "assertApproxEqRel", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "maxPercentDelta", + "type": "uint256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertApproxEqRel", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "maxPercentDelta", + "type": "uint256" + } + ], + "name": "assertApproxEqRel", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxPercentDelta", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + } + ], + "name": "assertApproxEqRelDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxPercentDelta", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertApproxEqRelDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "maxPercentDelta", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + } + ], + "name": "assertApproxEqRelDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "maxPercentDelta", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertApproxEqRelDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32[]", + "name": "left", + "type": "bytes32[]" + }, + { + "internalType": "bytes32[]", + "name": "right", + "type": "bytes32[]" + } + ], + "name": "assertEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256[]", + "name": "left", + "type": "int256[]" + }, + { + "internalType": "int256[]", + "name": "right", + "type": "int256[]" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "left", + "type": "address" + }, + { + "internalType": "address", + "name": "right", + "type": "address" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "left", + "type": "string" + }, + { + "internalType": "string", + "name": "right", + "type": "string" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "left", + "type": "address[]" + }, + { + "internalType": "address[]", + "name": "right", + "type": "address[]" + } + ], + "name": "assertEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "left", + "type": "address[]" + }, + { + "internalType": "address[]", + "name": "right", + "type": "address[]" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool", + "name": "left", + "type": "bool" + }, + { + "internalType": "bool", + "name": "right", + "type": "bool" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "left", + "type": "address" + }, + { + "internalType": "address", + "name": "right", + "type": "address" + } + ], + "name": "assertEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256[]", + "name": "left", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "right", + "type": "uint256[]" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool[]", + "name": "left", + "type": "bool[]" + }, + { + "internalType": "bool[]", + "name": "right", + "type": "bool[]" + } + ], + "name": "assertEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256[]", + "name": "left", + "type": "int256[]" + }, + { + "internalType": "int256[]", + "name": "right", + "type": "int256[]" + } + ], + "name": "assertEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "left", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "right", + "type": "bytes32" + } + ], + "name": "assertEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256[]", + "name": "left", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "right", + "type": "uint256[]" + } + ], + "name": "assertEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "left", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "right", + "type": "bytes" + } + ], + "name": "assertEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + } + ], + "name": "assertEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "left", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "right", + "type": "bytes32" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string[]", + "name": "left", + "type": "string[]" + }, + { + "internalType": "string[]", + "name": "right", + "type": "string[]" + } + ], + "name": "assertEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32[]", + "name": "left", + "type": "bytes32[]" + }, + { + "internalType": "bytes32[]", + "name": "right", + "type": "bytes32[]" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "left", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "right", + "type": "bytes" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool[]", + "name": "left", + "type": "bool[]" + }, + { + "internalType": "bool[]", + "name": "right", + "type": "bool[]" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes[]", + "name": "left", + "type": "bytes[]" + }, + { + "internalType": "bytes[]", + "name": "right", + "type": "bytes[]" + } + ], + "name": "assertEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string[]", + "name": "left", + "type": "string[]" + }, + { + "internalType": "string[]", + "name": "right", + "type": "string[]" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "left", + "type": "string" + }, + { + "internalType": "string", + "name": "right", + "type": "string" + } + ], + "name": "assertEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes[]", + "name": "left", + "type": "bytes[]" + }, + { + "internalType": "bytes[]", + "name": "right", + "type": "bytes[]" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool", + "name": "left", + "type": "bool" + }, + { + "internalType": "bool", + "name": "right", + "type": "bool" + } + ], + "name": "assertEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + } + ], + "name": "assertEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + } + ], + "name": "assertEqDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + } + ], + "name": "assertEqDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertEqDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertEqDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool", + "name": "condition", + "type": "bool" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertFalse", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool", + "name": "condition", + "type": "bool" + } + ], + "name": "assertFalse", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + } + ], + "name": "assertGe", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertGe", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + } + ], + "name": "assertGe", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertGe", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + } + ], + "name": "assertGeDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertGeDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertGeDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + } + ], + "name": "assertGeDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + } + ], + "name": "assertGt", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertGt", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + } + ], + "name": "assertGt", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertGt", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertGtDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertGtDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + } + ], + "name": "assertGtDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + } + ], + "name": "assertGtDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertLe", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + } + ], + "name": "assertLe", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + } + ], + "name": "assertLe", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertLe", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + } + ], + "name": "assertLeDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertLeDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertLeDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + } + ], + "name": "assertLeDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + } + ], + "name": "assertLt", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertLt", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertLt", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + } + ], + "name": "assertLt", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + } + ], + "name": "assertLtDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertLtDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertLtDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + } + ], + "name": "assertLtDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32[]", + "name": "left", + "type": "bytes32[]" + }, + { + "internalType": "bytes32[]", + "name": "right", + "type": "bytes32[]" + } + ], + "name": "assertNotEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256[]", + "name": "left", + "type": "int256[]" + }, + { + "internalType": "int256[]", + "name": "right", + "type": "int256[]" + } + ], + "name": "assertNotEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool", + "name": "left", + "type": "bool" + }, + { + "internalType": "bool", + "name": "right", + "type": "bool" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertNotEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes[]", + "name": "left", + "type": "bytes[]" + }, + { + "internalType": "bytes[]", + "name": "right", + "type": "bytes[]" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertNotEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool", + "name": "left", + "type": "bool" + }, + { + "internalType": "bool", + "name": "right", + "type": "bool" + } + ], + "name": "assertNotEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool[]", + "name": "left", + "type": "bool[]" + }, + { + "internalType": "bool[]", + "name": "right", + "type": "bool[]" + } + ], + "name": "assertNotEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "left", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "right", + "type": "bytes" + } + ], + "name": "assertNotEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "left", + "type": "address[]" + }, + { + "internalType": "address[]", + "name": "right", + "type": "address[]" + } + ], + "name": "assertNotEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertNotEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256[]", + "name": "left", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "right", + "type": "uint256[]" + } + ], + "name": "assertNotEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool[]", + "name": "left", + "type": "bool[]" + }, + { + "internalType": "bool[]", + "name": "right", + "type": "bool[]" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertNotEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "left", + "type": "string" + }, + { + "internalType": "string", + "name": "right", + "type": "string" + } + ], + "name": "assertNotEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "left", + "type": "address[]" + }, + { + "internalType": "address[]", + "name": "right", + "type": "address[]" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertNotEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "left", + "type": "string" + }, + { + "internalType": "string", + "name": "right", + "type": "string" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertNotEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "left", + "type": "address" + }, + { + "internalType": "address", + "name": "right", + "type": "address" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertNotEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "left", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "right", + "type": "bytes32" + } + ], + "name": "assertNotEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "left", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "right", + "type": "bytes" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertNotEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertNotEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256[]", + "name": "left", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "right", + "type": "uint256[]" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertNotEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "left", + "type": "address" + }, + { + "internalType": "address", + "name": "right", + "type": "address" + } + ], + "name": "assertNotEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "left", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "right", + "type": "bytes32" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertNotEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string[]", + "name": "left", + "type": "string[]" + }, + { + "internalType": "string[]", + "name": "right", + "type": "string[]" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertNotEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + } + ], + "name": "assertNotEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32[]", + "name": "left", + "type": "bytes32[]" + }, + { + "internalType": "bytes32[]", + "name": "right", + "type": "bytes32[]" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertNotEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string[]", + "name": "left", + "type": "string[]" + }, + { + "internalType": "string[]", + "name": "right", + "type": "string[]" + } + ], + "name": "assertNotEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256[]", + "name": "left", + "type": "int256[]" + }, + { + "internalType": "int256[]", + "name": "right", + "type": "int256[]" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertNotEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes[]", + "name": "left", + "type": "bytes[]" + }, + { + "internalType": "bytes[]", + "name": "right", + "type": "bytes[]" + } + ], + "name": "assertNotEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + } + ], + "name": "assertNotEq", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + } + ], + "name": "assertNotEqDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "left", + "type": "int256" + }, + { + "internalType": "int256", + "name": "right", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertNotEqDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + } + ], + "name": "assertNotEqDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "right", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertNotEqDecimal", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool", + "name": "condition", + "type": "bool" + } + ], + "name": "assertTrue", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool", + "name": "condition", + "type": "bool" + }, + { + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "assertTrue", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool", + "name": "condition", + "type": "bool" + } + ], + "name": "assume", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "char", + "type": "string" + } + ], + "name": "breakpoint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "char", + "type": "string" + }, + { + "internalType": "bool", + "name": "value", + "type": "bool" + } + ], + "name": "breakpoint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "broadcast", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "signer", + "type": "address" + } + ], + "name": "broadcast", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "privateKey", + "type": "uint256" + } + ], + "name": "broadcast", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "broadcastRawTransaction", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "path", + "type": "string" + } + ], + "name": "closeFile", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "salt", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "initCodeHash", + "type": "bytes32" + } + ], + "name": "computeCreate2Address", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "salt", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "initCodeHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "deployer", + "type": "address" + } + ], + "name": "computeCreate2Address", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "deployer", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + } + ], + "name": "computeCreateAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "from", + "type": "string" + }, + { + "internalType": "string", + "name": "to", + "type": "string" + } + ], + "name": "copyFile", + "outputs": [ + { + "internalType": "uint64", + "name": "copied", + "type": "uint64" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "path", + "type": "string" + }, + { + "internalType": "bool", + "name": "recursive", + "type": "bool" + } + ], + "name": "createDir", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "walletLabel", + "type": "string" + } + ], + "name": "createWallet", + "outputs": [ + { + "components": [ + { + "internalType": "address", + "name": "addr", + "type": "address" + }, + { + "internalType": "uint256", + "name": "publicKeyX", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "publicKeyY", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "privateKey", + "type": "uint256" + } + ], + "internalType": "struct VmSafe.Wallet", + "name": "wallet", + "type": "tuple" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "privateKey", + "type": "uint256" + } + ], + "name": "createWallet", + "outputs": [ + { + "components": [ + { + "internalType": "address", + "name": "addr", + "type": "address" + }, + { + "internalType": "uint256", + "name": "publicKeyX", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "publicKeyY", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "privateKey", + "type": "uint256" + } + ], + "internalType": "struct VmSafe.Wallet", + "name": "wallet", + "type": "tuple" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "privateKey", + "type": "uint256" + }, + { + "internalType": "string", + "name": "walletLabel", + "type": "string" + } + ], + "name": "createWallet", + "outputs": [ + { + "components": [ + { + "internalType": "address", + "name": "addr", + "type": "address" + }, + { + "internalType": "uint256", + "name": "publicKeyX", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "publicKeyY", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "privateKey", + "type": "uint256" + } + ], + "internalType": "struct VmSafe.Wallet", + "name": "wallet", + "type": "tuple" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "artifactPath", + "type": "string" + }, + { + "internalType": "bytes", + "name": "constructorArgs", + "type": "bytes" + } + ], + "name": "deployCode", + "outputs": [ + { + "internalType": "address", + "name": "deployedAddress", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "artifactPath", + "type": "string" + } + ], + "name": "deployCode", + "outputs": [ + { + "internalType": "address", + "name": "deployedAddress", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "mnemonic", + "type": "string" + }, + { + "internalType": "string", + "name": "derivationPath", + "type": "string" + }, + { + "internalType": "uint32", + "name": "index", + "type": "uint32" + }, + { + "internalType": "string", + "name": "language", + "type": "string" + } + ], + "name": "deriveKey", + "outputs": [ + { + "internalType": "uint256", + "name": "privateKey", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "mnemonic", + "type": "string" + }, + { + "internalType": "uint32", + "name": "index", + "type": "uint32" + }, + { + "internalType": "string", + "name": "language", + "type": "string" + } + ], + "name": "deriveKey", + "outputs": [ + { + "internalType": "uint256", + "name": "privateKey", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "mnemonic", + "type": "string" + }, + { + "internalType": "uint32", + "name": "index", + "type": "uint32" + } + ], + "name": "deriveKey", + "outputs": [ + { + "internalType": "uint256", + "name": "privateKey", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "mnemonic", + "type": "string" + }, + { + "internalType": "string", + "name": "derivationPath", + "type": "string" + }, + { + "internalType": "uint32", + "name": "index", + "type": "uint32" + } + ], + "name": "deriveKey", + "outputs": [ + { + "internalType": "uint256", + "name": "privateKey", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + } + ], + "name": "ensNamehash", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + } + ], + "name": "envAddress", + "outputs": [ + { + "internalType": "address", + "name": "value", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "delim", + "type": "string" + } + ], + "name": "envAddress", + "outputs": [ + { + "internalType": "address[]", + "name": "value", + "type": "address[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + } + ], + "name": "envBool", + "outputs": [ + { + "internalType": "bool", + "name": "value", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "delim", + "type": "string" + } + ], + "name": "envBool", + "outputs": [ + { + "internalType": "bool[]", + "name": "value", + "type": "bool[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + } + ], + "name": "envBytes", + "outputs": [ + { + "internalType": "bytes", + "name": "value", + "type": "bytes" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "delim", + "type": "string" + } + ], + "name": "envBytes", + "outputs": [ + { + "internalType": "bytes[]", + "name": "value", + "type": "bytes[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "delim", + "type": "string" + } + ], + "name": "envBytes32", + "outputs": [ + { + "internalType": "bytes32[]", + "name": "value", + "type": "bytes32[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + } + ], + "name": "envBytes32", + "outputs": [ + { + "internalType": "bytes32", + "name": "value", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + } + ], + "name": "envExists", + "outputs": [ + { + "internalType": "bool", + "name": "result", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "delim", + "type": "string" + } + ], + "name": "envInt", + "outputs": [ + { + "internalType": "int256[]", + "name": "value", + "type": "int256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + } + ], + "name": "envInt", + "outputs": [ + { + "internalType": "int256", + "name": "value", + "type": "int256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "delim", + "type": "string" + }, + { + "internalType": "bytes32[]", + "name": "defaultValue", + "type": "bytes32[]" + } + ], + "name": "envOr", + "outputs": [ + { + "internalType": "bytes32[]", + "name": "value", + "type": "bytes32[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "delim", + "type": "string" + }, + { + "internalType": "int256[]", + "name": "defaultValue", + "type": "int256[]" + } + ], + "name": "envOr", + "outputs": [ + { + "internalType": "int256[]", + "name": "value", + "type": "int256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "bool", + "name": "defaultValue", + "type": "bool" + } + ], + "name": "envOr", + "outputs": [ + { + "internalType": "bool", + "name": "value", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "address", + "name": "defaultValue", + "type": "address" + } + ], + "name": "envOr", + "outputs": [ + { + "internalType": "address", + "name": "value", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "uint256", + "name": "defaultValue", + "type": "uint256" + } + ], + "name": "envOr", + "outputs": [ + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "delim", + "type": "string" + }, + { + "internalType": "bytes[]", + "name": "defaultValue", + "type": "bytes[]" + } + ], + "name": "envOr", + "outputs": [ + { + "internalType": "bytes[]", + "name": "value", + "type": "bytes[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "delim", + "type": "string" + }, + { + "internalType": "uint256[]", + "name": "defaultValue", + "type": "uint256[]" + } + ], + "name": "envOr", + "outputs": [ + { + "internalType": "uint256[]", + "name": "value", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "delim", + "type": "string" + }, + { + "internalType": "string[]", + "name": "defaultValue", + "type": "string[]" + } + ], + "name": "envOr", + "outputs": [ + { + "internalType": "string[]", + "name": "value", + "type": "string[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "bytes", + "name": "defaultValue", + "type": "bytes" + } + ], + "name": "envOr", + "outputs": [ + { + "internalType": "bytes", + "name": "value", + "type": "bytes" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "bytes32", + "name": "defaultValue", + "type": "bytes32" + } + ], + "name": "envOr", + "outputs": [ + { + "internalType": "bytes32", + "name": "value", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "int256", + "name": "defaultValue", + "type": "int256" + } + ], + "name": "envOr", + "outputs": [ + { + "internalType": "int256", + "name": "value", + "type": "int256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "delim", + "type": "string" + }, + { + "internalType": "address[]", + "name": "defaultValue", + "type": "address[]" + } + ], + "name": "envOr", + "outputs": [ + { + "internalType": "address[]", + "name": "value", + "type": "address[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "defaultValue", + "type": "string" + } + ], + "name": "envOr", + "outputs": [ + { + "internalType": "string", + "name": "value", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "delim", + "type": "string" + }, + { + "internalType": "bool[]", + "name": "defaultValue", + "type": "bool[]" + } + ], + "name": "envOr", + "outputs": [ + { + "internalType": "bool[]", + "name": "value", + "type": "bool[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "delim", + "type": "string" + } + ], + "name": "envString", + "outputs": [ + { + "internalType": "string[]", + "name": "value", + "type": "string[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + } + ], + "name": "envString", + "outputs": [ + { + "internalType": "string", + "name": "value", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + } + ], + "name": "envUint", + "outputs": [ + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "delim", + "type": "string" + } + ], + "name": "envUint", + "outputs": [ + { + "internalType": "uint256[]", + "name": "value", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "fromBlock", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "toBlock", + "type": "uint256" + }, + { + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "internalType": "bytes32[]", + "name": "topics", + "type": "bytes32[]" + } + ], + "name": "eth_getLogs", + "outputs": [ + { + "components": [ + { + "internalType": "address", + "name": "emitter", + "type": "address" + }, + { + "internalType": "bytes32[]", + "name": "topics", + "type": "bytes32[]" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "blockHash", + "type": "bytes32" + }, + { + "internalType": "uint64", + "name": "blockNumber", + "type": "uint64" + }, + { + "internalType": "bytes32", + "name": "transactionHash", + "type": "bytes32" + }, + { + "internalType": "uint64", + "name": "transactionIndex", + "type": "uint64" + }, + { + "internalType": "uint256", + "name": "logIndex", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "removed", + "type": "bool" + } + ], + "internalType": "struct VmSafe.EthGetLogs[]", + "name": "logs", + "type": "tuple[]" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "path", + "type": "string" + } + ], + "name": "exists", + "outputs": [ + { + "internalType": "bool", + "name": "result", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string[]", + "name": "commandInput", + "type": "string[]" + } + ], + "name": "ffi", + "outputs": [ + { + "internalType": "bytes", + "name": "result", + "type": "bytes" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "path", + "type": "string" + } + ], + "name": "fsMetadata", + "outputs": [ + { + "components": [ + { + "internalType": "bool", + "name": "isDir", + "type": "bool" + }, + { + "internalType": "bool", + "name": "isSymlink", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "length", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "readOnly", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "modified", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "accessed", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "created", + "type": "uint256" + } + ], + "internalType": "struct VmSafe.FsMetadata", + "name": "metadata", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getBlobBaseFee", + "outputs": [ + { + "internalType": "uint256", + "name": "blobBaseFee", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getBlockNumber", + "outputs": [ + { + "internalType": "uint256", + "name": "height", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getBlockTimestamp", + "outputs": [ + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "artifactPath", + "type": "string" + } + ], + "name": "getCode", + "outputs": [ + { + "internalType": "bytes", + "name": "creationBytecode", + "type": "bytes" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "artifactPath", + "type": "string" + } + ], + "name": "getDeployedCode", + "outputs": [ + { + "internalType": "bytes", + "name": "runtimeBytecode", + "type": "bytes" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getFoundryVersion", + "outputs": [ + { + "internalType": "string", + "name": "version", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "getLabel", + "outputs": [ + { + "internalType": "string", + "name": "currentLabel", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "elementSlot", + "type": "bytes32" + } + ], + "name": "getMappingKeyAndParentOf", + "outputs": [ + { + "internalType": "bool", + "name": "found", + "type": "bool" + }, + { + "internalType": "bytes32", + "name": "key", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "parent", + "type": "bytes32" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "mappingSlot", + "type": "bytes32" + } + ], + "name": "getMappingLength", + "outputs": [ + { + "internalType": "uint256", + "name": "length", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "mappingSlot", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "idx", + "type": "uint256" + } + ], + "name": "getMappingSlotAt", + "outputs": [ + { + "internalType": "bytes32", + "name": "value", + "type": "bytes32" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "getNonce", + "outputs": [ + { + "internalType": "uint64", + "name": "nonce", + "type": "uint64" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "address", + "name": "addr", + "type": "address" + }, + { + "internalType": "uint256", + "name": "publicKeyX", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "publicKeyY", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "privateKey", + "type": "uint256" + } + ], + "internalType": "struct VmSafe.Wallet", + "name": "wallet", + "type": "tuple" + } + ], + "name": "getNonce", + "outputs": [ + { + "internalType": "uint64", + "name": "nonce", + "type": "uint64" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "getRecordedLogs", + "outputs": [ + { + "components": [ + { + "internalType": "bytes32[]", + "name": "topics", + "type": "bytes32[]" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "address", + "name": "emitter", + "type": "address" + } + ], + "internalType": "struct VmSafe.Log[]", + "name": "logs", + "type": "tuple[]" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "input", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "indexOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "enum VmSafe.ForgeContext", + "name": "context", + "type": "uint8" + } + ], + "name": "isContext", + "outputs": [ + { + "internalType": "bool", + "name": "result", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "path", + "type": "string" + } + ], + "name": "isDir", + "outputs": [ + { + "internalType": "bool", + "name": "result", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "path", + "type": "string" + } + ], + "name": "isFile", + "outputs": [ + { + "internalType": "bool", + "name": "result", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "keyExists", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "keyExistsJson", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "toml", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "keyExistsToml", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "string", + "name": "newLabel", + "type": "string" + } + ], + "name": "label", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "lastCallGas", + "outputs": [ + { + "components": [ + { + "internalType": "uint64", + "name": "gasLimit", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "gasTotalUsed", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "gasMemoryUsed", + "type": "uint64" + }, + { + "internalType": "int64", + "name": "gasRefunded", + "type": "int64" + }, + { + "internalType": "uint64", + "name": "gasRemaining", + "type": "uint64" + } + ], + "internalType": "struct VmSafe.Gas", + "name": "gas", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "slot", + "type": "bytes32" + } + ], + "name": "load", + "outputs": [ + { + "internalType": "bytes32", + "name": "data", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "stringifiedValue", + "type": "string" + } + ], + "name": "parseAddress", + "outputs": [ + { + "internalType": "address", + "name": "parsedValue", + "type": "address" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "stringifiedValue", + "type": "string" + } + ], + "name": "parseBool", + "outputs": [ + { + "internalType": "bool", + "name": "parsedValue", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "stringifiedValue", + "type": "string" + } + ], + "name": "parseBytes", + "outputs": [ + { + "internalType": "bytes", + "name": "parsedValue", + "type": "bytes" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "stringifiedValue", + "type": "string" + } + ], + "name": "parseBytes32", + "outputs": [ + { + "internalType": "bytes32", + "name": "parsedValue", + "type": "bytes32" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "stringifiedValue", + "type": "string" + } + ], + "name": "parseInt", + "outputs": [ + { + "internalType": "int256", + "name": "parsedValue", + "type": "int256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + } + ], + "name": "parseJson", + "outputs": [ + { + "internalType": "bytes", + "name": "abiEncodedData", + "type": "bytes" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseJson", + "outputs": [ + { + "internalType": "bytes", + "name": "abiEncodedData", + "type": "bytes" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseJsonAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseJsonAddressArray", + "outputs": [ + { + "internalType": "address[]", + "name": "", + "type": "address[]" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseJsonBool", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseJsonBoolArray", + "outputs": [ + { + "internalType": "bool[]", + "name": "", + "type": "bool[]" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseJsonBytes", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseJsonBytes32", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseJsonBytes32Array", + "outputs": [ + { + "internalType": "bytes32[]", + "name": "", + "type": "bytes32[]" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseJsonBytesArray", + "outputs": [ + { + "internalType": "bytes[]", + "name": "", + "type": "bytes[]" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseJsonInt", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseJsonIntArray", + "outputs": [ + { + "internalType": "int256[]", + "name": "", + "type": "int256[]" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseJsonKeys", + "outputs": [ + { + "internalType": "string[]", + "name": "keys", + "type": "string[]" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseJsonString", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseJsonStringArray", + "outputs": [ + { + "internalType": "string[]", + "name": "", + "type": "string[]" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + }, + { + "internalType": "string", + "name": "typeDescription", + "type": "string" + } + ], + "name": "parseJsonType", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + }, + { + "internalType": "string", + "name": "typeDescription", + "type": "string" + } + ], + "name": "parseJsonType", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + }, + { + "internalType": "string", + "name": "typeDescription", + "type": "string" + } + ], + "name": "parseJsonTypeArray", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseJsonUint", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseJsonUintArray", + "outputs": [ + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "toml", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseToml", + "outputs": [ + { + "internalType": "bytes", + "name": "abiEncodedData", + "type": "bytes" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "toml", + "type": "string" + } + ], + "name": "parseToml", + "outputs": [ + { + "internalType": "bytes", + "name": "abiEncodedData", + "type": "bytes" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "toml", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseTomlAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "toml", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseTomlAddressArray", + "outputs": [ + { + "internalType": "address[]", + "name": "", + "type": "address[]" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "toml", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseTomlBool", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "toml", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseTomlBoolArray", + "outputs": [ + { + "internalType": "bool[]", + "name": "", + "type": "bool[]" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "toml", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseTomlBytes", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "toml", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseTomlBytes32", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "toml", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseTomlBytes32Array", + "outputs": [ + { + "internalType": "bytes32[]", + "name": "", + "type": "bytes32[]" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "toml", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseTomlBytesArray", + "outputs": [ + { + "internalType": "bytes[]", + "name": "", + "type": "bytes[]" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "toml", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseTomlInt", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "toml", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseTomlIntArray", + "outputs": [ + { + "internalType": "int256[]", + "name": "", + "type": "int256[]" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "toml", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseTomlKeys", + "outputs": [ + { + "internalType": "string[]", + "name": "keys", + "type": "string[]" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "toml", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseTomlString", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "toml", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseTomlStringArray", + "outputs": [ + { + "internalType": "string[]", + "name": "", + "type": "string[]" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "toml", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseTomlUint", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "toml", + "type": "string" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "parseTomlUintArray", + "outputs": [ + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "stringifiedValue", + "type": "string" + } + ], + "name": "parseUint", + "outputs": [ + { + "internalType": "uint256", + "name": "parsedValue", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "pauseGasMetering", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "projectRoot", + "outputs": [ + { + "internalType": "string", + "name": "path", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "promptText", + "type": "string" + } + ], + "name": "prompt", + "outputs": [ + { + "internalType": "string", + "name": "input", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "promptText", + "type": "string" + } + ], + "name": "promptAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "promptText", + "type": "string" + } + ], + "name": "promptSecret", + "outputs": [ + { + "internalType": "string", + "name": "input", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "promptText", + "type": "string" + } + ], + "name": "promptSecretUint", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "promptText", + "type": "string" + } + ], + "name": "promptUint", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "randomAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "randomUint", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "min", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "max", + "type": "uint256" + } + ], + "name": "randomUint", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "path", + "type": "string" + }, + { + "internalType": "uint64", + "name": "maxDepth", + "type": "uint64" + } + ], + "name": "readDir", + "outputs": [ + { + "components": [ + { + "internalType": "string", + "name": "errorMessage", + "type": "string" + }, + { + "internalType": "string", + "name": "path", + "type": "string" + }, + { + "internalType": "uint64", + "name": "depth", + "type": "uint64" + }, + { + "internalType": "bool", + "name": "isDir", + "type": "bool" + }, + { + "internalType": "bool", + "name": "isSymlink", + "type": "bool" + } + ], + "internalType": "struct VmSafe.DirEntry[]", + "name": "entries", + "type": "tuple[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "path", + "type": "string" + }, + { + "internalType": "uint64", + "name": "maxDepth", + "type": "uint64" + }, + { + "internalType": "bool", + "name": "followLinks", + "type": "bool" + } + ], + "name": "readDir", + "outputs": [ + { + "components": [ + { + "internalType": "string", + "name": "errorMessage", + "type": "string" + }, + { + "internalType": "string", + "name": "path", + "type": "string" + }, + { + "internalType": "uint64", + "name": "depth", + "type": "uint64" + }, + { + "internalType": "bool", + "name": "isDir", + "type": "bool" + }, + { + "internalType": "bool", + "name": "isSymlink", + "type": "bool" + } + ], + "internalType": "struct VmSafe.DirEntry[]", + "name": "entries", + "type": "tuple[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "path", + "type": "string" + } + ], + "name": "readDir", + "outputs": [ + { + "components": [ + { + "internalType": "string", + "name": "errorMessage", + "type": "string" + }, + { + "internalType": "string", + "name": "path", + "type": "string" + }, + { + "internalType": "uint64", + "name": "depth", + "type": "uint64" + }, + { + "internalType": "bool", + "name": "isDir", + "type": "bool" + }, + { + "internalType": "bool", + "name": "isSymlink", + "type": "bool" + } + ], + "internalType": "struct VmSafe.DirEntry[]", + "name": "entries", + "type": "tuple[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "path", + "type": "string" + } + ], + "name": "readFile", + "outputs": [ + { + "internalType": "string", + "name": "data", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "path", + "type": "string" + } + ], + "name": "readFileBinary", + "outputs": [ + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "path", + "type": "string" + } + ], + "name": "readLine", + "outputs": [ + { + "internalType": "string", + "name": "line", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "linkPath", + "type": "string" + } + ], + "name": "readLink", + "outputs": [ + { + "internalType": "string", + "name": "targetPath", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "record", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "recordLogs", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "privateKey", + "type": "uint256" + } + ], + "name": "rememberKey", + "outputs": [ + { + "internalType": "address", + "name": "keyAddr", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "path", + "type": "string" + }, + { + "internalType": "bool", + "name": "recursive", + "type": "bool" + } + ], + "name": "removeDir", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "path", + "type": "string" + } + ], + "name": "removeFile", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "input", + "type": "string" + }, + { + "internalType": "string", + "name": "from", + "type": "string" + }, + { + "internalType": "string", + "name": "to", + "type": "string" + } + ], + "name": "replace", + "outputs": [ + { + "internalType": "string", + "name": "output", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "resumeGasMetering", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "urlOrAlias", + "type": "string" + }, + { + "internalType": "string", + "name": "method", + "type": "string" + }, + { + "internalType": "string", + "name": "params", + "type": "string" + } + ], + "name": "rpc", + "outputs": [ + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "method", + "type": "string" + }, + { + "internalType": "string", + "name": "params", + "type": "string" + } + ], + "name": "rpc", + "outputs": [ + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "rpcAlias", + "type": "string" + } + ], + "name": "rpcUrl", + "outputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "rpcUrlStructs", + "outputs": [ + { + "components": [ + { + "internalType": "string", + "name": "key", + "type": "string" + }, + { + "internalType": "string", + "name": "url", + "type": "string" + } + ], + "internalType": "struct VmSafe.Rpc[]", + "name": "urls", + "type": "tuple[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "rpcUrls", + "outputs": [ + { + "internalType": "string[2][]", + "name": "urls", + "type": "string[2][]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "objectKey", + "type": "string" + }, + { + "internalType": "string", + "name": "valueKey", + "type": "string" + }, + { + "internalType": "address[]", + "name": "values", + "type": "address[]" + } + ], + "name": "serializeAddress", + "outputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "objectKey", + "type": "string" + }, + { + "internalType": "string", + "name": "valueKey", + "type": "string" + }, + { + "internalType": "address", + "name": "value", + "type": "address" + } + ], + "name": "serializeAddress", + "outputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "objectKey", + "type": "string" + }, + { + "internalType": "string", + "name": "valueKey", + "type": "string" + }, + { + "internalType": "bool[]", + "name": "values", + "type": "bool[]" + } + ], + "name": "serializeBool", + "outputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "objectKey", + "type": "string" + }, + { + "internalType": "string", + "name": "valueKey", + "type": "string" + }, + { + "internalType": "bool", + "name": "value", + "type": "bool" + } + ], + "name": "serializeBool", + "outputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "objectKey", + "type": "string" + }, + { + "internalType": "string", + "name": "valueKey", + "type": "string" + }, + { + "internalType": "bytes[]", + "name": "values", + "type": "bytes[]" + } + ], + "name": "serializeBytes", + "outputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "objectKey", + "type": "string" + }, + { + "internalType": "string", + "name": "valueKey", + "type": "string" + }, + { + "internalType": "bytes", + "name": "value", + "type": "bytes" + } + ], + "name": "serializeBytes", + "outputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "objectKey", + "type": "string" + }, + { + "internalType": "string", + "name": "valueKey", + "type": "string" + }, + { + "internalType": "bytes32[]", + "name": "values", + "type": "bytes32[]" + } + ], + "name": "serializeBytes32", + "outputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "objectKey", + "type": "string" + }, + { + "internalType": "string", + "name": "valueKey", + "type": "string" + }, + { + "internalType": "bytes32", + "name": "value", + "type": "bytes32" + } + ], + "name": "serializeBytes32", + "outputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "objectKey", + "type": "string" + }, + { + "internalType": "string", + "name": "valueKey", + "type": "string" + }, + { + "internalType": "int256", + "name": "value", + "type": "int256" + } + ], + "name": "serializeInt", + "outputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "objectKey", + "type": "string" + }, + { + "internalType": "string", + "name": "valueKey", + "type": "string" + }, + { + "internalType": "int256[]", + "name": "values", + "type": "int256[]" + } + ], + "name": "serializeInt", + "outputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "objectKey", + "type": "string" + }, + { + "internalType": "string", + "name": "value", + "type": "string" + } + ], + "name": "serializeJson", + "outputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "typeDescription", + "type": "string" + }, + { + "internalType": "bytes", + "name": "value", + "type": "bytes" + } + ], + "name": "serializeJsonType", + "outputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "objectKey", + "type": "string" + }, + { + "internalType": "string", + "name": "valueKey", + "type": "string" + }, + { + "internalType": "string", + "name": "typeDescription", + "type": "string" + }, + { + "internalType": "bytes", + "name": "value", + "type": "bytes" + } + ], + "name": "serializeJsonType", + "outputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "objectKey", + "type": "string" + }, + { + "internalType": "string", + "name": "valueKey", + "type": "string" + }, + { + "internalType": "string[]", + "name": "values", + "type": "string[]" + } + ], + "name": "serializeString", + "outputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "objectKey", + "type": "string" + }, + { + "internalType": "string", + "name": "valueKey", + "type": "string" + }, + { + "internalType": "string", + "name": "value", + "type": "string" + } + ], + "name": "serializeString", + "outputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "objectKey", + "type": "string" + }, + { + "internalType": "string", + "name": "valueKey", + "type": "string" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "serializeUint", + "outputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "objectKey", + "type": "string" + }, + { + "internalType": "string", + "name": "valueKey", + "type": "string" + }, + { + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + } + ], + "name": "serializeUint", + "outputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "objectKey", + "type": "string" + }, + { + "internalType": "string", + "name": "valueKey", + "type": "string" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "serializeUintToHex", + "outputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "value", + "type": "string" + } + ], + "name": "setEnv", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "digest", + "type": "bytes32" + } + ], + "name": "sign", + "outputs": [ + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "signer", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "digest", + "type": "bytes32" + } + ], + "name": "sign", + "outputs": [ + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "address", + "name": "addr", + "type": "address" + }, + { + "internalType": "uint256", + "name": "publicKeyX", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "publicKeyY", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "privateKey", + "type": "uint256" + } + ], + "internalType": "struct VmSafe.Wallet", + "name": "wallet", + "type": "tuple" + }, + { + "internalType": "bytes32", + "name": "digest", + "type": "bytes32" + } + ], + "name": "sign", + "outputs": [ + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "privateKey", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "digest", + "type": "bytes32" + } + ], + "name": "sign", + "outputs": [ + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "address", + "name": "addr", + "type": "address" + }, + { + "internalType": "uint256", + "name": "publicKeyX", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "publicKeyY", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "privateKey", + "type": "uint256" + } + ], + "internalType": "struct VmSafe.Wallet", + "name": "wallet", + "type": "tuple" + }, + { + "internalType": "bytes32", + "name": "digest", + "type": "bytes32" + } + ], + "name": "signCompact", + "outputs": [ + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "vs", + "type": "bytes32" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "signer", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "digest", + "type": "bytes32" + } + ], + "name": "signCompact", + "outputs": [ + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "vs", + "type": "bytes32" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "digest", + "type": "bytes32" + } + ], + "name": "signCompact", + "outputs": [ + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "vs", + "type": "bytes32" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "privateKey", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "digest", + "type": "bytes32" + } + ], + "name": "signCompact", + "outputs": [ + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "vs", + "type": "bytes32" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "privateKey", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "digest", + "type": "bytes32" + } + ], + "name": "signP256", + "outputs": [ + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "duration", + "type": "uint256" + } + ], + "name": "sleep", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "input", + "type": "string" + }, + { + "internalType": "string", + "name": "delimiter", + "type": "string" + } + ], + "name": "split", + "outputs": [ + { + "internalType": "string[]", + "name": "outputs", + "type": "string[]" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "startBroadcast", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "signer", + "type": "address" + } + ], + "name": "startBroadcast", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "privateKey", + "type": "uint256" + } + ], + "name": "startBroadcast", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "startMappingRecording", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "startStateDiffRecording", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "stopAndReturnStateDiff", + "outputs": [ + { + "components": [ + { + "components": [ + { + "internalType": "uint256", + "name": "forkId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + } + ], + "internalType": "struct VmSafe.ChainInfo", + "name": "chainInfo", + "type": "tuple" + }, + { + "internalType": "enum VmSafe.AccountAccessKind", + "name": "kind", + "type": "uint8" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "address", + "name": "accessor", + "type": "address" + }, + { + "internalType": "bool", + "name": "initialized", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "oldBalance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "newBalance", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "deployedCode", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "bool", + "name": "reverted", + "type": "bool" + }, + { + "components": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "slot", + "type": "bytes32" + }, + { + "internalType": "bool", + "name": "isWrite", + "type": "bool" + }, + { + "internalType": "bytes32", + "name": "previousValue", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "newValue", + "type": "bytes32" + }, + { + "internalType": "bool", + "name": "reverted", + "type": "bool" + } + ], + "internalType": "struct VmSafe.StorageAccess[]", + "name": "storageAccesses", + "type": "tuple[]" + }, + { + "internalType": "uint64", + "name": "depth", + "type": "uint64" + } + ], + "internalType": "struct VmSafe.AccountAccess[]", + "name": "accountAccesses", + "type": "tuple[]" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "stopBroadcast", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "stopMappingRecording", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "data", + "type": "string" + } + ], + "name": "toBase64", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "toBase64", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "data", + "type": "string" + } + ], + "name": "toBase64URL", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "toBase64URL", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "input", + "type": "string" + } + ], + "name": "toLowercase", + "outputs": [ + { + "internalType": "string", + "name": "output", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "value", + "type": "address" + } + ], + "name": "toString", + "outputs": [ + { + "internalType": "string", + "name": "stringifiedValue", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "toString", + "outputs": [ + { + "internalType": "string", + "name": "stringifiedValue", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "value", + "type": "bytes" + } + ], + "name": "toString", + "outputs": [ + { + "internalType": "string", + "name": "stringifiedValue", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool", + "name": "value", + "type": "bool" + } + ], + "name": "toString", + "outputs": [ + { + "internalType": "string", + "name": "stringifiedValue", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "value", + "type": "int256" + } + ], + "name": "toString", + "outputs": [ + { + "internalType": "string", + "name": "stringifiedValue", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "value", + "type": "bytes32" + } + ], + "name": "toString", + "outputs": [ + { + "internalType": "string", + "name": "stringifiedValue", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "input", + "type": "string" + } + ], + "name": "toUppercase", + "outputs": [ + { + "internalType": "string", + "name": "output", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "input", + "type": "string" + } + ], + "name": "trim", + "outputs": [ + { + "internalType": "string", + "name": "output", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string[]", + "name": "commandInput", + "type": "string[]" + } + ], + "name": "tryFfi", + "outputs": [ + { + "components": [ + { + "internalType": "int32", + "name": "exitCode", + "type": "int32" + }, + { + "internalType": "bytes", + "name": "stdout", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "stderr", + "type": "bytes" + } + ], + "internalType": "struct VmSafe.FfiResult", + "name": "result", + "type": "tuple" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "unixTime", + "outputs": [ + { + "internalType": "uint256", + "name": "milliseconds", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "path", + "type": "string" + }, + { + "internalType": "string", + "name": "data", + "type": "string" + } + ], + "name": "writeFile", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "path", + "type": "string" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "writeFileBinary", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + }, + { + "internalType": "string", + "name": "path", + "type": "string" + }, + { + "internalType": "string", + "name": "valueKey", + "type": "string" + } + ], + "name": "writeJson", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + }, + { + "internalType": "string", + "name": "path", + "type": "string" + } + ], + "name": "writeJson", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "path", + "type": "string" + }, + { + "internalType": "string", + "name": "data", + "type": "string" + } + ], + "name": "writeLine", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + }, + { + "internalType": "string", + "name": "path", + "type": "string" + }, + { + "internalType": "string", + "name": "valueKey", + "type": "string" + } + ], + "name": "writeToml", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "json", + "type": "string" + }, + { + "internalType": "string", + "name": "path", + "type": "string" + } + ], + "name": "writeToml", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/src/Upgrades.sol/console.dbg.json b/artifacts/src/Upgrades.sol/console.dbg.json new file mode 100644 index 0000000..fc8f341 --- /dev/null +++ b/artifacts/src/Upgrades.sol/console.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../build-info/7d80f87a51d3a5d7ae3341681c898b45.json" +} diff --git a/artifacts/src/Upgrades.sol/console.json b/artifacts/src/Upgrades.sol/console.json new file mode 100644 index 0000000..063d444 --- /dev/null +++ b/artifacts/src/Upgrades.sol/console.json @@ -0,0 +1,10 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "console", + "sourceName": "src/Upgrades.sol", + "abi": [], + "bytecode": "0x60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220bc4a0ff94ba95805618bc329c788162261898b6f283011c969e0235df4e430d764736f6c634300081c0033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220bc4a0ff94ba95805618bc329c788162261898b6f283011c969e0235df4e430d764736f6c634300081c0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/go_bind.sh b/go_bind.sh index 3025184..72f6052 100755 --- a/go_bind.sh +++ b/go_bind.sh @@ -45,6 +45,10 @@ abi "./artifacts/src/ProcessRegistry.sol/ProcessRegistry.json" \ "ProcessRegistry" \ "./golang-types/ProcessRegistry.go" +abi "./artifacts/src/Upgrades.sol/Upgrades.json" \ + "Upgrades" \ + "./golang-types/Upgrades.go" + # abi "./artifacts/src/SequencerRegistry.sol/SequencerRegistry.json" \ # "SequencerRegistry" \ # "./golang-types/SequencerRegistry.go" diff --git a/golang-types/Upgrades.go b/golang-types/Upgrades.go new file mode 100644 index 0000000..e13b445 --- /dev/null +++ b/golang-types/Upgrades.go @@ -0,0 +1,203 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package contracts + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// UpgradesMetaData contains all meta data concerning the Upgrades contract. +var UpgradesMetaData = &bind.MetaData{ + ABI: "[]", + Bin: "0x60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a99f8096bd9334840efab435915648dfa85b40885cd92cb51ba78c006ee663b664736f6c634300081c0033", +} + +// UpgradesABI is the input ABI used to generate the binding from. +// Deprecated: Use UpgradesMetaData.ABI instead. +var UpgradesABI = UpgradesMetaData.ABI + +// UpgradesBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use UpgradesMetaData.Bin instead. +var UpgradesBin = UpgradesMetaData.Bin + +// DeployUpgrades deploys a new Ethereum contract, binding an instance of Upgrades to it. +func DeployUpgrades(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *Upgrades, error) { + parsed, err := UpgradesMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(UpgradesBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &Upgrades{UpgradesCaller: UpgradesCaller{contract: contract}, UpgradesTransactor: UpgradesTransactor{contract: contract}, UpgradesFilterer: UpgradesFilterer{contract: contract}}, nil +} + +// Upgrades is an auto generated Go binding around an Ethereum contract. +type Upgrades struct { + UpgradesCaller // Read-only binding to the contract + UpgradesTransactor // Write-only binding to the contract + UpgradesFilterer // Log filterer for contract events +} + +// UpgradesCaller is an auto generated read-only Go binding around an Ethereum contract. +type UpgradesCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// UpgradesTransactor is an auto generated write-only Go binding around an Ethereum contract. +type UpgradesTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// UpgradesFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type UpgradesFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// UpgradesSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type UpgradesSession struct { + Contract *Upgrades // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// UpgradesCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type UpgradesCallerSession struct { + Contract *UpgradesCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// UpgradesTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type UpgradesTransactorSession struct { + Contract *UpgradesTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// UpgradesRaw is an auto generated low-level Go binding around an Ethereum contract. +type UpgradesRaw struct { + Contract *Upgrades // Generic contract binding to access the raw methods on +} + +// UpgradesCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type UpgradesCallerRaw struct { + Contract *UpgradesCaller // Generic read-only contract binding to access the raw methods on +} + +// UpgradesTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type UpgradesTransactorRaw struct { + Contract *UpgradesTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewUpgrades creates a new instance of Upgrades, bound to a specific deployed contract. +func NewUpgrades(address common.Address, backend bind.ContractBackend) (*Upgrades, error) { + contract, err := bindUpgrades(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &Upgrades{UpgradesCaller: UpgradesCaller{contract: contract}, UpgradesTransactor: UpgradesTransactor{contract: contract}, UpgradesFilterer: UpgradesFilterer{contract: contract}}, nil +} + +// NewUpgradesCaller creates a new read-only instance of Upgrades, bound to a specific deployed contract. +func NewUpgradesCaller(address common.Address, caller bind.ContractCaller) (*UpgradesCaller, error) { + contract, err := bindUpgrades(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &UpgradesCaller{contract: contract}, nil +} + +// NewUpgradesTransactor creates a new write-only instance of Upgrades, bound to a specific deployed contract. +func NewUpgradesTransactor(address common.Address, transactor bind.ContractTransactor) (*UpgradesTransactor, error) { + contract, err := bindUpgrades(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &UpgradesTransactor{contract: contract}, nil +} + +// NewUpgradesFilterer creates a new log filterer instance of Upgrades, bound to a specific deployed contract. +func NewUpgradesFilterer(address common.Address, filterer bind.ContractFilterer) (*UpgradesFilterer, error) { + contract, err := bindUpgrades(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &UpgradesFilterer{contract: contract}, nil +} + +// bindUpgrades binds a generic wrapper to an already deployed contract. +func bindUpgrades(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := UpgradesMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Upgrades *UpgradesRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Upgrades.Contract.UpgradesCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Upgrades *UpgradesRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Upgrades.Contract.UpgradesTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Upgrades *UpgradesRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Upgrades.Contract.UpgradesTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Upgrades *UpgradesCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Upgrades.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Upgrades *UpgradesTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Upgrades.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Upgrades *UpgradesTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Upgrades.Contract.contract.Transact(opts, method, params...) +} diff --git a/src/Upgrades.sol b/src/Upgrades.sol new file mode 100644 index 0000000..e50d5ef --- /dev/null +++ b/src/Upgrades.sol @@ -0,0 +1,7522 @@ +// SPDX-License-Identifier: MIT +pragma solidity <0.9.0 >=0.4.22 >=0.6.2 ^0.8.0 ^0.8.20; +pragma experimental ABIEncoderV2; + +// lib/forge-std/src/Vm.sol +// Automatically @generated by scripts/vm.py. Do not modify manually. + +/// The `VmSafe` interface does not allow manipulation of the EVM state or other actions that may +/// result in Script simulations differing from on-chain execution. It is recommended to only use +/// these cheats in scripts. +interface VmSafe { + /// A modification applied to either `msg.sender` or `tx.origin`. Returned by `readCallers`. + enum CallerMode { + // No caller modification is currently active. + None, + // A one time broadcast triggered by a `vm.broadcast()` call is currently active. + Broadcast, + // A recurrent broadcast triggered by a `vm.startBroadcast()` call is currently active. + RecurrentBroadcast, + // A one time prank triggered by a `vm.prank()` call is currently active. + Prank, + // A recurrent prank triggered by a `vm.startPrank()` call is currently active. + RecurrentPrank + } + + /// The kind of account access that occurred. + enum AccountAccessKind { + // The account was called. + Call, + // The account was called via delegatecall. + DelegateCall, + // The account was called via callcode. + CallCode, + // The account was called via staticcall. + StaticCall, + // The account was created. + Create, + // The account was selfdestructed. + SelfDestruct, + // Synthetic access indicating the current context has resumed after a previous sub-context (AccountAccess). + Resume, + // The account's balance was read. + Balance, + // The account's codesize was read. + Extcodesize, + // The account's codehash was read. + Extcodehash, + // The account's code was copied. + Extcodecopy + } + + /// Forge execution contexts. + enum ForgeContext { + // Test group execution context (test, coverage or snapshot). + TestGroup, + // `forge test` execution context. + Test, + // `forge coverage` execution context. + Coverage, + // `forge snapshot` execution context. + Snapshot, + // Script group execution context (dry run, broadcast or resume). + ScriptGroup, + // `forge script` execution context. + ScriptDryRun, + // `forge script --broadcast` execution context. + ScriptBroadcast, + // `forge script --resume` execution context. + ScriptResume, + // Unknown `forge` execution context. + Unknown + } + + /// An Ethereum log. Returned by `getRecordedLogs`. + struct Log { + // The topics of the log, including the signature, if any. + bytes32[] topics; + // The raw data of the log. + bytes data; + // The address of the log's emitter. + address emitter; + } + + /// An RPC URL and its alias. Returned by `rpcUrlStructs`. + struct Rpc { + // The alias of the RPC URL. + string key; + // The RPC URL. + string url; + } + + /// An RPC log object. Returned by `eth_getLogs`. + struct EthGetLogs { + // The address of the log's emitter. + address emitter; + // The topics of the log, including the signature, if any. + bytes32[] topics; + // The raw data of the log. + bytes data; + // The block hash. + bytes32 blockHash; + // The block number. + uint64 blockNumber; + // The transaction hash. + bytes32 transactionHash; + // The transaction index in the block. + uint64 transactionIndex; + // The log index. + uint256 logIndex; + // Whether the log was removed. + bool removed; + } + + /// A single entry in a directory listing. Returned by `readDir`. + struct DirEntry { + // The error message, if any. + string errorMessage; + // The path of the entry. + string path; + // The depth of the entry. + uint64 depth; + // Whether the entry is a directory. + bool isDir; + // Whether the entry is a symlink. + bool isSymlink; + } + + /// Metadata information about a file. + /// This structure is returned from the `fsMetadata` function and represents known + /// metadata about a file such as its permissions, size, modification + /// times, etc. + struct FsMetadata { + // True if this metadata is for a directory. + bool isDir; + // True if this metadata is for a symlink. + bool isSymlink; + // The size of the file, in bytes, this metadata is for. + uint256 length; + // True if this metadata is for a readonly (unwritable) file. + bool readOnly; + // The last modification time listed in this metadata. + uint256 modified; + // The last access time of this metadata. + uint256 accessed; + // The creation time listed in this metadata. + uint256 created; + } + + /// A wallet with a public and private key. + struct Wallet { + // The wallet's address. + address addr; + // The wallet's public key `X`. + uint256 publicKeyX; + // The wallet's public key `Y`. + uint256 publicKeyY; + // The wallet's private key. + uint256 privateKey; + } + + /// The result of a `tryFfi` call. + struct FfiResult { + // The exit code of the call. + int32 exitCode; + // The optionally hex-decoded `stdout` data. + bytes stdout; + // The `stderr` data. + bytes stderr; + } + + /// Information on the chain and fork. + struct ChainInfo { + // The fork identifier. Set to zero if no fork is active. + uint256 forkId; + // The chain ID of the current fork. + uint256 chainId; + } + + /// The result of a `stopAndReturnStateDiff` call. + struct AccountAccess { + // The chain and fork the access occurred. + ChainInfo chainInfo; + // The kind of account access that determines what the account is. + // If kind is Call, DelegateCall, StaticCall or CallCode, then the account is the callee. + // If kind is Create, then the account is the newly created account. + // If kind is SelfDestruct, then the account is the selfdestruct recipient. + // If kind is a Resume, then account represents a account context that has resumed. + AccountAccessKind kind; + // The account that was accessed. + // It's either the account created, callee or a selfdestruct recipient for CREATE, CALL or SELFDESTRUCT. + address account; + // What accessed the account. + address accessor; + // If the account was initialized or empty prior to the access. + // An account is considered initialized if it has code, a + // non-zero nonce, or a non-zero balance. + bool initialized; + // The previous balance of the accessed account. + uint256 oldBalance; + // The potential new balance of the accessed account. + // That is, all balance changes are recorded here, even if reverts occurred. + uint256 newBalance; + // Code of the account deployed by CREATE. + bytes deployedCode; + // Value passed along with the account access + uint256 value; + // Input data provided to the CREATE or CALL + bytes data; + // If this access reverted in either the current or parent context. + bool reverted; + // An ordered list of storage accesses made during an account access operation. + StorageAccess[] storageAccesses; + // Call depth traversed during the recording of state differences + uint64 depth; + } + + /// The storage accessed during an `AccountAccess`. + struct StorageAccess { + // The account whose storage was accessed. + address account; + // The slot that was accessed. + bytes32 slot; + // If the access was a write. + bool isWrite; + // The previous value of the slot. + bytes32 previousValue; + // The new value of the slot. + bytes32 newValue; + // If the access was reverted. + bool reverted; + } + + /// Gas used. Returned by `lastCallGas`. + struct Gas { + // The gas limit of the call. + uint64 gasLimit; + // The total gas used. + uint64 gasTotalUsed; + // DEPRECATED: The amount of gas used for memory expansion. Ref: + uint64 gasMemoryUsed; + // The amount of gas refunded. + int64 gasRefunded; + // The amount of gas remaining. + uint64 gasRemaining; + } + + // ======== Crypto ======== + + /// Derives a private key from the name, labels the account with that name, and returns the wallet. + function createWallet(string calldata walletLabel) external returns (Wallet memory wallet); + + /// Generates a wallet from the private key and returns the wallet. + function createWallet(uint256 privateKey) external returns (Wallet memory wallet); + + /// Generates a wallet from the private key, labels the account with that name, and returns the wallet. + function createWallet(uint256 privateKey, string calldata walletLabel) external returns (Wallet memory wallet); + + /// Derive a private key from a provided mnenomic string (or mnenomic file path) + /// at the derivation path `m/44'/60'/0'/0/{index}`. + function deriveKey(string calldata mnemonic, uint32 index) external pure returns (uint256 privateKey); + + /// Derive a private key from a provided mnenomic string (or mnenomic file path) + /// at `{derivationPath}{index}`. + function deriveKey(string calldata mnemonic, string calldata derivationPath, uint32 index) + external + pure + returns (uint256 privateKey); + + /// Derive a private key from a provided mnenomic string (or mnenomic file path) in the specified language + /// at the derivation path `m/44'/60'/0'/0/{index}`. + function deriveKey(string calldata mnemonic, uint32 index, string calldata language) + external + pure + returns (uint256 privateKey); + + /// Derive a private key from a provided mnenomic string (or mnenomic file path) in the specified language + /// at `{derivationPath}{index}`. + function deriveKey(string calldata mnemonic, string calldata derivationPath, uint32 index, string calldata language) + external + pure + returns (uint256 privateKey); + + /// Adds a private key to the local forge wallet and returns the address. + function rememberKey(uint256 privateKey) external returns (address keyAddr); + + /// Signs data with a `Wallet`. + /// Returns a compact signature (`r`, `vs`) as per EIP-2098, where `vs` encodes both the + /// signature's `s` value, and the recovery id `v` in a single bytes32. + /// This format reduces the signature size from 65 to 64 bytes. + function signCompact(Wallet calldata wallet, bytes32 digest) external returns (bytes32 r, bytes32 vs); + + /// Signs `digest` with `privateKey` using the secp256k1 curve. + /// Returns a compact signature (`r`, `vs`) as per EIP-2098, where `vs` encodes both the + /// signature's `s` value, and the recovery id `v` in a single bytes32. + /// This format reduces the signature size from 65 to 64 bytes. + function signCompact(uint256 privateKey, bytes32 digest) external pure returns (bytes32 r, bytes32 vs); + + /// Signs `digest` with signer provided to script using the secp256k1 curve. + /// Returns a compact signature (`r`, `vs`) as per EIP-2098, where `vs` encodes both the + /// signature's `s` value, and the recovery id `v` in a single bytes32. + /// This format reduces the signature size from 65 to 64 bytes. + /// If `--sender` is provided, the signer with provided address is used, otherwise, + /// if exactly one signer is provided to the script, that signer is used. + /// Raises error if signer passed through `--sender` does not match any unlocked signers or + /// if `--sender` is not provided and not exactly one signer is passed to the script. + function signCompact(bytes32 digest) external pure returns (bytes32 r, bytes32 vs); + + /// Signs `digest` with signer provided to script using the secp256k1 curve. + /// Returns a compact signature (`r`, `vs`) as per EIP-2098, where `vs` encodes both the + /// signature's `s` value, and the recovery id `v` in a single bytes32. + /// This format reduces the signature size from 65 to 64 bytes. + /// Raises error if none of the signers passed into the script have provided address. + function signCompact(address signer, bytes32 digest) external pure returns (bytes32 r, bytes32 vs); + + /// Signs `digest` with `privateKey` using the secp256r1 curve. + function signP256(uint256 privateKey, bytes32 digest) external pure returns (bytes32 r, bytes32 s); + + /// Signs data with a `Wallet`. + function sign(Wallet calldata wallet, bytes32 digest) external returns (uint8 v, bytes32 r, bytes32 s); + + /// Signs `digest` with `privateKey` using the secp256k1 curve. + function sign(uint256 privateKey, bytes32 digest) external pure returns (uint8 v, bytes32 r, bytes32 s); + + /// Signs `digest` with signer provided to script using the secp256k1 curve. + /// If `--sender` is provided, the signer with provided address is used, otherwise, + /// if exactly one signer is provided to the script, that signer is used. + /// Raises error if signer passed through `--sender` does not match any unlocked signers or + /// if `--sender` is not provided and not exactly one signer is passed to the script. + function sign(bytes32 digest) external pure returns (uint8 v, bytes32 r, bytes32 s); + + /// Signs `digest` with signer provided to script using the secp256k1 curve. + /// Raises error if none of the signers passed into the script have provided address. + function sign(address signer, bytes32 digest) external pure returns (uint8 v, bytes32 r, bytes32 s); + + // ======== Environment ======== + + /// Gets the environment variable `name` and parses it as `address`. + /// Reverts if the variable was not found or could not be parsed. + function envAddress(string calldata name) external view returns (address value); + + /// Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`. + /// Reverts if the variable was not found or could not be parsed. + function envAddress(string calldata name, string calldata delim) external view returns (address[] memory value); + + /// Gets the environment variable `name` and parses it as `bool`. + /// Reverts if the variable was not found or could not be parsed. + function envBool(string calldata name) external view returns (bool value); + + /// Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`. + /// Reverts if the variable was not found or could not be parsed. + function envBool(string calldata name, string calldata delim) external view returns (bool[] memory value); + + /// Gets the environment variable `name` and parses it as `bytes32`. + /// Reverts if the variable was not found or could not be parsed. + function envBytes32(string calldata name) external view returns (bytes32 value); + + /// Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`. + /// Reverts if the variable was not found or could not be parsed. + function envBytes32(string calldata name, string calldata delim) external view returns (bytes32[] memory value); + + /// Gets the environment variable `name` and parses it as `bytes`. + /// Reverts if the variable was not found or could not be parsed. + function envBytes(string calldata name) external view returns (bytes memory value); + + /// Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`. + /// Reverts if the variable was not found or could not be parsed. + function envBytes(string calldata name, string calldata delim) external view returns (bytes[] memory value); + + /// Gets the environment variable `name` and returns true if it exists, else returns false. + function envExists(string calldata name) external view returns (bool result); + + /// Gets the environment variable `name` and parses it as `int256`. + /// Reverts if the variable was not found or could not be parsed. + function envInt(string calldata name) external view returns (int256 value); + + /// Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`. + /// Reverts if the variable was not found or could not be parsed. + function envInt(string calldata name, string calldata delim) external view returns (int256[] memory value); + + /// Gets the environment variable `name` and parses it as `bool`. + /// Reverts if the variable could not be parsed. + /// Returns `defaultValue` if the variable was not found. + function envOr(string calldata name, bool defaultValue) external view returns (bool value); + + /// Gets the environment variable `name` and parses it as `uint256`. + /// Reverts if the variable could not be parsed. + /// Returns `defaultValue` if the variable was not found. + function envOr(string calldata name, uint256 defaultValue) external view returns (uint256 value); + + /// Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`. + /// Reverts if the variable could not be parsed. + /// Returns `defaultValue` if the variable was not found. + function envOr(string calldata name, string calldata delim, address[] calldata defaultValue) + external + view + returns (address[] memory value); + + /// Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`. + /// Reverts if the variable could not be parsed. + /// Returns `defaultValue` if the variable was not found. + function envOr(string calldata name, string calldata delim, bytes32[] calldata defaultValue) + external + view + returns (bytes32[] memory value); + + /// Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`. + /// Reverts if the variable could not be parsed. + /// Returns `defaultValue` if the variable was not found. + function envOr(string calldata name, string calldata delim, string[] calldata defaultValue) + external + view + returns (string[] memory value); + + /// Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`. + /// Reverts if the variable could not be parsed. + /// Returns `defaultValue` if the variable was not found. + function envOr(string calldata name, string calldata delim, bytes[] calldata defaultValue) + external + view + returns (bytes[] memory value); + + /// Gets the environment variable `name` and parses it as `int256`. + /// Reverts if the variable could not be parsed. + /// Returns `defaultValue` if the variable was not found. + function envOr(string calldata name, int256 defaultValue) external view returns (int256 value); + + /// Gets the environment variable `name` and parses it as `address`. + /// Reverts if the variable could not be parsed. + /// Returns `defaultValue` if the variable was not found. + function envOr(string calldata name, address defaultValue) external view returns (address value); + + /// Gets the environment variable `name` and parses it as `bytes32`. + /// Reverts if the variable could not be parsed. + /// Returns `defaultValue` if the variable was not found. + function envOr(string calldata name, bytes32 defaultValue) external view returns (bytes32 value); + + /// Gets the environment variable `name` and parses it as `string`. + /// Reverts if the variable could not be parsed. + /// Returns `defaultValue` if the variable was not found. + function envOr(string calldata name, string calldata defaultValue) external view returns (string memory value); + + /// Gets the environment variable `name` and parses it as `bytes`. + /// Reverts if the variable could not be parsed. + /// Returns `defaultValue` if the variable was not found. + function envOr(string calldata name, bytes calldata defaultValue) external view returns (bytes memory value); + + /// Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`. + /// Reverts if the variable could not be parsed. + /// Returns `defaultValue` if the variable was not found. + function envOr(string calldata name, string calldata delim, bool[] calldata defaultValue) + external + view + returns (bool[] memory value); + + /// Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`. + /// Reverts if the variable could not be parsed. + /// Returns `defaultValue` if the variable was not found. + function envOr(string calldata name, string calldata delim, uint256[] calldata defaultValue) + external + view + returns (uint256[] memory value); + + /// Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`. + /// Reverts if the variable could not be parsed. + /// Returns `defaultValue` if the variable was not found. + function envOr(string calldata name, string calldata delim, int256[] calldata defaultValue) + external + view + returns (int256[] memory value); + + /// Gets the environment variable `name` and parses it as `string`. + /// Reverts if the variable was not found or could not be parsed. + function envString(string calldata name) external view returns (string memory value); + + /// Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`. + /// Reverts if the variable was not found or could not be parsed. + function envString(string calldata name, string calldata delim) external view returns (string[] memory value); + + /// Gets the environment variable `name` and parses it as `uint256`. + /// Reverts if the variable was not found or could not be parsed. + function envUint(string calldata name) external view returns (uint256 value); + + /// Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`. + /// Reverts if the variable was not found or could not be parsed. + function envUint(string calldata name, string calldata delim) external view returns (uint256[] memory value); + + /// Returns true if `forge` command was executed in given context. + function isContext(ForgeContext context) external view returns (bool result); + + /// Sets environment variables. + function setEnv(string calldata name, string calldata value) external; + + // ======== EVM ======== + + /// Gets all accessed reads and write slot from a `vm.record` session, for a given address. + function accesses(address target) external returns (bytes32[] memory readSlots, bytes32[] memory writeSlots); + + /// Gets the address for a given private key. + function addr(uint256 privateKey) external pure returns (address keyAddr); + + /// Gets all the logs according to specified filter. + function eth_getLogs(uint256 fromBlock, uint256 toBlock, address target, bytes32[] calldata topics) + external + returns (EthGetLogs[] memory logs); + + /// Gets the current `block.blobbasefee`. + /// You should use this instead of `block.blobbasefee` if you use `vm.blobBaseFee`, as `block.blobbasefee` is assumed to be constant across a transaction, + /// and as a result will get optimized out by the compiler. + /// See https://github.com/foundry-rs/foundry/issues/6180 + function getBlobBaseFee() external view returns (uint256 blobBaseFee); + + /// Gets the current `block.number`. + /// You should use this instead of `block.number` if you use `vm.roll`, as `block.number` is assumed to be constant across a transaction, + /// and as a result will get optimized out by the compiler. + /// See https://github.com/foundry-rs/foundry/issues/6180 + function getBlockNumber() external view returns (uint256 height); + + /// Gets the current `block.timestamp`. + /// You should use this instead of `block.timestamp` if you use `vm.warp`, as `block.timestamp` is assumed to be constant across a transaction, + /// and as a result will get optimized out by the compiler. + /// See https://github.com/foundry-rs/foundry/issues/6180 + function getBlockTimestamp() external view returns (uint256 timestamp); + + /// Gets the map key and parent of a mapping at a given slot, for a given address. + function getMappingKeyAndParentOf(address target, bytes32 elementSlot) + external + returns (bool found, bytes32 key, bytes32 parent); + + /// Gets the number of elements in the mapping at the given slot, for a given address. + function getMappingLength(address target, bytes32 mappingSlot) external returns (uint256 length); + + /// Gets the elements at index idx of the mapping at the given slot, for a given address. The + /// index must be less than the length of the mapping (i.e. the number of keys in the mapping). + function getMappingSlotAt(address target, bytes32 mappingSlot, uint256 idx) external returns (bytes32 value); + + /// Gets the nonce of an account. + function getNonce(address account) external view returns (uint64 nonce); + + /// Get the nonce of a `Wallet`. + function getNonce(Wallet calldata wallet) external returns (uint64 nonce); + + /// Gets all the recorded logs. + function getRecordedLogs() external returns (Log[] memory logs); + + /// Gets the gas used in the last call. + function lastCallGas() external view returns (Gas memory gas); + + /// Loads a storage slot from an address. + function load(address target, bytes32 slot) external view returns (bytes32 data); + + /// Pauses gas metering (i.e. gas usage is not counted). Noop if already paused. + function pauseGasMetering() external; + + /// Records all storage reads and writes. + function record() external; + + /// Record all the transaction logs. + function recordLogs() external; + + /// Resumes gas metering (i.e. gas usage is counted again). Noop if already on. + function resumeGasMetering() external; + + /// Performs an Ethereum JSON-RPC request to the current fork URL. + function rpc(string calldata method, string calldata params) external returns (bytes memory data); + + /// Performs an Ethereum JSON-RPC request to the given endpoint. + function rpc(string calldata urlOrAlias, string calldata method, string calldata params) + external + returns (bytes memory data); + + /// Starts recording all map SSTOREs for later retrieval. + function startMappingRecording() external; + + /// Record all account accesses as part of CREATE, CALL or SELFDESTRUCT opcodes in order, + /// along with the context of the calls + function startStateDiffRecording() external; + + /// Returns an ordered array of all account accesses from a `vm.startStateDiffRecording` session. + function stopAndReturnStateDiff() external returns (AccountAccess[] memory accountAccesses); + + /// Stops recording all map SSTOREs for later retrieval and clears the recorded data. + function stopMappingRecording() external; + + // ======== Filesystem ======== + + /// Closes file for reading, resetting the offset and allowing to read it from beginning with readLine. + /// `path` is relative to the project root. + function closeFile(string calldata path) external; + + /// Copies the contents of one file to another. This function will **overwrite** the contents of `to`. + /// On success, the total number of bytes copied is returned and it is equal to the length of the `to` file as reported by `metadata`. + /// Both `from` and `to` are relative to the project root. + function copyFile(string calldata from, string calldata to) external returns (uint64 copied); + + /// Creates a new, empty directory at the provided path. + /// This cheatcode will revert in the following situations, but is not limited to just these cases: + /// - User lacks permissions to modify `path`. + /// - A parent of the given path doesn't exist and `recursive` is false. + /// - `path` already exists and `recursive` is false. + /// `path` is relative to the project root. + function createDir(string calldata path, bool recursive) external; + + /// Deploys a contract from an artifact file. Takes in the relative path to the json file or the path to the + /// artifact in the form of :: where and parts are optional. + function deployCode(string calldata artifactPath) external returns (address deployedAddress); + + /// Deploys a contract from an artifact file. Takes in the relative path to the json file or the path to the + /// artifact in the form of :: where and parts are optional. + /// Additionaly accepts abi-encoded constructor arguments. + function deployCode(string calldata artifactPath, bytes calldata constructorArgs) + external + returns (address deployedAddress); + + /// Returns true if the given path points to an existing entity, else returns false. + function exists(string calldata path) external returns (bool result); + + /// Performs a foreign function call via the terminal. + function ffi(string[] calldata commandInput) external returns (bytes memory result); + + /// Given a path, query the file system to get information about a file, directory, etc. + function fsMetadata(string calldata path) external view returns (FsMetadata memory metadata); + + /// Gets the creation bytecode from an artifact file. Takes in the relative path to the json file or the path to the + /// artifact in the form of :: where and parts are optional. + function getCode(string calldata artifactPath) external view returns (bytes memory creationBytecode); + + /// Gets the deployed bytecode from an artifact file. Takes in the relative path to the json file or the path to the + /// artifact in the form of :: where and parts are optional. + function getDeployedCode(string calldata artifactPath) external view returns (bytes memory runtimeBytecode); + + /// Returns true if the path exists on disk and is pointing at a directory, else returns false. + function isDir(string calldata path) external returns (bool result); + + /// Returns true if the path exists on disk and is pointing at a regular file, else returns false. + function isFile(string calldata path) external returns (bool result); + + /// Get the path of the current project root. + function projectRoot() external view returns (string memory path); + + /// Prompts the user for a string value in the terminal. + function prompt(string calldata promptText) external returns (string memory input); + + /// Prompts the user for an address in the terminal. + function promptAddress(string calldata promptText) external returns (address); + + /// Prompts the user for a hidden string value in the terminal. + function promptSecret(string calldata promptText) external returns (string memory input); + + /// Prompts the user for hidden uint256 in the terminal (usually pk). + function promptSecretUint(string calldata promptText) external returns (uint256); + + /// Prompts the user for uint256 in the terminal. + function promptUint(string calldata promptText) external returns (uint256); + + /// Reads the directory at the given path recursively, up to `maxDepth`. + /// `maxDepth` defaults to 1, meaning only the direct children of the given directory will be returned. + /// Follows symbolic links if `followLinks` is true. + function readDir(string calldata path) external view returns (DirEntry[] memory entries); + + /// See `readDir(string)`. + function readDir(string calldata path, uint64 maxDepth) external view returns (DirEntry[] memory entries); + + /// See `readDir(string)`. + function readDir(string calldata path, uint64 maxDepth, bool followLinks) + external + view + returns (DirEntry[] memory entries); + + /// Reads the entire content of file to string. `path` is relative to the project root. + function readFile(string calldata path) external view returns (string memory data); + + /// Reads the entire content of file as binary. `path` is relative to the project root. + function readFileBinary(string calldata path) external view returns (bytes memory data); + + /// Reads next line of file to string. + function readLine(string calldata path) external view returns (string memory line); + + /// Reads a symbolic link, returning the path that the link points to. + /// This cheatcode will revert in the following situations, but is not limited to just these cases: + /// - `path` is not a symbolic link. + /// - `path` does not exist. + function readLink(string calldata linkPath) external view returns (string memory targetPath); + + /// Removes a directory at the provided path. + /// This cheatcode will revert in the following situations, but is not limited to just these cases: + /// - `path` doesn't exist. + /// - `path` isn't a directory. + /// - User lacks permissions to modify `path`. + /// - The directory is not empty and `recursive` is false. + /// `path` is relative to the project root. + function removeDir(string calldata path, bool recursive) external; + + /// Removes a file from the filesystem. + /// This cheatcode will revert in the following situations, but is not limited to just these cases: + /// - `path` points to a directory. + /// - The file doesn't exist. + /// - The user lacks permissions to remove the file. + /// `path` is relative to the project root. + function removeFile(string calldata path) external; + + /// Performs a foreign function call via terminal and returns the exit code, stdout, and stderr. + function tryFfi(string[] calldata commandInput) external returns (FfiResult memory result); + + /// Returns the time since unix epoch in milliseconds. + function unixTime() external returns (uint256 milliseconds); + + /// Writes data to file, creating a file if it does not exist, and entirely replacing its contents if it does. + /// `path` is relative to the project root. + function writeFile(string calldata path, string calldata data) external; + + /// Writes binary data to a file, creating a file if it does not exist, and entirely replacing its contents if it does. + /// `path` is relative to the project root. + function writeFileBinary(string calldata path, bytes calldata data) external; + + /// Writes line to file, creating a file if it does not exist. + /// `path` is relative to the project root. + function writeLine(string calldata path, string calldata data) external; + + // ======== JSON ======== + + /// Checks if `key` exists in a JSON object + /// `keyExists` is being deprecated in favor of `keyExistsJson`. It will be removed in future versions. + function keyExists(string calldata json, string calldata key) external view returns (bool); + + /// Checks if `key` exists in a JSON object. + function keyExistsJson(string calldata json, string calldata key) external view returns (bool); + + /// Parses a string of JSON data at `key` and coerces it to `address`. + function parseJsonAddress(string calldata json, string calldata key) external pure returns (address); + + /// Parses a string of JSON data at `key` and coerces it to `address[]`. + function parseJsonAddressArray(string calldata json, string calldata key) + external + pure + returns (address[] memory); + + /// Parses a string of JSON data at `key` and coerces it to `bool`. + function parseJsonBool(string calldata json, string calldata key) external pure returns (bool); + + /// Parses a string of JSON data at `key` and coerces it to `bool[]`. + function parseJsonBoolArray(string calldata json, string calldata key) external pure returns (bool[] memory); + + /// Parses a string of JSON data at `key` and coerces it to `bytes`. + function parseJsonBytes(string calldata json, string calldata key) external pure returns (bytes memory); + + /// Parses a string of JSON data at `key` and coerces it to `bytes32`. + function parseJsonBytes32(string calldata json, string calldata key) external pure returns (bytes32); + + /// Parses a string of JSON data at `key` and coerces it to `bytes32[]`. + function parseJsonBytes32Array(string calldata json, string calldata key) + external + pure + returns (bytes32[] memory); + + /// Parses a string of JSON data at `key` and coerces it to `bytes[]`. + function parseJsonBytesArray(string calldata json, string calldata key) external pure returns (bytes[] memory); + + /// Parses a string of JSON data at `key` and coerces it to `int256`. + function parseJsonInt(string calldata json, string calldata key) external pure returns (int256); + + /// Parses a string of JSON data at `key` and coerces it to `int256[]`. + function parseJsonIntArray(string calldata json, string calldata key) external pure returns (int256[] memory); + + /// Returns an array of all the keys in a JSON object. + function parseJsonKeys(string calldata json, string calldata key) external pure returns (string[] memory keys); + + /// Parses a string of JSON data at `key` and coerces it to `string`. + function parseJsonString(string calldata json, string calldata key) external pure returns (string memory); + + /// Parses a string of JSON data at `key` and coerces it to `string[]`. + function parseJsonStringArray(string calldata json, string calldata key) external pure returns (string[] memory); + + /// Parses a string of JSON data at `key` and coerces it to type array corresponding to `typeDescription`. + function parseJsonTypeArray(string calldata json, string calldata key, string calldata typeDescription) + external + pure + returns (bytes memory); + + /// Parses a string of JSON data and coerces it to type corresponding to `typeDescription`. + function parseJsonType(string calldata json, string calldata typeDescription) + external + pure + returns (bytes memory); + + /// Parses a string of JSON data at `key` and coerces it to type corresponding to `typeDescription`. + function parseJsonType(string calldata json, string calldata key, string calldata typeDescription) + external + pure + returns (bytes memory); + + /// Parses a string of JSON data at `key` and coerces it to `uint256`. + function parseJsonUint(string calldata json, string calldata key) external pure returns (uint256); + + /// Parses a string of JSON data at `key` and coerces it to `uint256[]`. + function parseJsonUintArray(string calldata json, string calldata key) external pure returns (uint256[] memory); + + /// ABI-encodes a JSON object. + function parseJson(string calldata json) external pure returns (bytes memory abiEncodedData); + + /// ABI-encodes a JSON object at `key`. + function parseJson(string calldata json, string calldata key) external pure returns (bytes memory abiEncodedData); + + /// See `serializeJson`. + function serializeAddress(string calldata objectKey, string calldata valueKey, address value) + external + returns (string memory json); + + /// See `serializeJson`. + function serializeAddress(string calldata objectKey, string calldata valueKey, address[] calldata values) + external + returns (string memory json); + + /// See `serializeJson`. + function serializeBool(string calldata objectKey, string calldata valueKey, bool value) + external + returns (string memory json); + + /// See `serializeJson`. + function serializeBool(string calldata objectKey, string calldata valueKey, bool[] calldata values) + external + returns (string memory json); + + /// See `serializeJson`. + function serializeBytes32(string calldata objectKey, string calldata valueKey, bytes32 value) + external + returns (string memory json); + + /// See `serializeJson`. + function serializeBytes32(string calldata objectKey, string calldata valueKey, bytes32[] calldata values) + external + returns (string memory json); + + /// See `serializeJson`. + function serializeBytes(string calldata objectKey, string calldata valueKey, bytes calldata value) + external + returns (string memory json); + + /// See `serializeJson`. + function serializeBytes(string calldata objectKey, string calldata valueKey, bytes[] calldata values) + external + returns (string memory json); + + /// See `serializeJson`. + function serializeInt(string calldata objectKey, string calldata valueKey, int256 value) + external + returns (string memory json); + + /// See `serializeJson`. + function serializeInt(string calldata objectKey, string calldata valueKey, int256[] calldata values) + external + returns (string memory json); + + /// Serializes a key and value to a JSON object stored in-memory that can be later written to a file. + /// Returns the stringified version of the specific JSON file up to that moment. + function serializeJson(string calldata objectKey, string calldata value) external returns (string memory json); + + /// See `serializeJson`. + function serializeJsonType(string calldata typeDescription, bytes calldata value) + external + pure + returns (string memory json); + + /// See `serializeJson`. + function serializeJsonType( + string calldata objectKey, + string calldata valueKey, + string calldata typeDescription, + bytes calldata value + ) external returns (string memory json); + + /// See `serializeJson`. + function serializeString(string calldata objectKey, string calldata valueKey, string calldata value) + external + returns (string memory json); + + /// See `serializeJson`. + function serializeString(string calldata objectKey, string calldata valueKey, string[] calldata values) + external + returns (string memory json); + + /// See `serializeJson`. + function serializeUintToHex(string calldata objectKey, string calldata valueKey, uint256 value) + external + returns (string memory json); + + /// See `serializeJson`. + function serializeUint(string calldata objectKey, string calldata valueKey, uint256 value) + external + returns (string memory json); + + /// See `serializeJson`. + function serializeUint(string calldata objectKey, string calldata valueKey, uint256[] calldata values) + external + returns (string memory json); + + /// Write a serialized JSON object to a file. If the file exists, it will be overwritten. + function writeJson(string calldata json, string calldata path) external; + + /// Write a serialized JSON object to an **existing** JSON file, replacing a value with key = + /// This is useful to replace a specific value of a JSON file, without having to parse the entire thing. + function writeJson(string calldata json, string calldata path, string calldata valueKey) external; + + // ======== Scripting ======== + + /// Takes a signed transaction and broadcasts it to the network. + function broadcastRawTransaction(bytes calldata data) external; + + /// Has the next call (at this call depth only) create transactions that can later be signed and sent onchain. + /// Broadcasting address is determined by checking the following in order: + /// 1. If `--sender` argument was provided, that address is used. + /// 2. If exactly one signer (e.g. private key, hw wallet, keystore) is set when `forge broadcast` is invoked, that signer is used. + /// 3. Otherwise, default foundry sender (1804c8AB1F12E6bbf3894d4083f33e07309d1f38) is used. + function broadcast() external; + + /// Has the next call (at this call depth only) create a transaction with the address provided + /// as the sender that can later be signed and sent onchain. + function broadcast(address signer) external; + + /// Has the next call (at this call depth only) create a transaction with the private key + /// provided as the sender that can later be signed and sent onchain. + function broadcast(uint256 privateKey) external; + + /// Has all subsequent calls (at this call depth only) create transactions that can later be signed and sent onchain. + /// Broadcasting address is determined by checking the following in order: + /// 1. If `--sender` argument was provided, that address is used. + /// 2. If exactly one signer (e.g. private key, hw wallet, keystore) is set when `forge broadcast` is invoked, that signer is used. + /// 3. Otherwise, default foundry sender (1804c8AB1F12E6bbf3894d4083f33e07309d1f38) is used. + function startBroadcast() external; + + /// Has all subsequent calls (at this call depth only) create transactions with the address + /// provided that can later be signed and sent onchain. + function startBroadcast(address signer) external; + + /// Has all subsequent calls (at this call depth only) create transactions with the private key + /// provided that can later be signed and sent onchain. + function startBroadcast(uint256 privateKey) external; + + /// Stops collecting onchain transactions. + function stopBroadcast() external; + + // ======== String ======== + + /// Returns the index of the first occurrence of a `key` in an `input` string. + /// Returns `NOT_FOUND` (i.e. `type(uint256).max`) if the `key` is not found. + /// Returns 0 in case of an empty `key`. + function indexOf(string calldata input, string calldata key) external pure returns (uint256); + + /// Parses the given `string` into an `address`. + function parseAddress(string calldata stringifiedValue) external pure returns (address parsedValue); + + /// Parses the given `string` into a `bool`. + function parseBool(string calldata stringifiedValue) external pure returns (bool parsedValue); + + /// Parses the given `string` into `bytes`. + function parseBytes(string calldata stringifiedValue) external pure returns (bytes memory parsedValue); + + /// Parses the given `string` into a `bytes32`. + function parseBytes32(string calldata stringifiedValue) external pure returns (bytes32 parsedValue); + + /// Parses the given `string` into a `int256`. + function parseInt(string calldata stringifiedValue) external pure returns (int256 parsedValue); + + /// Parses the given `string` into a `uint256`. + function parseUint(string calldata stringifiedValue) external pure returns (uint256 parsedValue); + + /// Replaces occurrences of `from` in the given `string` with `to`. + function replace(string calldata input, string calldata from, string calldata to) + external + pure + returns (string memory output); + + /// Splits the given `string` into an array of strings divided by the `delimiter`. + function split(string calldata input, string calldata delimiter) external pure returns (string[] memory outputs); + + /// Converts the given `string` value to Lowercase. + function toLowercase(string calldata input) external pure returns (string memory output); + + /// Converts the given value to a `string`. + function toString(address value) external pure returns (string memory stringifiedValue); + + /// Converts the given value to a `string`. + function toString(bytes calldata value) external pure returns (string memory stringifiedValue); + + /// Converts the given value to a `string`. + function toString(bytes32 value) external pure returns (string memory stringifiedValue); + + /// Converts the given value to a `string`. + function toString(bool value) external pure returns (string memory stringifiedValue); + + /// Converts the given value to a `string`. + function toString(uint256 value) external pure returns (string memory stringifiedValue); + + /// Converts the given value to a `string`. + function toString(int256 value) external pure returns (string memory stringifiedValue); + + /// Converts the given `string` value to Uppercase. + function toUppercase(string calldata input) external pure returns (string memory output); + + /// Trims leading and trailing whitespace from the given `string` value. + function trim(string calldata input) external pure returns (string memory output); + + // ======== Testing ======== + + /// Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. + /// Formats values with decimals in failure message. + function assertApproxEqAbsDecimal(uint256 left, uint256 right, uint256 maxDelta, uint256 decimals) external pure; + + /// Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. + /// Formats values with decimals in failure message. Includes error message into revert string on failure. + function assertApproxEqAbsDecimal( + uint256 left, + uint256 right, + uint256 maxDelta, + uint256 decimals, + string calldata error + ) external pure; + + /// Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. + /// Formats values with decimals in failure message. + function assertApproxEqAbsDecimal(int256 left, int256 right, uint256 maxDelta, uint256 decimals) external pure; + + /// Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. + /// Formats values with decimals in failure message. Includes error message into revert string on failure. + function assertApproxEqAbsDecimal( + int256 left, + int256 right, + uint256 maxDelta, + uint256 decimals, + string calldata error + ) external pure; + + /// Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. + function assertApproxEqAbs(uint256 left, uint256 right, uint256 maxDelta) external pure; + + /// Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. + /// Includes error message into revert string on failure. + function assertApproxEqAbs(uint256 left, uint256 right, uint256 maxDelta, string calldata error) external pure; + + /// Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. + function assertApproxEqAbs(int256 left, int256 right, uint256 maxDelta) external pure; + + /// Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. + /// Includes error message into revert string on failure. + function assertApproxEqAbs(int256 left, int256 right, uint256 maxDelta, string calldata error) external pure; + + /// Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. + /// `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% + /// Formats values with decimals in failure message. + function assertApproxEqRelDecimal(uint256 left, uint256 right, uint256 maxPercentDelta, uint256 decimals) + external + pure; + + /// Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. + /// `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% + /// Formats values with decimals in failure message. Includes error message into revert string on failure. + function assertApproxEqRelDecimal( + uint256 left, + uint256 right, + uint256 maxPercentDelta, + uint256 decimals, + string calldata error + ) external pure; + + /// Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. + /// `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% + /// Formats values with decimals in failure message. + function assertApproxEqRelDecimal(int256 left, int256 right, uint256 maxPercentDelta, uint256 decimals) + external + pure; + + /// Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. + /// `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% + /// Formats values with decimals in failure message. Includes error message into revert string on failure. + function assertApproxEqRelDecimal( + int256 left, + int256 right, + uint256 maxPercentDelta, + uint256 decimals, + string calldata error + ) external pure; + + /// Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. + /// `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% + function assertApproxEqRel(uint256 left, uint256 right, uint256 maxPercentDelta) external pure; + + /// Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. + /// `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% + /// Includes error message into revert string on failure. + function assertApproxEqRel(uint256 left, uint256 right, uint256 maxPercentDelta, string calldata error) + external + pure; + + /// Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. + /// `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% + function assertApproxEqRel(int256 left, int256 right, uint256 maxPercentDelta) external pure; + + /// Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. + /// `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% + /// Includes error message into revert string on failure. + function assertApproxEqRel(int256 left, int256 right, uint256 maxPercentDelta, string calldata error) + external + pure; + + /// Asserts that two `uint256` values are equal, formatting them with decimals in failure message. + function assertEqDecimal(uint256 left, uint256 right, uint256 decimals) external pure; + + /// Asserts that two `uint256` values are equal, formatting them with decimals in failure message. + /// Includes error message into revert string on failure. + function assertEqDecimal(uint256 left, uint256 right, uint256 decimals, string calldata error) external pure; + + /// Asserts that two `int256` values are equal, formatting them with decimals in failure message. + function assertEqDecimal(int256 left, int256 right, uint256 decimals) external pure; + + /// Asserts that two `int256` values are equal, formatting them with decimals in failure message. + /// Includes error message into revert string on failure. + function assertEqDecimal(int256 left, int256 right, uint256 decimals, string calldata error) external pure; + + /// Asserts that two `bool` values are equal. + function assertEq(bool left, bool right) external pure; + + /// Asserts that two `bool` values are equal and includes error message into revert string on failure. + function assertEq(bool left, bool right, string calldata error) external pure; + + /// Asserts that two `string` values are equal. + function assertEq(string calldata left, string calldata right) external pure; + + /// Asserts that two `string` values are equal and includes error message into revert string on failure. + function assertEq(string calldata left, string calldata right, string calldata error) external pure; + + /// Asserts that two `bytes` values are equal. + function assertEq(bytes calldata left, bytes calldata right) external pure; + + /// Asserts that two `bytes` values are equal and includes error message into revert string on failure. + function assertEq(bytes calldata left, bytes calldata right, string calldata error) external pure; + + /// Asserts that two arrays of `bool` values are equal. + function assertEq(bool[] calldata left, bool[] calldata right) external pure; + + /// Asserts that two arrays of `bool` values are equal and includes error message into revert string on failure. + function assertEq(bool[] calldata left, bool[] calldata right, string calldata error) external pure; + + /// Asserts that two arrays of `uint256 values are equal. + function assertEq(uint256[] calldata left, uint256[] calldata right) external pure; + + /// Asserts that two arrays of `uint256` values are equal and includes error message into revert string on failure. + function assertEq(uint256[] calldata left, uint256[] calldata right, string calldata error) external pure; + + /// Asserts that two arrays of `int256` values are equal. + function assertEq(int256[] calldata left, int256[] calldata right) external pure; + + /// Asserts that two arrays of `int256` values are equal and includes error message into revert string on failure. + function assertEq(int256[] calldata left, int256[] calldata right, string calldata error) external pure; + + /// Asserts that two `uint256` values are equal. + function assertEq(uint256 left, uint256 right) external pure; + + /// Asserts that two arrays of `address` values are equal. + function assertEq(address[] calldata left, address[] calldata right) external pure; + + /// Asserts that two arrays of `address` values are equal and includes error message into revert string on failure. + function assertEq(address[] calldata left, address[] calldata right, string calldata error) external pure; + + /// Asserts that two arrays of `bytes32` values are equal. + function assertEq(bytes32[] calldata left, bytes32[] calldata right) external pure; + + /// Asserts that two arrays of `bytes32` values are equal and includes error message into revert string on failure. + function assertEq(bytes32[] calldata left, bytes32[] calldata right, string calldata error) external pure; + + /// Asserts that two arrays of `string` values are equal. + function assertEq(string[] calldata left, string[] calldata right) external pure; + + /// Asserts that two arrays of `string` values are equal and includes error message into revert string on failure. + function assertEq(string[] calldata left, string[] calldata right, string calldata error) external pure; + + /// Asserts that two arrays of `bytes` values are equal. + function assertEq(bytes[] calldata left, bytes[] calldata right) external pure; + + /// Asserts that two arrays of `bytes` values are equal and includes error message into revert string on failure. + function assertEq(bytes[] calldata left, bytes[] calldata right, string calldata error) external pure; + + /// Asserts that two `uint256` values are equal and includes error message into revert string on failure. + function assertEq(uint256 left, uint256 right, string calldata error) external pure; + + /// Asserts that two `int256` values are equal. + function assertEq(int256 left, int256 right) external pure; + + /// Asserts that two `int256` values are equal and includes error message into revert string on failure. + function assertEq(int256 left, int256 right, string calldata error) external pure; + + /// Asserts that two `address` values are equal. + function assertEq(address left, address right) external pure; + + /// Asserts that two `address` values are equal and includes error message into revert string on failure. + function assertEq(address left, address right, string calldata error) external pure; + + /// Asserts that two `bytes32` values are equal. + function assertEq(bytes32 left, bytes32 right) external pure; + + /// Asserts that two `bytes32` values are equal and includes error message into revert string on failure. + function assertEq(bytes32 left, bytes32 right, string calldata error) external pure; + + /// Asserts that the given condition is false. + function assertFalse(bool condition) external pure; + + /// Asserts that the given condition is false and includes error message into revert string on failure. + function assertFalse(bool condition, string calldata error) external pure; + + /// Compares two `uint256` values. Expects first value to be greater than or equal to second. + /// Formats values with decimals in failure message. + function assertGeDecimal(uint256 left, uint256 right, uint256 decimals) external pure; + + /// Compares two `uint256` values. Expects first value to be greater than or equal to second. + /// Formats values with decimals in failure message. Includes error message into revert string on failure. + function assertGeDecimal(uint256 left, uint256 right, uint256 decimals, string calldata error) external pure; + + /// Compares two `int256` values. Expects first value to be greater than or equal to second. + /// Formats values with decimals in failure message. + function assertGeDecimal(int256 left, int256 right, uint256 decimals) external pure; + + /// Compares two `int256` values. Expects first value to be greater than or equal to second. + /// Formats values with decimals in failure message. Includes error message into revert string on failure. + function assertGeDecimal(int256 left, int256 right, uint256 decimals, string calldata error) external pure; + + /// Compares two `uint256` values. Expects first value to be greater than or equal to second. + function assertGe(uint256 left, uint256 right) external pure; + + /// Compares two `uint256` values. Expects first value to be greater than or equal to second. + /// Includes error message into revert string on failure. + function assertGe(uint256 left, uint256 right, string calldata error) external pure; + + /// Compares two `int256` values. Expects first value to be greater than or equal to second. + function assertGe(int256 left, int256 right) external pure; + + /// Compares two `int256` values. Expects first value to be greater than or equal to second. + /// Includes error message into revert string on failure. + function assertGe(int256 left, int256 right, string calldata error) external pure; + + /// Compares two `uint256` values. Expects first value to be greater than second. + /// Formats values with decimals in failure message. + function assertGtDecimal(uint256 left, uint256 right, uint256 decimals) external pure; + + /// Compares two `uint256` values. Expects first value to be greater than second. + /// Formats values with decimals in failure message. Includes error message into revert string on failure. + function assertGtDecimal(uint256 left, uint256 right, uint256 decimals, string calldata error) external pure; + + /// Compares two `int256` values. Expects first value to be greater than second. + /// Formats values with decimals in failure message. + function assertGtDecimal(int256 left, int256 right, uint256 decimals) external pure; + + /// Compares two `int256` values. Expects first value to be greater than second. + /// Formats values with decimals in failure message. Includes error message into revert string on failure. + function assertGtDecimal(int256 left, int256 right, uint256 decimals, string calldata error) external pure; + + /// Compares two `uint256` values. Expects first value to be greater than second. + function assertGt(uint256 left, uint256 right) external pure; + + /// Compares two `uint256` values. Expects first value to be greater than second. + /// Includes error message into revert string on failure. + function assertGt(uint256 left, uint256 right, string calldata error) external pure; + + /// Compares two `int256` values. Expects first value to be greater than second. + function assertGt(int256 left, int256 right) external pure; + + /// Compares two `int256` values. Expects first value to be greater than second. + /// Includes error message into revert string on failure. + function assertGt(int256 left, int256 right, string calldata error) external pure; + + /// Compares two `uint256` values. Expects first value to be less than or equal to second. + /// Formats values with decimals in failure message. + function assertLeDecimal(uint256 left, uint256 right, uint256 decimals) external pure; + + /// Compares two `uint256` values. Expects first value to be less than or equal to second. + /// Formats values with decimals in failure message. Includes error message into revert string on failure. + function assertLeDecimal(uint256 left, uint256 right, uint256 decimals, string calldata error) external pure; + + /// Compares two `int256` values. Expects first value to be less than or equal to second. + /// Formats values with decimals in failure message. + function assertLeDecimal(int256 left, int256 right, uint256 decimals) external pure; + + /// Compares two `int256` values. Expects first value to be less than or equal to second. + /// Formats values with decimals in failure message. Includes error message into revert string on failure. + function assertLeDecimal(int256 left, int256 right, uint256 decimals, string calldata error) external pure; + + /// Compares two `uint256` values. Expects first value to be less than or equal to second. + function assertLe(uint256 left, uint256 right) external pure; + + /// Compares two `uint256` values. Expects first value to be less than or equal to second. + /// Includes error message into revert string on failure. + function assertLe(uint256 left, uint256 right, string calldata error) external pure; + + /// Compares two `int256` values. Expects first value to be less than or equal to second. + function assertLe(int256 left, int256 right) external pure; + + /// Compares two `int256` values. Expects first value to be less than or equal to second. + /// Includes error message into revert string on failure. + function assertLe(int256 left, int256 right, string calldata error) external pure; + + /// Compares two `uint256` values. Expects first value to be less than second. + /// Formats values with decimals in failure message. + function assertLtDecimal(uint256 left, uint256 right, uint256 decimals) external pure; + + /// Compares two `uint256` values. Expects first value to be less than second. + /// Formats values with decimals in failure message. Includes error message into revert string on failure. + function assertLtDecimal(uint256 left, uint256 right, uint256 decimals, string calldata error) external pure; + + /// Compares two `int256` values. Expects first value to be less than second. + /// Formats values with decimals in failure message. + function assertLtDecimal(int256 left, int256 right, uint256 decimals) external pure; + + /// Compares two `int256` values. Expects first value to be less than second. + /// Formats values with decimals in failure message. Includes error message into revert string on failure. + function assertLtDecimal(int256 left, int256 right, uint256 decimals, string calldata error) external pure; + + /// Compares two `uint256` values. Expects first value to be less than second. + function assertLt(uint256 left, uint256 right) external pure; + + /// Compares two `uint256` values. Expects first value to be less than second. + /// Includes error message into revert string on failure. + function assertLt(uint256 left, uint256 right, string calldata error) external pure; + + /// Compares two `int256` values. Expects first value to be less than second. + function assertLt(int256 left, int256 right) external pure; + + /// Compares two `int256` values. Expects first value to be less than second. + /// Includes error message into revert string on failure. + function assertLt(int256 left, int256 right, string calldata error) external pure; + + /// Asserts that two `uint256` values are not equal, formatting them with decimals in failure message. + function assertNotEqDecimal(uint256 left, uint256 right, uint256 decimals) external pure; + + /// Asserts that two `uint256` values are not equal, formatting them with decimals in failure message. + /// Includes error message into revert string on failure. + function assertNotEqDecimal(uint256 left, uint256 right, uint256 decimals, string calldata error) external pure; + + /// Asserts that two `int256` values are not equal, formatting them with decimals in failure message. + function assertNotEqDecimal(int256 left, int256 right, uint256 decimals) external pure; + + /// Asserts that two `int256` values are not equal, formatting them with decimals in failure message. + /// Includes error message into revert string on failure. + function assertNotEqDecimal(int256 left, int256 right, uint256 decimals, string calldata error) external pure; + + /// Asserts that two `bool` values are not equal. + function assertNotEq(bool left, bool right) external pure; + + /// Asserts that two `bool` values are not equal and includes error message into revert string on failure. + function assertNotEq(bool left, bool right, string calldata error) external pure; + + /// Asserts that two `string` values are not equal. + function assertNotEq(string calldata left, string calldata right) external pure; + + /// Asserts that two `string` values are not equal and includes error message into revert string on failure. + function assertNotEq(string calldata left, string calldata right, string calldata error) external pure; + + /// Asserts that two `bytes` values are not equal. + function assertNotEq(bytes calldata left, bytes calldata right) external pure; + + /// Asserts that two `bytes` values are not equal and includes error message into revert string on failure. + function assertNotEq(bytes calldata left, bytes calldata right, string calldata error) external pure; + + /// Asserts that two arrays of `bool` values are not equal. + function assertNotEq(bool[] calldata left, bool[] calldata right) external pure; + + /// Asserts that two arrays of `bool` values are not equal and includes error message into revert string on failure. + function assertNotEq(bool[] calldata left, bool[] calldata right, string calldata error) external pure; + + /// Asserts that two arrays of `uint256` values are not equal. + function assertNotEq(uint256[] calldata left, uint256[] calldata right) external pure; + + /// Asserts that two arrays of `uint256` values are not equal and includes error message into revert string on failure. + function assertNotEq(uint256[] calldata left, uint256[] calldata right, string calldata error) external pure; + + /// Asserts that two arrays of `int256` values are not equal. + function assertNotEq(int256[] calldata left, int256[] calldata right) external pure; + + /// Asserts that two arrays of `int256` values are not equal and includes error message into revert string on failure. + function assertNotEq(int256[] calldata left, int256[] calldata right, string calldata error) external pure; + + /// Asserts that two `uint256` values are not equal. + function assertNotEq(uint256 left, uint256 right) external pure; + + /// Asserts that two arrays of `address` values are not equal. + function assertNotEq(address[] calldata left, address[] calldata right) external pure; + + /// Asserts that two arrays of `address` values are not equal and includes error message into revert string on failure. + function assertNotEq(address[] calldata left, address[] calldata right, string calldata error) external pure; + + /// Asserts that two arrays of `bytes32` values are not equal. + function assertNotEq(bytes32[] calldata left, bytes32[] calldata right) external pure; + + /// Asserts that two arrays of `bytes32` values are not equal and includes error message into revert string on failure. + function assertNotEq(bytes32[] calldata left, bytes32[] calldata right, string calldata error) external pure; + + /// Asserts that two arrays of `string` values are not equal. + function assertNotEq(string[] calldata left, string[] calldata right) external pure; + + /// Asserts that two arrays of `string` values are not equal and includes error message into revert string on failure. + function assertNotEq(string[] calldata left, string[] calldata right, string calldata error) external pure; + + /// Asserts that two arrays of `bytes` values are not equal. + function assertNotEq(bytes[] calldata left, bytes[] calldata right) external pure; + + /// Asserts that two arrays of `bytes` values are not equal and includes error message into revert string on failure. + function assertNotEq(bytes[] calldata left, bytes[] calldata right, string calldata error) external pure; + + /// Asserts that two `uint256` values are not equal and includes error message into revert string on failure. + function assertNotEq(uint256 left, uint256 right, string calldata error) external pure; + + /// Asserts that two `int256` values are not equal. + function assertNotEq(int256 left, int256 right) external pure; + + /// Asserts that two `int256` values are not equal and includes error message into revert string on failure. + function assertNotEq(int256 left, int256 right, string calldata error) external pure; + + /// Asserts that two `address` values are not equal. + function assertNotEq(address left, address right) external pure; + + /// Asserts that two `address` values are not equal and includes error message into revert string on failure. + function assertNotEq(address left, address right, string calldata error) external pure; + + /// Asserts that two `bytes32` values are not equal. + function assertNotEq(bytes32 left, bytes32 right) external pure; + + /// Asserts that two `bytes32` values are not equal and includes error message into revert string on failure. + function assertNotEq(bytes32 left, bytes32 right, string calldata error) external pure; + + /// Asserts that the given condition is true. + function assertTrue(bool condition) external pure; + + /// Asserts that the given condition is true and includes error message into revert string on failure. + function assertTrue(bool condition, string calldata error) external pure; + + /// If the condition is false, discard this run's fuzz inputs and generate new ones. + function assume(bool condition) external pure; + + /// Writes a breakpoint to jump to in the debugger. + function breakpoint(string calldata char) external; + + /// Writes a conditional breakpoint to jump to in the debugger. + function breakpoint(string calldata char, bool value) external; + + /// Returns the Foundry version. + /// Format: ++ + /// Sample output: 0.2.0+faa94c384+202407110019 + /// Note: Build timestamps may vary slightly across platforms due to separate CI jobs. + /// For reliable version comparisons, use YYYYMMDD0000 format (e.g., >= 202407110000) + /// to compare timestamps while ignoring minor time differences. + function getFoundryVersion() external view returns (string memory version); + + /// Returns the RPC url for the given alias. + function rpcUrl(string calldata rpcAlias) external view returns (string memory json); + + /// Returns all rpc urls and their aliases as structs. + function rpcUrlStructs() external view returns (Rpc[] memory urls); + + /// Returns all rpc urls and their aliases `[alias, url][]`. + function rpcUrls() external view returns (string[2][] memory urls); + + /// Suspends execution of the main thread for `duration` milliseconds. + function sleep(uint256 duration) external; + + // ======== Toml ======== + + /// Checks if `key` exists in a TOML table. + function keyExistsToml(string calldata toml, string calldata key) external view returns (bool); + + /// Parses a string of TOML data at `key` and coerces it to `address`. + function parseTomlAddress(string calldata toml, string calldata key) external pure returns (address); + + /// Parses a string of TOML data at `key` and coerces it to `address[]`. + function parseTomlAddressArray(string calldata toml, string calldata key) + external + pure + returns (address[] memory); + + /// Parses a string of TOML data at `key` and coerces it to `bool`. + function parseTomlBool(string calldata toml, string calldata key) external pure returns (bool); + + /// Parses a string of TOML data at `key` and coerces it to `bool[]`. + function parseTomlBoolArray(string calldata toml, string calldata key) external pure returns (bool[] memory); + + /// Parses a string of TOML data at `key` and coerces it to `bytes`. + function parseTomlBytes(string calldata toml, string calldata key) external pure returns (bytes memory); + + /// Parses a string of TOML data at `key` and coerces it to `bytes32`. + function parseTomlBytes32(string calldata toml, string calldata key) external pure returns (bytes32); + + /// Parses a string of TOML data at `key` and coerces it to `bytes32[]`. + function parseTomlBytes32Array(string calldata toml, string calldata key) + external + pure + returns (bytes32[] memory); + + /// Parses a string of TOML data at `key` and coerces it to `bytes[]`. + function parseTomlBytesArray(string calldata toml, string calldata key) external pure returns (bytes[] memory); + + /// Parses a string of TOML data at `key` and coerces it to `int256`. + function parseTomlInt(string calldata toml, string calldata key) external pure returns (int256); + + /// Parses a string of TOML data at `key` and coerces it to `int256[]`. + function parseTomlIntArray(string calldata toml, string calldata key) external pure returns (int256[] memory); + + /// Returns an array of all the keys in a TOML table. + function parseTomlKeys(string calldata toml, string calldata key) external pure returns (string[] memory keys); + + /// Parses a string of TOML data at `key` and coerces it to `string`. + function parseTomlString(string calldata toml, string calldata key) external pure returns (string memory); + + /// Parses a string of TOML data at `key` and coerces it to `string[]`. + function parseTomlStringArray(string calldata toml, string calldata key) external pure returns (string[] memory); + + /// Parses a string of TOML data at `key` and coerces it to `uint256`. + function parseTomlUint(string calldata toml, string calldata key) external pure returns (uint256); + + /// Parses a string of TOML data at `key` and coerces it to `uint256[]`. + function parseTomlUintArray(string calldata toml, string calldata key) external pure returns (uint256[] memory); + + /// ABI-encodes a TOML table. + function parseToml(string calldata toml) external pure returns (bytes memory abiEncodedData); + + /// ABI-encodes a TOML table at `key`. + function parseToml(string calldata toml, string calldata key) external pure returns (bytes memory abiEncodedData); + + /// Takes serialized JSON, converts to TOML and write a serialized TOML to a file. + function writeToml(string calldata json, string calldata path) external; + + /// Takes serialized JSON, converts to TOML and write a serialized TOML table to an **existing** TOML file, replacing a value with key = + /// This is useful to replace a specific value of a TOML file, without having to parse the entire thing. + function writeToml(string calldata json, string calldata path, string calldata valueKey) external; + + // ======== Utilities ======== + + /// Compute the address of a contract created with CREATE2 using the given CREATE2 deployer. + function computeCreate2Address(bytes32 salt, bytes32 initCodeHash, address deployer) + external + pure + returns (address); + + /// Compute the address of a contract created with CREATE2 using the default CREATE2 deployer. + function computeCreate2Address(bytes32 salt, bytes32 initCodeHash) external pure returns (address); + + /// Compute the address a contract will be deployed at for a given deployer address and nonce. + function computeCreateAddress(address deployer, uint256 nonce) external pure returns (address); + + /// Returns ENS namehash for provided string. + function ensNamehash(string calldata name) external pure returns (bytes32); + + /// Gets the label for the specified address. + function getLabel(address account) external view returns (string memory currentLabel); + + /// Labels an address in call traces. + function label(address account, string calldata newLabel) external; + + /// Returns a random `address`. + function randomAddress() external returns (address); + + /// Returns a random uint256 value. + function randomUint() external returns (uint256); + + /// Returns random uin256 value between the provided range (=min..=max). + function randomUint(uint256 min, uint256 max) external returns (uint256); + + /// Encodes a `bytes` value to a base64url string. + function toBase64URL(bytes calldata data) external pure returns (string memory); + + /// Encodes a `string` value to a base64url string. + function toBase64URL(string calldata data) external pure returns (string memory); + + /// Encodes a `bytes` value to a base64 string. + function toBase64(bytes calldata data) external pure returns (string memory); + + /// Encodes a `string` value to a base64 string. + function toBase64(string calldata data) external pure returns (string memory); +} + +/// The `Vm` interface does allow manipulation of the EVM state. These are all intended to be used +/// in tests, but it is not recommended to use these cheats in scripts. +interface Vm is VmSafe { + // ======== EVM ======== + + /// Returns the identifier of the currently active fork. Reverts if no fork is currently active. + function activeFork() external view returns (uint256 forkId); + + /// In forking mode, explicitly grant the given address cheatcode access. + function allowCheatcodes(address account) external; + + /// Sets `block.blobbasefee` + function blobBaseFee(uint256 newBlobBaseFee) external; + + /// Sets the blobhashes in the transaction. + /// Not available on EVM versions before Cancun. + /// If used on unsupported EVM versions it will revert. + function blobhashes(bytes32[] calldata hashes) external; + + /// Sets `block.chainid`. + function chainId(uint256 newChainId) external; + + /// Clears all mocked calls. + function clearMockedCalls() external; + + /// Sets `block.coinbase`. + function coinbase(address newCoinbase) external; + + /// Creates a new fork with the given endpoint and the _latest_ block and returns the identifier of the fork. + function createFork(string calldata urlOrAlias) external returns (uint256 forkId); + + /// Creates a new fork with the given endpoint and block and returns the identifier of the fork. + function createFork(string calldata urlOrAlias, uint256 blockNumber) external returns (uint256 forkId); + + /// Creates a new fork with the given endpoint and at the block the given transaction was mined in, + /// replays all transaction mined in the block before the transaction, and returns the identifier of the fork. + function createFork(string calldata urlOrAlias, bytes32 txHash) external returns (uint256 forkId); + + /// Creates and also selects a new fork with the given endpoint and the latest block and returns the identifier of the fork. + function createSelectFork(string calldata urlOrAlias) external returns (uint256 forkId); + + /// Creates and also selects a new fork with the given endpoint and block and returns the identifier of the fork. + function createSelectFork(string calldata urlOrAlias, uint256 blockNumber) external returns (uint256 forkId); + + /// Creates and also selects new fork with the given endpoint and at the block the given transaction was mined in, + /// replays all transaction mined in the block before the transaction, returns the identifier of the fork. + function createSelectFork(string calldata urlOrAlias, bytes32 txHash) external returns (uint256 forkId); + + /// Sets an address' balance. + function deal(address account, uint256 newBalance) external; + + /// Removes the snapshot with the given ID created by `snapshot`. + /// Takes the snapshot ID to delete. + /// Returns `true` if the snapshot was successfully deleted. + /// Returns `false` if the snapshot does not exist. + function deleteSnapshot(uint256 snapshotId) external returns (bool success); + + /// Removes _all_ snapshots previously created by `snapshot`. + function deleteSnapshots() external; + + /// Sets `block.difficulty`. + /// Not available on EVM versions from Paris onwards. Use `prevrandao` instead. + /// Reverts if used on unsupported EVM versions. + function difficulty(uint256 newDifficulty) external; + + /// Dump a genesis JSON file's `allocs` to disk. + function dumpState(string calldata pathToStateJson) external; + + /// Sets an address' code. + function etch(address target, bytes calldata newRuntimeBytecode) external; + + /// Sets `block.basefee`. + function fee(uint256 newBasefee) external; + + /// Gets the blockhashes from the current transaction. + /// Not available on EVM versions before Cancun. + /// If used on unsupported EVM versions it will revert. + function getBlobhashes() external view returns (bytes32[] memory hashes); + + /// Returns true if the account is marked as persistent. + function isPersistent(address account) external view returns (bool persistent); + + /// Load a genesis JSON file's `allocs` into the in-memory revm state. + function loadAllocs(string calldata pathToAllocsJson) external; + + /// Marks that the account(s) should use persistent storage across fork swaps in a multifork setup + /// Meaning, changes made to the state of this account will be kept when switching forks. + function makePersistent(address account) external; + + /// See `makePersistent(address)`. + function makePersistent(address account0, address account1) external; + + /// See `makePersistent(address)`. + function makePersistent(address account0, address account1, address account2) external; + + /// See `makePersistent(address)`. + function makePersistent(address[] calldata accounts) external; + + /// Reverts a call to an address with specified revert data. + function mockCallRevert(address callee, bytes calldata data, bytes calldata revertData) external; + + /// Reverts a call to an address with a specific `msg.value`, with specified revert data. + function mockCallRevert(address callee, uint256 msgValue, bytes calldata data, bytes calldata revertData) + external; + + /// Mocks a call to an address, returning specified data. + /// Calldata can either be strict or a partial match, e.g. if you only + /// pass a Solidity selector to the expected calldata, then the entire Solidity + /// function will be mocked. + function mockCall(address callee, bytes calldata data, bytes calldata returnData) external; + + /// Mocks a call to an address with a specific `msg.value`, returning specified data. + /// Calldata match takes precedence over `msg.value` in case of ambiguity. + function mockCall(address callee, uint256 msgValue, bytes calldata data, bytes calldata returnData) external; + + /// Sets the *next* call's `msg.sender` to be the input address. + function prank(address msgSender) external; + + /// Sets the *next* call's `msg.sender` to be the input address, and the `tx.origin` to be the second input. + function prank(address msgSender, address txOrigin) external; + + /// Sets `block.prevrandao`. + /// Not available on EVM versions before Paris. Use `difficulty` instead. + /// If used on unsupported EVM versions it will revert. + function prevrandao(bytes32 newPrevrandao) external; + + /// Sets `block.prevrandao`. + /// Not available on EVM versions before Paris. Use `difficulty` instead. + /// If used on unsupported EVM versions it will revert. + function prevrandao(uint256 newPrevrandao) external; + + /// Reads the current `msg.sender` and `tx.origin` from state and reports if there is any active caller modification. + function readCallers() external returns (CallerMode callerMode, address msgSender, address txOrigin); + + /// Resets the nonce of an account to 0 for EOAs and 1 for contract accounts. + function resetNonce(address account) external; + + /// Revert the state of the EVM to a previous snapshot + /// Takes the snapshot ID to revert to. + /// Returns `true` if the snapshot was successfully reverted. + /// Returns `false` if the snapshot does not exist. + /// **Note:** This does not automatically delete the snapshot. To delete the snapshot use `deleteSnapshot`. + function revertTo(uint256 snapshotId) external returns (bool success); + + /// Revert the state of the EVM to a previous snapshot and automatically deletes the snapshots + /// Takes the snapshot ID to revert to. + /// Returns `true` if the snapshot was successfully reverted and deleted. + /// Returns `false` if the snapshot does not exist. + function revertToAndDelete(uint256 snapshotId) external returns (bool success); + + /// Revokes persistent status from the address, previously added via `makePersistent`. + function revokePersistent(address account) external; + + /// See `revokePersistent(address)`. + function revokePersistent(address[] calldata accounts) external; + + /// Sets `block.height`. + function roll(uint256 newHeight) external; + + /// Updates the currently active fork to given block number + /// This is similar to `roll` but for the currently active fork. + function rollFork(uint256 blockNumber) external; + + /// Updates the currently active fork to given transaction. This will `rollFork` with the number + /// of the block the transaction was mined in and replays all transaction mined before it in the block. + function rollFork(bytes32 txHash) external; + + /// Updates the given fork to given block number. + function rollFork(uint256 forkId, uint256 blockNumber) external; + + /// Updates the given fork to block number of the given transaction and replays all transaction mined before it in the block. + function rollFork(uint256 forkId, bytes32 txHash) external; + + /// Takes a fork identifier created by `createFork` and sets the corresponding forked state as active. + function selectFork(uint256 forkId) external; + + /// Set blockhash for the current block. + /// It only sets the blockhash for blocks where `block.number - 256 <= number < block.number`. + function setBlockhash(uint256 blockNumber, bytes32 blockHash) external; + + /// Sets the nonce of an account. Must be higher than the current nonce of the account. + function setNonce(address account, uint64 newNonce) external; + + /// Sets the nonce of an account to an arbitrary value. + function setNonceUnsafe(address account, uint64 newNonce) external; + + /// Snapshot the current state of the evm. + /// Returns the ID of the snapshot that was created. + /// To revert a snapshot use `revertTo`. + function snapshot() external returns (uint256 snapshotId); + + /// Sets all subsequent calls' `msg.sender` to be the input address until `stopPrank` is called. + function startPrank(address msgSender) external; + + /// Sets all subsequent calls' `msg.sender` to be the input address until `stopPrank` is called, and the `tx.origin` to be the second input. + function startPrank(address msgSender, address txOrigin) external; + + /// Resets subsequent calls' `msg.sender` to be `address(this)`. + function stopPrank() external; + + /// Stores a value to an address' storage slot. + function store(address target, bytes32 slot, bytes32 value) external; + + /// Fetches the given transaction from the active fork and executes it on the current state. + function transact(bytes32 txHash) external; + + /// Fetches the given transaction from the given fork and executes it on the current state. + function transact(uint256 forkId, bytes32 txHash) external; + + /// Sets `tx.gasprice`. + function txGasPrice(uint256 newGasPrice) external; + + /// Sets `block.timestamp`. + function warp(uint256 newTimestamp) external; + + // ======== Testing ======== + + /// Expect a call to an address with the specified `msg.value` and calldata, and a *minimum* amount of gas. + function expectCallMinGas(address callee, uint256 msgValue, uint64 minGas, bytes calldata data) external; + + /// Expect given number of calls to an address with the specified `msg.value` and calldata, and a *minimum* amount of gas. + function expectCallMinGas(address callee, uint256 msgValue, uint64 minGas, bytes calldata data, uint64 count) + external; + + /// Expects a call to an address with the specified calldata. + /// Calldata can either be a strict or a partial match. + function expectCall(address callee, bytes calldata data) external; + + /// Expects given number of calls to an address with the specified calldata. + function expectCall(address callee, bytes calldata data, uint64 count) external; + + /// Expects a call to an address with the specified `msg.value` and calldata. + function expectCall(address callee, uint256 msgValue, bytes calldata data) external; + + /// Expects given number of calls to an address with the specified `msg.value` and calldata. + function expectCall(address callee, uint256 msgValue, bytes calldata data, uint64 count) external; + + /// Expect a call to an address with the specified `msg.value`, gas, and calldata. + function expectCall(address callee, uint256 msgValue, uint64 gas, bytes calldata data) external; + + /// Expects given number of calls to an address with the specified `msg.value`, gas, and calldata. + function expectCall(address callee, uint256 msgValue, uint64 gas, bytes calldata data, uint64 count) external; + + /// Prepare an expected anonymous log with (bool checkTopic1, bool checkTopic2, bool checkTopic3, bool checkData.). + /// Call this function, then emit an anonymous event, then call a function. Internally after the call, we check if + /// logs were emitted in the expected order with the expected topics and data (as specified by the booleans). + function expectEmitAnonymous(bool checkTopic0, bool checkTopic1, bool checkTopic2, bool checkTopic3, bool checkData) + external; + + /// Same as the previous method, but also checks supplied address against emitting contract. + function expectEmitAnonymous( + bool checkTopic0, + bool checkTopic1, + bool checkTopic2, + bool checkTopic3, + bool checkData, + address emitter + ) external; + + /// Prepare an expected anonymous log with all topic and data checks enabled. + /// Call this function, then emit an anonymous event, then call a function. Internally after the call, we check if + /// logs were emitted in the expected order with the expected topics and data. + function expectEmitAnonymous() external; + + /// Same as the previous method, but also checks supplied address against emitting contract. + function expectEmitAnonymous(address emitter) external; + + /// Prepare an expected log with (bool checkTopic1, bool checkTopic2, bool checkTopic3, bool checkData.). + /// Call this function, then emit an event, then call a function. Internally after the call, we check if + /// logs were emitted in the expected order with the expected topics and data (as specified by the booleans). + function expectEmit(bool checkTopic1, bool checkTopic2, bool checkTopic3, bool checkData) external; + + /// Same as the previous method, but also checks supplied address against emitting contract. + function expectEmit(bool checkTopic1, bool checkTopic2, bool checkTopic3, bool checkData, address emitter) + external; + + /// Prepare an expected log with all topic and data checks enabled. + /// Call this function, then emit an event, then call a function. Internally after the call, we check if + /// logs were emitted in the expected order with the expected topics and data. + function expectEmit() external; + + /// Same as the previous method, but also checks supplied address against emitting contract. + function expectEmit(address emitter) external; + + /// Expects an error on next call with any revert data. + function expectRevert() external; + + /// Expects an error on next call that starts with the revert data. + function expectRevert(bytes4 revertData) external; + + /// Expects an error on next call that exactly matches the revert data. + function expectRevert(bytes calldata revertData) external; + + /// Only allows memory writes to offsets [0x00, 0x60) ∪ [min, max) in the current subcontext. If any other + /// memory is written to, the test will fail. Can be called multiple times to add more ranges to the set. + function expectSafeMemory(uint64 min, uint64 max) external; + + /// Only allows memory writes to offsets [0x00, 0x60) ∪ [min, max) in the next created subcontext. + /// If any other memory is written to, the test will fail. Can be called multiple times to add more ranges + /// to the set. + function expectSafeMemoryCall(uint64 min, uint64 max) external; + + /// Marks a test as skipped. Must be called at the top of the test. + function skip(bool skipTest) external; + + /// Stops all safe memory expectation in the current subcontext. + function stopExpectSafeMemory() external; +} + +// lib/forge-std/src/console.sol + +library console { + address constant CONSOLE_ADDRESS = address(0x000000000000000000636F6e736F6c652e6c6f67); + + function _castLogPayloadViewToPure( + function(bytes memory) internal view fnIn + ) internal pure returns (function(bytes memory) internal pure fnOut) { + assembly { + fnOut := fnIn + } + } + + function _sendLogPayload(bytes memory payload) internal pure { + _castLogPayloadViewToPure(_sendLogPayloadView)(payload); + } + + function _sendLogPayloadView(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 pure { + _sendLogPayload(abi.encodeWithSignature("log()")); + } + + function logInt(int p0) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(int)", p0)); + } + + function logUint(uint p0) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint)", p0)); + } + + function logString(string memory p0) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(string)", p0)); + } + + function logBool(bool p0) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool)", p0)); + } + + function logAddress(address p0) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address)", p0)); + } + + function logBytes(bytes memory p0) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bytes)", p0)); + } + + function logBytes1(bytes1 p0) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bytes1)", p0)); + } + + function logBytes2(bytes2 p0) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bytes2)", p0)); + } + + function logBytes3(bytes3 p0) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bytes3)", p0)); + } + + function logBytes4(bytes4 p0) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bytes4)", p0)); + } + + function logBytes5(bytes5 p0) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bytes5)", p0)); + } + + function logBytes6(bytes6 p0) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bytes6)", p0)); + } + + function logBytes7(bytes7 p0) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bytes7)", p0)); + } + + function logBytes8(bytes8 p0) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bytes8)", p0)); + } + + function logBytes9(bytes9 p0) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bytes9)", p0)); + } + + function logBytes10(bytes10 p0) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bytes10)", p0)); + } + + function logBytes11(bytes11 p0) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bytes11)", p0)); + } + + function logBytes12(bytes12 p0) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bytes12)", p0)); + } + + function logBytes13(bytes13 p0) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bytes13)", p0)); + } + + function logBytes14(bytes14 p0) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bytes14)", p0)); + } + + function logBytes15(bytes15 p0) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bytes15)", p0)); + } + + function logBytes16(bytes16 p0) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bytes16)", p0)); + } + + function logBytes17(bytes17 p0) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bytes17)", p0)); + } + + function logBytes18(bytes18 p0) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bytes18)", p0)); + } + + function logBytes19(bytes19 p0) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bytes19)", p0)); + } + + function logBytes20(bytes20 p0) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bytes20)", p0)); + } + + function logBytes21(bytes21 p0) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bytes21)", p0)); + } + + function logBytes22(bytes22 p0) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bytes22)", p0)); + } + + function logBytes23(bytes23 p0) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bytes23)", p0)); + } + + function logBytes24(bytes24 p0) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bytes24)", p0)); + } + + function logBytes25(bytes25 p0) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bytes25)", p0)); + } + + function logBytes26(bytes26 p0) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bytes26)", p0)); + } + + function logBytes27(bytes27 p0) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bytes27)", p0)); + } + + function logBytes28(bytes28 p0) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bytes28)", p0)); + } + + function logBytes29(bytes29 p0) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bytes29)", p0)); + } + + function logBytes30(bytes30 p0) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bytes30)", p0)); + } + + function logBytes31(bytes31 p0) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bytes31)", p0)); + } + + function logBytes32(bytes32 p0) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bytes32)", p0)); + } + + function log(uint p0) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint)", p0)); + } + + function log(int p0) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(int)", p0)); + } + + function log(string memory p0) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(string)", p0)); + } + + function log(bool p0) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool)", p0)); + } + + function log(address p0) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address)", p0)); + } + + function log(uint p0, uint p1) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,uint)", p0, p1)); + } + + function log(uint p0, string memory p1) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,string)", p0, p1)); + } + + function log(uint p0, bool p1) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,bool)", p0, p1)); + } + + function log(uint p0, address p1) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,address)", p0, p1)); + } + + function log(string memory p0, uint p1) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(string,uint)", p0, p1)); + } + + function log(string memory p0, int p1) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(string,int)", p0, p1)); + } + + function log(string memory p0, string memory p1) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(string,string)", p0, p1)); + } + + function log(string memory p0, bool p1) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(string,bool)", p0, p1)); + } + + function log(string memory p0, address p1) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(string,address)", p0, p1)); + } + + function log(bool p0, uint p1) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,uint)", p0, p1)); + } + + function log(bool p0, string memory p1) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,string)", p0, p1)); + } + + function log(bool p0, bool p1) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,bool)", p0, p1)); + } + + function log(bool p0, address p1) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,address)", p0, p1)); + } + + function log(address p0, uint p1) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,uint)", p0, p1)); + } + + function log(address p0, string memory p1) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,string)", p0, p1)); + } + + function log(address p0, bool p1) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,bool)", p0, p1)); + } + + function log(address p0, address p1) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,address)", p0, p1)); + } + + function log(uint p0, uint p1, uint p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint)", p0, p1, p2)); + } + + function log(uint p0, uint p1, string memory p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,uint,string)", p0, p1, p2)); + } + + function log(uint p0, uint p1, bool p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool)", p0, p1, p2)); + } + + function log(uint p0, uint p1, address p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,uint,address)", p0, p1, p2)); + } + + function log(uint p0, string memory p1, uint p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,string,uint)", p0, p1, p2)); + } + + function log(uint p0, string memory p1, string memory p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,string,string)", p0, p1, p2)); + } + + function log(uint p0, string memory p1, bool p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,string,bool)", p0, p1, p2)); + } + + function log(uint p0, string memory p1, address p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,string,address)", p0, p1, p2)); + } + + function log(uint p0, bool p1, uint p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint)", p0, p1, p2)); + } + + function log(uint p0, bool p1, string memory p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,bool,string)", p0, p1, p2)); + } + + function log(uint p0, bool p1, bool p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool)", p0, p1, p2)); + } + + function log(uint p0, bool p1, address p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,bool,address)", p0, p1, p2)); + } + + function log(uint p0, address p1, uint p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,address,uint)", p0, p1, p2)); + } + + function log(uint p0, address p1, string memory p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,address,string)", p0, p1, p2)); + } + + function log(uint p0, address p1, bool p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,address,bool)", p0, p1, p2)); + } + + function log(uint p0, address p1, address p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,address,address)", p0, p1, p2)); + } + + function log(string memory p0, uint p1, uint p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(string,uint,uint)", p0, p1, p2)); + } + + function log(string memory p0, uint p1, string memory p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(string,uint,string)", p0, p1, p2)); + } + + function log(string memory p0, uint p1, bool p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(string,uint,bool)", p0, p1, p2)); + } + + function log(string memory p0, uint p1, address p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(string,uint,address)", p0, p1, p2)); + } + + function log(string memory p0, string memory p1, uint p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(string,string,uint)", p0, p1, p2)); + } + + function log(string memory p0, string memory p1, string memory p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(string,string,string)", p0, p1, p2)); + } + + function log(string memory p0, string memory p1, bool p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(string,string,bool)", p0, p1, p2)); + } + + function log(string memory p0, string memory p1, address p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(string,string,address)", p0, p1, p2)); + } + + function log(string memory p0, bool p1, uint p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(string,bool,uint)", p0, p1, p2)); + } + + function log(string memory p0, bool p1, string memory p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(string,bool,string)", p0, p1, p2)); + } + + function log(string memory p0, bool p1, bool p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(string,bool,bool)", p0, p1, p2)); + } + + function log(string memory p0, bool p1, address p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(string,bool,address)", p0, p1, p2)); + } + + function log(string memory p0, address p1, uint p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(string,address,uint)", p0, p1, p2)); + } + + function log(string memory p0, address p1, string memory p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(string,address,string)", p0, p1, p2)); + } + + function log(string memory p0, address p1, bool p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(string,address,bool)", p0, p1, p2)); + } + + function log(string memory p0, address p1, address p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(string,address,address)", p0, p1, p2)); + } + + function log(bool p0, uint p1, uint p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint)", p0, p1, p2)); + } + + function log(bool p0, uint p1, string memory p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,uint,string)", p0, p1, p2)); + } + + function log(bool p0, uint p1, bool p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool)", p0, p1, p2)); + } + + function log(bool p0, uint p1, address p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,uint,address)", p0, p1, p2)); + } + + function log(bool p0, string memory p1, uint p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,string,uint)", p0, p1, p2)); + } + + function log(bool p0, string memory p1, string memory p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,string,string)", p0, p1, p2)); + } + + function log(bool p0, string memory p1, bool p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,string,bool)", p0, p1, p2)); + } + + function log(bool p0, string memory p1, address p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,string,address)", p0, p1, p2)); + } + + function log(bool p0, bool p1, uint p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint)", p0, p1, p2)); + } + + function log(bool p0, bool p1, string memory p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,bool,string)", p0, p1, p2)); + } + + function log(bool p0, bool p1, bool p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool)", p0, p1, p2)); + } + + function log(bool p0, bool p1, address p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,bool,address)", p0, p1, p2)); + } + + function log(bool p0, address p1, uint p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,address,uint)", p0, p1, p2)); + } + + function log(bool p0, address p1, string memory p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,address,string)", p0, p1, p2)); + } + + function log(bool p0, address p1, bool p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,address,bool)", p0, p1, p2)); + } + + function log(bool p0, address p1, address p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,address,address)", p0, p1, p2)); + } + + function log(address p0, uint p1, uint p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,uint,uint)", p0, p1, p2)); + } + + function log(address p0, uint p1, string memory p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,uint,string)", p0, p1, p2)); + } + + function log(address p0, uint p1, bool p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,uint,bool)", p0, p1, p2)); + } + + function log(address p0, uint p1, address p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,uint,address)", p0, p1, p2)); + } + + function log(address p0, string memory p1, uint p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,string,uint)", p0, p1, p2)); + } + + function log(address p0, string memory p1, string memory p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,string,string)", p0, p1, p2)); + } + + function log(address p0, string memory p1, bool p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,string,bool)", p0, p1, p2)); + } + + function log(address p0, string memory p1, address p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,string,address)", p0, p1, p2)); + } + + function log(address p0, bool p1, uint p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,bool,uint)", p0, p1, p2)); + } + + function log(address p0, bool p1, string memory p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,bool,string)", p0, p1, p2)); + } + + function log(address p0, bool p1, bool p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,bool,bool)", p0, p1, p2)); + } + + function log(address p0, bool p1, address p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,bool,address)", p0, p1, p2)); + } + + function log(address p0, address p1, uint p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,address,uint)", p0, p1, p2)); + } + + function log(address p0, address p1, string memory p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,address,string)", p0, p1, p2)); + } + + function log(address p0, address p1, bool p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,address,bool)", p0, p1, p2)); + } + + function log(address p0, address p1, address p2) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,address,address)", p0, p1, p2)); + } + + function log(uint p0, uint p1, uint p2, uint p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint,uint)", p0, p1, p2, p3)); + } + + function log(uint p0, uint p1, uint p2, string memory p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint,string)", p0, p1, p2, p3)); + } + + function log(uint p0, uint p1, uint p2, bool p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint,bool)", p0, p1, p2, p3)); + } + + function log(uint p0, uint p1, uint p2, address p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint,address)", p0, p1, p2, p3)); + } + + function log(uint p0, uint p1, string memory p2, uint p3) internal pure { + _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 pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,uint,string,string)", p0, p1, p2, p3)); + } + + function log(uint p0, uint p1, string memory p2, bool p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,uint,string,bool)", p0, p1, p2, p3)); + } + + function log(uint p0, uint p1, string memory p2, address p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,uint,string,address)", p0, p1, p2, p3)); + } + + function log(uint p0, uint p1, bool p2, uint p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool,uint)", p0, p1, p2, p3)); + } + + function log(uint p0, uint p1, bool p2, string memory p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool,string)", p0, p1, p2, p3)); + } + + function log(uint p0, uint p1, bool p2, bool p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool,bool)", p0, p1, p2, p3)); + } + + function log(uint p0, uint p1, bool p2, address p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool,address)", p0, p1, p2, p3)); + } + + function log(uint p0, uint p1, address p2, uint p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,uint,address,uint)", p0, p1, p2, p3)); + } + + function log(uint p0, uint p1, address p2, string memory p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,uint,address,string)", p0, p1, p2, p3)); + } + + function log(uint p0, uint p1, address p2, bool p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,uint,address,bool)", p0, p1, p2, p3)); + } + + function log(uint p0, uint p1, address p2, address p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,uint,address,address)", p0, p1, p2, p3)); + } + + function log(uint p0, string memory p1, uint p2, uint p3) internal pure { + _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 pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,string,uint,string)", p0, p1, p2, p3)); + } + + function log(uint p0, string memory p1, uint p2, bool p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,string,uint,bool)", p0, p1, p2, p3)); + } + + function log(uint p0, string memory p1, uint p2, address p3) internal pure { + _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 pure { + _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 pure { + _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 pure { + _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 pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,string,string,address)", p0, p1, p2, p3)); + } + + function log(uint p0, string memory p1, bool p2, uint p3) internal pure { + _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 pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,string,bool,string)", p0, p1, p2, p3)); + } + + function log(uint p0, string memory p1, bool p2, bool p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,string,bool,bool)", p0, p1, p2, p3)); + } + + function log(uint p0, string memory p1, bool p2, address p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,string,bool,address)", p0, p1, p2, p3)); + } + + function log(uint p0, string memory p1, address p2, uint p3) internal pure { + _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 pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,string,address,string)", p0, p1, p2, p3)); + } + + function log(uint p0, string memory p1, address p2, bool p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,string,address,bool)", p0, p1, p2, p3)); + } + + function log(uint p0, string memory p1, address p2, address p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,string,address,address)", p0, p1, p2, p3)); + } + + function log(uint p0, bool p1, uint p2, uint p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint,uint)", p0, p1, p2, p3)); + } + + function log(uint p0, bool p1, uint p2, string memory p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint,string)", p0, p1, p2, p3)); + } + + function log(uint p0, bool p1, uint p2, bool p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint,bool)", p0, p1, p2, p3)); + } + + function log(uint p0, bool p1, uint p2, address p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint,address)", p0, p1, p2, p3)); + } + + function log(uint p0, bool p1, string memory p2, uint p3) internal pure { + _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 pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,bool,string,string)", p0, p1, p2, p3)); + } + + function log(uint p0, bool p1, string memory p2, bool p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,bool,string,bool)", p0, p1, p2, p3)); + } + + function log(uint p0, bool p1, string memory p2, address p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,bool,string,address)", p0, p1, p2, p3)); + } + + function log(uint p0, bool p1, bool p2, uint p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool,uint)", p0, p1, p2, p3)); + } + + function log(uint p0, bool p1, bool p2, string memory p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool,string)", p0, p1, p2, p3)); + } + + function log(uint p0, bool p1, bool p2, bool p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool,bool)", p0, p1, p2, p3)); + } + + function log(uint p0, bool p1, bool p2, address p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool,address)", p0, p1, p2, p3)); + } + + function log(uint p0, bool p1, address p2, uint p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,bool,address,uint)", p0, p1, p2, p3)); + } + + function log(uint p0, bool p1, address p2, string memory p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,bool,address,string)", p0, p1, p2, p3)); + } + + function log(uint p0, bool p1, address p2, bool p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,bool,address,bool)", p0, p1, p2, p3)); + } + + function log(uint p0, bool p1, address p2, address p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,bool,address,address)", p0, p1, p2, p3)); + } + + function log(uint p0, address p1, uint p2, uint p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,address,uint,uint)", p0, p1, p2, p3)); + } + + function log(uint p0, address p1, uint p2, string memory p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,address,uint,string)", p0, p1, p2, p3)); + } + + function log(uint p0, address p1, uint p2, bool p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,address,uint,bool)", p0, p1, p2, p3)); + } + + function log(uint p0, address p1, uint p2, address p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,address,uint,address)", p0, p1, p2, p3)); + } + + function log(uint p0, address p1, string memory p2, uint p3) internal pure { + _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 pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,address,string,string)", p0, p1, p2, p3)); + } + + function log(uint p0, address p1, string memory p2, bool p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,address,string,bool)", p0, p1, p2, p3)); + } + + function log(uint p0, address p1, string memory p2, address p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,address,string,address)", p0, p1, p2, p3)); + } + + function log(uint p0, address p1, bool p2, uint p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,address,bool,uint)", p0, p1, p2, p3)); + } + + function log(uint p0, address p1, bool p2, string memory p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,address,bool,string)", p0, p1, p2, p3)); + } + + function log(uint p0, address p1, bool p2, bool p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,address,bool,bool)", p0, p1, p2, p3)); + } + + function log(uint p0, address p1, bool p2, address p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,address,bool,address)", p0, p1, p2, p3)); + } + + function log(uint p0, address p1, address p2, uint p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,address,address,uint)", p0, p1, p2, p3)); + } + + function log(uint p0, address p1, address p2, string memory p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,address,address,string)", p0, p1, p2, p3)); + } + + function log(uint p0, address p1, address p2, bool p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,address,address,bool)", p0, p1, p2, p3)); + } + + function log(uint p0, address p1, address p2, address p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(uint,address,address,address)", p0, p1, p2, p3)); + } + + function log(string memory p0, uint p1, uint p2, uint p3) internal pure { + _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 pure { + _sendLogPayload(abi.encodeWithSignature("log(string,uint,uint,string)", p0, p1, p2, p3)); + } + + function log(string memory p0, uint p1, uint p2, bool p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(string,uint,uint,bool)", p0, p1, p2, p3)); + } + + function log(string memory p0, uint p1, uint p2, address p3) internal pure { + _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 pure { + _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 pure { + _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 pure { + _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 pure { + _sendLogPayload(abi.encodeWithSignature("log(string,uint,string,address)", p0, p1, p2, p3)); + } + + function log(string memory p0, uint p1, bool p2, uint p3) internal pure { + _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 pure { + _sendLogPayload(abi.encodeWithSignature("log(string,uint,bool,string)", p0, p1, p2, p3)); + } + + function log(string memory p0, uint p1, bool p2, bool p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(string,uint,bool,bool)", p0, p1, p2, p3)); + } + + function log(string memory p0, uint p1, bool p2, address p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(string,uint,bool,address)", p0, p1, p2, p3)); + } + + function log(string memory p0, uint p1, address p2, uint p3) internal pure { + _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 pure { + _sendLogPayload(abi.encodeWithSignature("log(string,uint,address,string)", p0, p1, p2, p3)); + } + + function log(string memory p0, uint p1, address p2, bool p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(string,uint,address,bool)", p0, p1, p2, p3)); + } + + function log(string memory p0, uint p1, address p2, address p3) internal pure { + _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 pure { + _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 pure { + _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 pure { + _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 pure { + _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 pure { + _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 pure { + _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 pure { + _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 pure { + _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 pure { + _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 pure { + _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 pure { + _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 pure { + _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 pure { + _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 pure { + _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 pure { + _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 pure { + _sendLogPayload(abi.encodeWithSignature("log(string,string,address,address)", p0, p1, p2, p3)); + } + + function log(string memory p0, bool p1, uint p2, uint p3) internal pure { + _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 pure { + _sendLogPayload(abi.encodeWithSignature("log(string,bool,uint,string)", p0, p1, p2, p3)); + } + + function log(string memory p0, bool p1, uint p2, bool p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(string,bool,uint,bool)", p0, p1, p2, p3)); + } + + function log(string memory p0, bool p1, uint p2, address p3) internal pure { + _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 pure { + _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 pure { + _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 pure { + _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 pure { + _sendLogPayload(abi.encodeWithSignature("log(string,bool,string,address)", p0, p1, p2, p3)); + } + + function log(string memory p0, bool p1, bool p2, uint p3) internal pure { + _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 pure { + _sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,string)", p0, p1, p2, p3)); + } + + function log(string memory p0, bool p1, bool p2, bool p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,bool)", p0, p1, p2, p3)); + } + + function log(string memory p0, bool p1, bool p2, address p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,address)", p0, p1, p2, p3)); + } + + function log(string memory p0, bool p1, address p2, uint p3) internal pure { + _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 pure { + _sendLogPayload(abi.encodeWithSignature("log(string,bool,address,string)", p0, p1, p2, p3)); + } + + function log(string memory p0, bool p1, address p2, bool p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(string,bool,address,bool)", p0, p1, p2, p3)); + } + + function log(string memory p0, bool p1, address p2, address p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(string,bool,address,address)", p0, p1, p2, p3)); + } + + function log(string memory p0, address p1, uint p2, uint p3) internal pure { + _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 pure { + _sendLogPayload(abi.encodeWithSignature("log(string,address,uint,string)", p0, p1, p2, p3)); + } + + function log(string memory p0, address p1, uint p2, bool p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(string,address,uint,bool)", p0, p1, p2, p3)); + } + + function log(string memory p0, address p1, uint p2, address p3) internal pure { + _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 pure { + _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 pure { + _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 pure { + _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 pure { + _sendLogPayload(abi.encodeWithSignature("log(string,address,string,address)", p0, p1, p2, p3)); + } + + function log(string memory p0, address p1, bool p2, uint p3) internal pure { + _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 pure { + _sendLogPayload(abi.encodeWithSignature("log(string,address,bool,string)", p0, p1, p2, p3)); + } + + function log(string memory p0, address p1, bool p2, bool p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(string,address,bool,bool)", p0, p1, p2, p3)); + } + + function log(string memory p0, address p1, bool p2, address p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(string,address,bool,address)", p0, p1, p2, p3)); + } + + function log(string memory p0, address p1, address p2, uint p3) internal pure { + _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 pure { + _sendLogPayload(abi.encodeWithSignature("log(string,address,address,string)", p0, p1, p2, p3)); + } + + function log(string memory p0, address p1, address p2, bool p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(string,address,address,bool)", p0, p1, p2, p3)); + } + + function log(string memory p0, address p1, address p2, address p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(string,address,address,address)", p0, p1, p2, p3)); + } + + function log(bool p0, uint p1, uint p2, uint p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint,uint)", p0, p1, p2, p3)); + } + + function log(bool p0, uint p1, uint p2, string memory p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint,string)", p0, p1, p2, p3)); + } + + function log(bool p0, uint p1, uint p2, bool p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint,bool)", p0, p1, p2, p3)); + } + + function log(bool p0, uint p1, uint p2, address p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint,address)", p0, p1, p2, p3)); + } + + function log(bool p0, uint p1, string memory p2, uint p3) internal pure { + _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 pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,uint,string,string)", p0, p1, p2, p3)); + } + + function log(bool p0, uint p1, string memory p2, bool p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,uint,string,bool)", p0, p1, p2, p3)); + } + + function log(bool p0, uint p1, string memory p2, address p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,uint,string,address)", p0, p1, p2, p3)); + } + + function log(bool p0, uint p1, bool p2, uint p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool,uint)", p0, p1, p2, p3)); + } + + function log(bool p0, uint p1, bool p2, string memory p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool,string)", p0, p1, p2, p3)); + } + + function log(bool p0, uint p1, bool p2, bool p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool,bool)", p0, p1, p2, p3)); + } + + function log(bool p0, uint p1, bool p2, address p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool,address)", p0, p1, p2, p3)); + } + + function log(bool p0, uint p1, address p2, uint p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,uint,address,uint)", p0, p1, p2, p3)); + } + + function log(bool p0, uint p1, address p2, string memory p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,uint,address,string)", p0, p1, p2, p3)); + } + + function log(bool p0, uint p1, address p2, bool p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,uint,address,bool)", p0, p1, p2, p3)); + } + + function log(bool p0, uint p1, address p2, address p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,uint,address,address)", p0, p1, p2, p3)); + } + + function log(bool p0, string memory p1, uint p2, uint p3) internal pure { + _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 pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,string,uint,string)", p0, p1, p2, p3)); + } + + function log(bool p0, string memory p1, uint p2, bool p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,string,uint,bool)", p0, p1, p2, p3)); + } + + function log(bool p0, string memory p1, uint p2, address p3) internal pure { + _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 pure { + _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 pure { + _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 pure { + _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 pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,string,string,address)", p0, p1, p2, p3)); + } + + function log(bool p0, string memory p1, bool p2, uint p3) internal pure { + _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 pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,string)", p0, p1, p2, p3)); + } + + function log(bool p0, string memory p1, bool p2, bool p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,bool)", p0, p1, p2, p3)); + } + + function log(bool p0, string memory p1, bool p2, address p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,address)", p0, p1, p2, p3)); + } + + function log(bool p0, string memory p1, address p2, uint p3) internal pure { + _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 pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,string,address,string)", p0, p1, p2, p3)); + } + + function log(bool p0, string memory p1, address p2, bool p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,string,address,bool)", p0, p1, p2, p3)); + } + + function log(bool p0, string memory p1, address p2, address p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,string,address,address)", p0, p1, p2, p3)); + } + + function log(bool p0, bool p1, uint p2, uint p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint,uint)", p0, p1, p2, p3)); + } + + function log(bool p0, bool p1, uint p2, string memory p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint,string)", p0, p1, p2, p3)); + } + + function log(bool p0, bool p1, uint p2, bool p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint,bool)", p0, p1, p2, p3)); + } + + function log(bool p0, bool p1, uint p2, address p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint,address)", p0, p1, p2, p3)); + } + + function log(bool p0, bool p1, string memory p2, uint p3) internal pure { + _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 pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,string)", p0, p1, p2, p3)); + } + + function log(bool p0, bool p1, string memory p2, bool p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,bool)", p0, p1, p2, p3)); + } + + function log(bool p0, bool p1, string memory p2, address p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,address)", p0, p1, p2, p3)); + } + + function log(bool p0, bool p1, bool p2, uint p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,uint)", p0, p1, p2, p3)); + } + + function log(bool p0, bool p1, bool p2, string memory p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,string)", p0, p1, p2, p3)); + } + + function log(bool p0, bool p1, bool p2, bool p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,bool)", p0, p1, p2, p3)); + } + + function log(bool p0, bool p1, bool p2, address p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,address)", p0, p1, p2, p3)); + } + + function log(bool p0, bool p1, address p2, uint p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,uint)", p0, p1, p2, p3)); + } + + function log(bool p0, bool p1, address p2, string memory p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,string)", p0, p1, p2, p3)); + } + + function log(bool p0, bool p1, address p2, bool p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,bool)", p0, p1, p2, p3)); + } + + function log(bool p0, bool p1, address p2, address p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,address)", p0, p1, p2, p3)); + } + + function log(bool p0, address p1, uint p2, uint p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,address,uint,uint)", p0, p1, p2, p3)); + } + + function log(bool p0, address p1, uint p2, string memory p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,address,uint,string)", p0, p1, p2, p3)); + } + + function log(bool p0, address p1, uint p2, bool p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,address,uint,bool)", p0, p1, p2, p3)); + } + + function log(bool p0, address p1, uint p2, address p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,address,uint,address)", p0, p1, p2, p3)); + } + + function log(bool p0, address p1, string memory p2, uint p3) internal pure { + _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 pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,address,string,string)", p0, p1, p2, p3)); + } + + function log(bool p0, address p1, string memory p2, bool p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,address,string,bool)", p0, p1, p2, p3)); + } + + function log(bool p0, address p1, string memory p2, address p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,address,string,address)", p0, p1, p2, p3)); + } + + function log(bool p0, address p1, bool p2, uint p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,uint)", p0, p1, p2, p3)); + } + + function log(bool p0, address p1, bool p2, string memory p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,string)", p0, p1, p2, p3)); + } + + function log(bool p0, address p1, bool p2, bool p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,bool)", p0, p1, p2, p3)); + } + + function log(bool p0, address p1, bool p2, address p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,address)", p0, p1, p2, p3)); + } + + function log(bool p0, address p1, address p2, uint p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,address,address,uint)", p0, p1, p2, p3)); + } + + function log(bool p0, address p1, address p2, string memory p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,address,address,string)", p0, p1, p2, p3)); + } + + function log(bool p0, address p1, address p2, bool p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,address,address,bool)", p0, p1, p2, p3)); + } + + function log(bool p0, address p1, address p2, address p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(bool,address,address,address)", p0, p1, p2, p3)); + } + + function log(address p0, uint p1, uint p2, uint p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,uint,uint,uint)", p0, p1, p2, p3)); + } + + function log(address p0, uint p1, uint p2, string memory p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,uint,uint,string)", p0, p1, p2, p3)); + } + + function log(address p0, uint p1, uint p2, bool p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,uint,uint,bool)", p0, p1, p2, p3)); + } + + function log(address p0, uint p1, uint p2, address p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,uint,uint,address)", p0, p1, p2, p3)); + } + + function log(address p0, uint p1, string memory p2, uint p3) internal pure { + _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 pure { + _sendLogPayload(abi.encodeWithSignature("log(address,uint,string,string)", p0, p1, p2, p3)); + } + + function log(address p0, uint p1, string memory p2, bool p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,uint,string,bool)", p0, p1, p2, p3)); + } + + function log(address p0, uint p1, string memory p2, address p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,uint,string,address)", p0, p1, p2, p3)); + } + + function log(address p0, uint p1, bool p2, uint p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,uint,bool,uint)", p0, p1, p2, p3)); + } + + function log(address p0, uint p1, bool p2, string memory p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,uint,bool,string)", p0, p1, p2, p3)); + } + + function log(address p0, uint p1, bool p2, bool p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,uint,bool,bool)", p0, p1, p2, p3)); + } + + function log(address p0, uint p1, bool p2, address p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,uint,bool,address)", p0, p1, p2, p3)); + } + + function log(address p0, uint p1, address p2, uint p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,uint,address,uint)", p0, p1, p2, p3)); + } + + function log(address p0, uint p1, address p2, string memory p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,uint,address,string)", p0, p1, p2, p3)); + } + + function log(address p0, uint p1, address p2, bool p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,uint,address,bool)", p0, p1, p2, p3)); + } + + function log(address p0, uint p1, address p2, address p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,uint,address,address)", p0, p1, p2, p3)); + } + + function log(address p0, string memory p1, uint p2, uint p3) internal pure { + _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 pure { + _sendLogPayload(abi.encodeWithSignature("log(address,string,uint,string)", p0, p1, p2, p3)); + } + + function log(address p0, string memory p1, uint p2, bool p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,string,uint,bool)", p0, p1, p2, p3)); + } + + function log(address p0, string memory p1, uint p2, address p3) internal pure { + _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 pure { + _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 pure { + _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 pure { + _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 pure { + _sendLogPayload(abi.encodeWithSignature("log(address,string,string,address)", p0, p1, p2, p3)); + } + + function log(address p0, string memory p1, bool p2, uint p3) internal pure { + _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 pure { + _sendLogPayload(abi.encodeWithSignature("log(address,string,bool,string)", p0, p1, p2, p3)); + } + + function log(address p0, string memory p1, bool p2, bool p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,string,bool,bool)", p0, p1, p2, p3)); + } + + function log(address p0, string memory p1, bool p2, address p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,string,bool,address)", p0, p1, p2, p3)); + } + + function log(address p0, string memory p1, address p2, uint p3) internal pure { + _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 pure { + _sendLogPayload(abi.encodeWithSignature("log(address,string,address,string)", p0, p1, p2, p3)); + } + + function log(address p0, string memory p1, address p2, bool p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,string,address,bool)", p0, p1, p2, p3)); + } + + function log(address p0, string memory p1, address p2, address p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,string,address,address)", p0, p1, p2, p3)); + } + + function log(address p0, bool p1, uint p2, uint p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,bool,uint,uint)", p0, p1, p2, p3)); + } + + function log(address p0, bool p1, uint p2, string memory p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,bool,uint,string)", p0, p1, p2, p3)); + } + + function log(address p0, bool p1, uint p2, bool p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,bool,uint,bool)", p0, p1, p2, p3)); + } + + function log(address p0, bool p1, uint p2, address p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,bool,uint,address)", p0, p1, p2, p3)); + } + + function log(address p0, bool p1, string memory p2, uint p3) internal pure { + _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 pure { + _sendLogPayload(abi.encodeWithSignature("log(address,bool,string,string)", p0, p1, p2, p3)); + } + + function log(address p0, bool p1, string memory p2, bool p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,bool,string,bool)", p0, p1, p2, p3)); + } + + function log(address p0, bool p1, string memory p2, address p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,bool,string,address)", p0, p1, p2, p3)); + } + + function log(address p0, bool p1, bool p2, uint p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,uint)", p0, p1, p2, p3)); + } + + function log(address p0, bool p1, bool p2, string memory p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,string)", p0, p1, p2, p3)); + } + + function log(address p0, bool p1, bool p2, bool p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,bool)", p0, p1, p2, p3)); + } + + function log(address p0, bool p1, bool p2, address p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,address)", p0, p1, p2, p3)); + } + + function log(address p0, bool p1, address p2, uint p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,bool,address,uint)", p0, p1, p2, p3)); + } + + function log(address p0, bool p1, address p2, string memory p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,bool,address,string)", p0, p1, p2, p3)); + } + + function log(address p0, bool p1, address p2, bool p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,bool,address,bool)", p0, p1, p2, p3)); + } + + function log(address p0, bool p1, address p2, address p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,bool,address,address)", p0, p1, p2, p3)); + } + + function log(address p0, address p1, uint p2, uint p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,address,uint,uint)", p0, p1, p2, p3)); + } + + function log(address p0, address p1, uint p2, string memory p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,address,uint,string)", p0, p1, p2, p3)); + } + + function log(address p0, address p1, uint p2, bool p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,address,uint,bool)", p0, p1, p2, p3)); + } + + function log(address p0, address p1, uint p2, address p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,address,uint,address)", p0, p1, p2, p3)); + } + + function log(address p0, address p1, string memory p2, uint p3) internal pure { + _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 pure { + _sendLogPayload(abi.encodeWithSignature("log(address,address,string,string)", p0, p1, p2, p3)); + } + + function log(address p0, address p1, string memory p2, bool p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,address,string,bool)", p0, p1, p2, p3)); + } + + function log(address p0, address p1, string memory p2, address p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,address,string,address)", p0, p1, p2, p3)); + } + + function log(address p0, address p1, bool p2, uint p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,address,bool,uint)", p0, p1, p2, p3)); + } + + function log(address p0, address p1, bool p2, string memory p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,address,bool,string)", p0, p1, p2, p3)); + } + + function log(address p0, address p1, bool p2, bool p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,address,bool,bool)", p0, p1, p2, p3)); + } + + function log(address p0, address p1, bool p2, address p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,address,bool,address)", p0, p1, p2, p3)); + } + + function log(address p0, address p1, address p2, uint p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,address,address,uint)", p0, p1, p2, p3)); + } + + function log(address p0, address p1, address p2, string memory p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,address,address,string)", p0, p1, p2, p3)); + } + + function log(address p0, address p1, address p2, bool p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,address,address,bool)", p0, p1, p2, p3)); + } + + function log(address p0, address p1, address p2, address p3) internal pure { + _sendLogPayload(abi.encodeWithSignature("log(address,address,address,address)", p0, p1, p2, p3)); + } +} + +// lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol + +// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC1967.sol) + +/** + * @dev ERC-1967: Proxy Storage Slots. This interface contains the events defined in the ERC. + */ +interface IERC1967 { + /** + * @dev Emitted when the implementation is upgraded. + */ + event Upgraded(address indexed implementation); + + /** + * @dev Emitted when the admin account has changed. + */ + event AdminChanged(address previousAdmin, address newAdmin); + + /** + * @dev Emitted when the beacon is changed. + */ + event BeaconUpgraded(address indexed beacon); +} + +// lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/proxy/Proxy.sol + +// OpenZeppelin Contracts (last updated v5.0.0) (proxy/Proxy.sol) + +/** + * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM + * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to + * be specified by overriding the virtual {_implementation} function. + * + * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a + * different contract through the {_delegate} function. + * + * The success and return data of the delegated call will be returned back to the caller of the proxy. + */ +abstract contract Proxy { + /** + * @dev Delegates the current call to `implementation`. + * + * This function does not return to its internal call site, it will return directly to the external caller. + */ + function _delegate(address implementation) internal virtual { + assembly { + // Copy msg.data. We take full control of memory in this inline assembly + // block because it will not return to Solidity code. We overwrite the + // Solidity scratch pad at memory position 0. + calldatacopy(0, 0, calldatasize()) + + // Call the implementation. + // out and outsize are 0 because we don't know the size yet. + let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0) + + // Copy the returned data. + returndatacopy(0, 0, returndatasize()) + + switch result + // delegatecall returns 0 on error. + case 0 { + revert(0, returndatasize()) + } + default { + return(0, returndatasize()) + } + } + } + + /** + * @dev This is a virtual function that should be overridden so it returns the address to which the fallback + * function and {_fallback} should delegate. + */ + function _implementation() internal view virtual returns (address); + + /** + * @dev Delegates the current call to the address returned by `_implementation()`. + * + * This function does not return to its internal call site, it will return directly to the external caller. + */ + function _fallback() internal virtual { + _delegate(_implementation()); + } + + /** + * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other + * function in the contract matches the call data. + */ + fallback() external payable virtual { + _fallback(); + } +} + +// lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol + +// OpenZeppelin Contracts (last updated v5.0.0) (proxy/beacon/IBeacon.sol) + +/** + * @dev This is the interface that {BeaconProxy} expects of its beacon. + */ +interface IBeacon { + /** + * @dev Must return an address that can be used as a delegate call target. + * + * {UpgradeableBeacon} will check that this address is a contract. + */ + function implementation() external view returns (address); +} + +// lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Address.sol + +// OpenZeppelin Contracts (last updated v5.0.0) (utils/Address.sol) + +/** + * @dev Collection of functions related to the address type + */ +library Address { + /** + * @dev The ETH balance of the account is not enough to perform the operation. + */ + error AddressInsufficientBalance(address account); + + /** + * @dev There's no code at `target` (it is not a contract). + */ + error AddressEmptyCode(address target); + + /** + * @dev A call to an address target failed. The target may have reverted. + */ + error FailedInnerCall(); + + /** + * @dev Replacement for Solidity's `transfer`: sends `amount` wei to + * `recipient`, forwarding all available gas and reverting on errors. + * + * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost + * of certain opcodes, possibly making contracts go over the 2300 gas limit + * imposed by `transfer`, making them unable to receive funds via + * `transfer`. {sendValue} removes this limitation. + * + * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more]. + * + * IMPORTANT: because control is transferred to `recipient`, care must be + * taken to not create reentrancy vulnerabilities. Consider using + * {ReentrancyGuard} or the + * https://solidity.readthedocs.io/en/v0.8.20/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. + */ + function sendValue(address payable recipient, uint256 amount) internal { + if (address(this).balance < amount) { + revert AddressInsufficientBalance(address(this)); + } + + (bool success, ) = recipient.call{value: amount}(""); + if (!success) { + revert FailedInnerCall(); + } + } + + /** + * @dev Performs a Solidity function call using a low level `call`. A + * plain `call` is an unsafe replacement for a function call: use this + * function instead. + * + * If `target` reverts with a revert reason or custom error, it is bubbled + * up by this function (like regular Solidity function calls). However, if + * the call reverted with no returned reason, this function reverts with a + * {FailedInnerCall} error. + * + * Returns the raw returned data. To convert to the expected return value, + * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. + * + * Requirements: + * + * - `target` must be a contract. + * - calling `target` with `data` must not revert. + */ + function functionCall(address target, bytes memory data) internal returns (bytes memory) { + return functionCallWithValue(target, data, 0); + } + + /** + * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], + * but also transferring `value` wei to `target`. + * + * Requirements: + * + * - the calling contract must have an ETH balance of at least `value`. + * - the called Solidity function must be `payable`. + */ + function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { + if (address(this).balance < value) { + revert AddressInsufficientBalance(address(this)); + } + (bool success, bytes memory returndata) = target.call{value: value}(data); + return verifyCallResultFromTarget(target, success, returndata); + } + + /** + * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], + * but performing a static call. + */ + function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { + (bool success, bytes memory returndata) = target.staticcall(data); + return verifyCallResultFromTarget(target, success, returndata); + } + + /** + * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], + * but performing a delegate call. + */ + function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) { + (bool success, bytes memory returndata) = target.delegatecall(data); + return verifyCallResultFromTarget(target, success, returndata); + } + + /** + * @dev Tool to verify that a low level call to smart-contract was successful, and reverts if the target + * was not a contract or bubbling up the revert reason (falling back to {FailedInnerCall}) in case of an + * unsuccessful call. + */ + function verifyCallResultFromTarget( + address target, + bool success, + bytes memory returndata + ) internal view returns (bytes memory) { + if (!success) { + _revert(returndata); + } else { + // only check if target is a contract if the call was successful and the return data is empty + // otherwise we already know that it was a contract + if (returndata.length == 0 && target.code.length == 0) { + revert AddressEmptyCode(target); + } + return returndata; + } + } + + /** + * @dev Tool to verify that a low level call was successful, and reverts if it wasn't, either by bubbling the + * revert reason or with a default {FailedInnerCall} error. + */ + function verifyCallResult(bool success, bytes memory returndata) internal pure returns (bytes memory) { + if (!success) { + _revert(returndata); + } else { + return returndata; + } + } + + /** + * @dev Reverts with returndata if present. Otherwise reverts with {FailedInnerCall}. + */ + function _revert(bytes memory returndata) private pure { + // Look for revert reason and bubble it up if present + if (returndata.length > 0) { + // The easiest way to bubble the revert reason is using memory via assembly + /// @solidity memory-safe-assembly + assembly { + let returndata_size := mload(returndata) + revert(add(32, returndata), returndata_size) + } + } else { + revert FailedInnerCall(); + } + } +} + +// lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Context.sol + +// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol) + +/** + * @dev Provides information about the current execution context, including the + * sender of the transaction and its data. While these are generally available + * via msg.sender and msg.data, they should not be accessed in such a direct + * manner, since when dealing with meta-transactions the account sending and + * paying for execution may not be the actual sender (as far as an application + * is concerned). + * + * This contract is only required for intermediate, library-like contracts. + */ +abstract contract Context { + function _msgSender() internal view virtual returns (address) { + return msg.sender; + } + + function _msgData() internal view virtual returns (bytes calldata) { + return msg.data; + } + + function _contextSuffixLength() internal view virtual returns (uint256) { + return 0; + } +} + +// lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol + +// OpenZeppelin Contracts (last updated v5.0.0) (utils/StorageSlot.sol) +// This file was procedurally generated from scripts/generate/templates/StorageSlot.js. + +/** + * @dev Library for reading and writing primitive types to specific storage slots. + * + * Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts. + * This library helps with reading and writing to such slots without the need for inline assembly. + * + * The functions in this library return Slot structs that contain a `value` member that can be used to read or write. + * + * Example usage to set ERC1967 implementation slot: + * ```solidity + * contract ERC1967 { + * bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; + * + * function _getImplementation() internal view returns (address) { + * return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value; + * } + * + * function _setImplementation(address newImplementation) internal { + * require(newImplementation.code.length > 0); + * StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation; + * } + * } + * ``` + */ +library StorageSlot { + struct AddressSlot { + address value; + } + + struct BooleanSlot { + bool value; + } + + struct Bytes32Slot { + bytes32 value; + } + + struct Uint256Slot { + uint256 value; + } + + struct StringSlot { + string value; + } + + struct BytesSlot { + bytes value; + } + + /** + * @dev Returns an `AddressSlot` with member `value` located at `slot`. + */ + function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) { + /// @solidity memory-safe-assembly + assembly { + r.slot := slot + } + } + + /** + * @dev Returns an `BooleanSlot` with member `value` located at `slot`. + */ + function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) { + /// @solidity memory-safe-assembly + assembly { + r.slot := slot + } + } + + /** + * @dev Returns an `Bytes32Slot` with member `value` located at `slot`. + */ + function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) { + /// @solidity memory-safe-assembly + assembly { + r.slot := slot + } + } + + /** + * @dev Returns an `Uint256Slot` with member `value` located at `slot`. + */ + function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) { + /// @solidity memory-safe-assembly + assembly { + r.slot := slot + } + } + + /** + * @dev Returns an `StringSlot` with member `value` located at `slot`. + */ + function getStringSlot(bytes32 slot) internal pure returns (StringSlot storage r) { + /// @solidity memory-safe-assembly + assembly { + r.slot := slot + } + } + + /** + * @dev Returns an `StringSlot` representation of the string storage pointer `store`. + */ + function getStringSlot(string storage store) internal pure returns (StringSlot storage r) { + /// @solidity memory-safe-assembly + assembly { + r.slot := store.slot + } + } + + /** + * @dev Returns an `BytesSlot` with member `value` located at `slot`. + */ + function getBytesSlot(bytes32 slot) internal pure returns (BytesSlot storage r) { + /// @solidity memory-safe-assembly + assembly { + r.slot := slot + } + } + + /** + * @dev Returns an `BytesSlot` representation of the bytes storage pointer `store`. + */ + function getBytesSlot(bytes storage store) internal pure returns (BytesSlot storage r) { + /// @solidity memory-safe-assembly + assembly { + r.slot := store.slot + } + } +} + +// lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/math/Math.sol + +// OpenZeppelin Contracts (last updated v5.0.0) (utils/math/Math.sol) + +/** + * @dev Standard math utilities missing in the Solidity language. + */ +library Math { + /** + * @dev Muldiv operation overflow. + */ + error MathOverflowedMulDiv(); + + enum Rounding { + Floor, // Toward negative infinity + Ceil, // Toward positive infinity + Trunc, // Toward zero + Expand // Away from zero + } + + /** + * @dev Returns the addition of two unsigned integers, with an overflow flag. + */ + function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { + unchecked { + uint256 c = a + b; + if (c < a) return (false, 0); + return (true, c); + } + } + + /** + * @dev Returns the subtraction of two unsigned integers, with an overflow flag. + */ + function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { + unchecked { + if (b > a) return (false, 0); + return (true, a - b); + } + } + + /** + * @dev Returns the multiplication of two unsigned integers, with an overflow flag. + */ + function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { + unchecked { + // Gas optimization: this is cheaper than requiring 'a' not being zero, but the + // benefit is lost if 'b' is also tested. + // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 + if (a == 0) return (true, 0); + uint256 c = a * b; + if (c / a != b) return (false, 0); + return (true, c); + } + } + + /** + * @dev Returns the division of two unsigned integers, with a division by zero flag. + */ + function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { + unchecked { + if (b == 0) return (false, 0); + return (true, a / b); + } + } + + /** + * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag. + */ + function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { + unchecked { + if (b == 0) return (false, 0); + return (true, a % b); + } + } + + /** + * @dev Returns the largest of two numbers. + */ + function max(uint256 a, uint256 b) internal pure returns (uint256) { + return a > b ? a : b; + } + + /** + * @dev Returns the smallest of two numbers. + */ + function min(uint256 a, uint256 b) internal pure returns (uint256) { + return a < b ? a : b; + } + + /** + * @dev Returns the average of two numbers. The result is rounded towards + * zero. + */ + function average(uint256 a, uint256 b) internal pure returns (uint256) { + // (a + b) / 2 can overflow. + return (a & b) + (a ^ b) / 2; + } + + /** + * @dev Returns the ceiling of the division of two numbers. + * + * This differs from standard division with `/` in that it rounds towards infinity instead + * of rounding towards zero. + */ + function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) { + if (b == 0) { + // Guarantee the same behavior as in a regular Solidity division. + return a / b; + } + + // (a + b - 1) / b can overflow on addition, so we distribute. + return a == 0 ? 0 : (a - 1) / b + 1; + } + + /** + * @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or + * denominator == 0. + * @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv) with further edits by + * Uniswap Labs also under MIT license. + */ + function mulDiv(uint256 x, uint256 y, uint256 denominator) internal pure returns (uint256 result) { + unchecked { + // 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2^256 and mod 2^256 - 1, then use + // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256 + // variables such that product = prod1 * 2^256 + prod0. + uint256 prod0 = x * y; // Least significant 256 bits of the product + uint256 prod1; // Most significant 256 bits of the product + assembly { + let mm := mulmod(x, y, not(0)) + prod1 := sub(sub(mm, prod0), lt(mm, prod0)) + } + + // Handle non-overflow cases, 256 by 256 division. + if (prod1 == 0) { + // Solidity will revert if denominator == 0, unlike the div opcode on its own. + // The surrounding unchecked block does not change this fact. + // See https://docs.soliditylang.org/en/latest/control-structures.html#checked-or-unchecked-arithmetic. + return prod0 / denominator; + } + + // Make sure the result is less than 2^256. Also prevents denominator == 0. + if (denominator <= prod1) { + revert MathOverflowedMulDiv(); + } + + /////////////////////////////////////////////// + // 512 by 256 division. + /////////////////////////////////////////////// + + // Make division exact by subtracting the remainder from [prod1 prod0]. + uint256 remainder; + assembly { + // Compute remainder using mulmod. + remainder := mulmod(x, y, denominator) + + // Subtract 256 bit number from 512 bit number. + prod1 := sub(prod1, gt(remainder, prod0)) + prod0 := sub(prod0, remainder) + } + + // Factor powers of two out of denominator and compute largest power of two divisor of denominator. + // Always >= 1. See https://cs.stackexchange.com/q/138556/92363. + + uint256 twos = denominator & (0 - denominator); + assembly { + // Divide denominator by twos. + denominator := div(denominator, twos) + + // Divide [prod1 prod0] by twos. + prod0 := div(prod0, twos) + + // Flip twos such that it is 2^256 / twos. If twos is zero, then it becomes one. + twos := add(div(sub(0, twos), twos), 1) + } + + // Shift in bits from prod1 into prod0. + prod0 |= prod1 * twos; + + // Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such + // that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for + // four bits. That is, denominator * inv = 1 mod 2^4. + uint256 inverse = (3 * denominator) ^ 2; + + // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also + // works in modular arithmetic, doubling the correct bits in each step. + inverse *= 2 - denominator * inverse; // inverse mod 2^8 + inverse *= 2 - denominator * inverse; // inverse mod 2^16 + inverse *= 2 - denominator * inverse; // inverse mod 2^32 + inverse *= 2 - denominator * inverse; // inverse mod 2^64 + inverse *= 2 - denominator * inverse; // inverse mod 2^128 + inverse *= 2 - denominator * inverse; // inverse mod 2^256 + + // Because the division is now exact we can divide by multiplying with the modular inverse of denominator. + // This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is + // less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1 + // is no longer required. + result = prod0 * inverse; + return result; + } + } + + /** + * @notice Calculates x * y / denominator with full precision, following the selected rounding direction. + */ + function mulDiv(uint256 x, uint256 y, uint256 denominator, Rounding rounding) internal pure returns (uint256) { + uint256 result = mulDiv(x, y, denominator); + if (unsignedRoundsUp(rounding) && mulmod(x, y, denominator) > 0) { + result += 1; + } + return result; + } + + /** + * @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded + * towards zero. + * + * Inspired by Henry S. Warren, Jr.'s "Hacker's Delight" (Chapter 11). + */ + function sqrt(uint256 a) internal pure returns (uint256) { + if (a == 0) { + return 0; + } + + // For our first guess, we get the biggest power of 2 which is smaller than the square root of the target. + // + // We know that the "msb" (most significant bit) of our target number `a` is a power of 2 such that we have + // `msb(a) <= a < 2*msb(a)`. This value can be written `msb(a)=2**k` with `k=log2(a)`. + // + // This can be rewritten `2**log2(a) <= a < 2**(log2(a) + 1)` + // → `sqrt(2**k) <= sqrt(a) < sqrt(2**(k+1))` + // → `2**(k/2) <= sqrt(a) < 2**((k+1)/2) <= 2**(k/2 + 1)` + // + // Consequently, `2**(log2(a) / 2)` is a good first approximation of `sqrt(a)` with at least 1 correct bit. + uint256 result = 1 << (log2(a) >> 1); + + // At this point `result` is an estimation with one bit of precision. We know the true value is a uint128, + // since it is the square root of a uint256. Newton's method converges quadratically (precision doubles at + // every iteration). We thus need at most 7 iteration to turn our partial result with one bit of precision + // into the expected uint128 result. + unchecked { + result = (result + a / result) >> 1; + result = (result + a / result) >> 1; + result = (result + a / result) >> 1; + result = (result + a / result) >> 1; + result = (result + a / result) >> 1; + result = (result + a / result) >> 1; + result = (result + a / result) >> 1; + return min(result, a / result); + } + } + + /** + * @notice Calculates sqrt(a), following the selected rounding direction. + */ + function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) { + unchecked { + uint256 result = sqrt(a); + return result + (unsignedRoundsUp(rounding) && result * result < a ? 1 : 0); + } + } + + /** + * @dev Return the log in base 2 of a positive value rounded towards zero. + * Returns 0 if given 0. + */ + function log2(uint256 value) internal pure returns (uint256) { + uint256 result = 0; + unchecked { + if (value >> 128 > 0) { + value >>= 128; + result += 128; + } + if (value >> 64 > 0) { + value >>= 64; + result += 64; + } + if (value >> 32 > 0) { + value >>= 32; + result += 32; + } + if (value >> 16 > 0) { + value >>= 16; + result += 16; + } + if (value >> 8 > 0) { + value >>= 8; + result += 8; + } + if (value >> 4 > 0) { + value >>= 4; + result += 4; + } + if (value >> 2 > 0) { + value >>= 2; + result += 2; + } + if (value >> 1 > 0) { + result += 1; + } + } + return result; + } + + /** + * @dev Return the log in base 2, following the selected rounding direction, of a positive value. + * Returns 0 if given 0. + */ + function log2(uint256 value, Rounding rounding) internal pure returns (uint256) { + unchecked { + uint256 result = log2(value); + return result + (unsignedRoundsUp(rounding) && 1 << result < value ? 1 : 0); + } + } + + /** + * @dev Return the log in base 10 of a positive value rounded towards zero. + * Returns 0 if given 0. + */ + function log10(uint256 value) internal pure returns (uint256) { + uint256 result = 0; + unchecked { + if (value >= 10 ** 64) { + value /= 10 ** 64; + result += 64; + } + if (value >= 10 ** 32) { + value /= 10 ** 32; + result += 32; + } + if (value >= 10 ** 16) { + value /= 10 ** 16; + result += 16; + } + if (value >= 10 ** 8) { + value /= 10 ** 8; + result += 8; + } + if (value >= 10 ** 4) { + value /= 10 ** 4; + result += 4; + } + if (value >= 10 ** 2) { + value /= 10 ** 2; + result += 2; + } + if (value >= 10 ** 1) { + result += 1; + } + } + return result; + } + + /** + * @dev Return the log in base 10, following the selected rounding direction, of a positive value. + * Returns 0 if given 0. + */ + function log10(uint256 value, Rounding rounding) internal pure returns (uint256) { + unchecked { + uint256 result = log10(value); + return result + (unsignedRoundsUp(rounding) && 10 ** result < value ? 1 : 0); + } + } + + /** + * @dev Return the log in base 256 of a positive value rounded towards zero. + * Returns 0 if given 0. + * + * Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string. + */ + function log256(uint256 value) internal pure returns (uint256) { + uint256 result = 0; + unchecked { + if (value >> 128 > 0) { + value >>= 128; + result += 16; + } + if (value >> 64 > 0) { + value >>= 64; + result += 8; + } + if (value >> 32 > 0) { + value >>= 32; + result += 4; + } + if (value >> 16 > 0) { + value >>= 16; + result += 2; + } + if (value >> 8 > 0) { + result += 1; + } + } + return result; + } + + /** + * @dev Return the log in base 256, following the selected rounding direction, of a positive value. + * Returns 0 if given 0. + */ + function log256(uint256 value, Rounding rounding) internal pure returns (uint256) { + unchecked { + uint256 result = log256(value); + return result + (unsignedRoundsUp(rounding) && 1 << (result << 3) < value ? 1 : 0); + } + } + + /** + * @dev Returns whether a provided rounding mode is considered rounding up for unsigned integers. + */ + function unsignedRoundsUp(Rounding rounding) internal pure returns (bool) { + return uint8(rounding) % 2 == 1; + } +} + +// lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol + +// OpenZeppelin Contracts (last updated v5.0.0) (utils/math/SignedMath.sol) + +/** + * @dev Standard signed math utilities missing in the Solidity language. + */ +library SignedMath { + /** + * @dev Returns the largest of two signed numbers. + */ + function max(int256 a, int256 b) internal pure returns (int256) { + return a > b ? a : b; + } + + /** + * @dev Returns the smallest of two signed numbers. + */ + function min(int256 a, int256 b) internal pure returns (int256) { + return a < b ? a : b; + } + + /** + * @dev Returns the average of two signed numbers without overflow. + * The result is rounded towards zero. + */ + function average(int256 a, int256 b) internal pure returns (int256) { + // Formula from the book "Hacker's Delight" + int256 x = (a & b) + ((a ^ b) >> 1); + return x + (int256(uint256(x) >> 255) & (a ^ b)); + } + + /** + * @dev Returns the absolute unsigned value of a signed value. + */ + function abs(int256 n) internal pure returns (uint256) { + unchecked { + // must be unchecked in order to support `n = type(int256).min` + return uint256(n >= 0 ? n : -n); + } + } +} + +// lib/openzeppelin-foundry-upgrades/src/Options.sol + +/** + * Common options. + */ +struct Options { + /* + * The reference contract to use for storage layout comparisons, e.g. "ContractV1.sol" or "ContractV1.sol:ContractV1". + * If not set, attempts to use the `@custom:oz-upgrades-from ` annotation from the contract. + */ + string referenceContract; + /* + * Encoded constructor arguments for the implementation contract. + * Note that these are different from initializer arguments, and will be used in the deployment of the implementation contract itself. + * Can be used to initialize immutable variables. + */ + bytes constructorData; + /* + * Selectively disable one or more validation errors. Comma-separated list that must be compatible with the + * --unsafeAllow option described in https://docs.openzeppelin.com/upgrades-plugins/1.x/api-core#usage + */ + string unsafeAllow; + /* + * Configure storage layout check to allow variable renaming + */ + bool unsafeAllowRenames; + /* + * Skips checking for storage layout compatibility errors. This is a dangerous option meant to be used as a last resort. + */ + bool unsafeSkipStorageCheck; + /* + * Skips all upgrade safety checks. This is a dangerous option meant to be used as a last resort. + */ + bool unsafeSkipAllChecks; + /* + * Options for OpenZeppelin Defender deployments. + */ + DefenderOptions defender; +} + +/** + * Options for OpenZeppelin Defender deployments. + */ +struct DefenderOptions { + /* + * Deploys contracts using OpenZeppelin Defender instead of broadcasting deployments through Forge. Defaults to `false`. See DEFENDER.md. + * + * NOTE: If using an EOA or Safe to deploy, go to https://defender.openzeppelin.com/v2/#/deploy[Defender deploy] to submit the pending deployment(s) while the script is running. + * The script waits for each deployment to complete before it continues. + */ + bool useDefenderDeploy; + /* + * When using OpenZeppelin Defender deployments, whether to skip verifying source code on block explorers. Defaults to `false`. + */ + bool skipVerifySourceCode; + /* + * When using OpenZeppelin Defender deployments, the ID of the relayer to use for the deployment. Defaults to the relayer configured for your deployment environment on Defender. + */ + string relayerId; + /* + * Applies to OpenZeppelin Defender deployments only. + * If this is not set, deployments will be performed using the CREATE opcode. + * If this is set, deployments will be performed using the CREATE2 opcode with the provided salt. + * Note that deployments using a Safe are done using CREATE2 and require a salt. + * + * WARNING: CREATE2 affects `msg.sender` behavior. See https://docs.openzeppelin.com/defender/v2/tutorial/deploy#deploy-caveat for more information. + */ + bytes32 salt; + /* + * The ID of the upgrade approval process to use when proposing an upgrade. + * Defaults to the upgrade approval process configured for your deployment environment on Defender. + */ + string upgradeApprovalProcessId; + /* + * License type to display on block explorers for verified source code. + * See https://etherscan.io/contract-license-types for supported values and use the string found in brackets, e.g. MIT. + * If not set, infers the license type by using the SPDX license identifier from the contract's Solidity file. + * Cannot be set if `skipLicenseType` or `skipVerifySourceCode` is `true`. + */ + string licenseType; + /* + * If set to `true`, does not set the license type on block explorers for verified source code. + * Use this if your contract's license type is not supported by block explorers. + * Defaults to `false`. + */ + bool skipLicenseType; + /* + * Transaction overrides for OpenZeppelin Defender deployments. + */ + TxOverrides txOverrides; + /* + * When using OpenZeppelin Defender deployments, you can use this to identify, tag, or classify deployments. + * See https://docs.openzeppelin.com/defender/module/deploy#metadata. + * Must be a JSON string, for example: '{ "commitHash": "4ae3e0d", "tag": "v1.0.0", "anyOtherField": "anyValue" }' + */ + string metadata; +} + +/** + * Transaction overrides for OpenZeppelin Defender deployments. + */ +struct TxOverrides { + /* + * Maximum amount of gas to allow the deployment transaction to use. + */ + uint256 gasLimit; + /* + * Gas price for legacy transactions, in wei. + */ + uint256 gasPrice; + /* + * Maximum total fee per gas, in wei. + */ + uint256 maxFeePerGas; + /* + * Maximum priority fee per gas, in wei. + */ + uint256 maxPriorityFeePerGas; +} + +// lib/openzeppelin-foundry-upgrades/src/internal/Versions.sol + +library Versions { + // TODO add a workflow to update this automatically based on package.json + string constant UPGRADES_CORE = "^1.32.3"; + string constant DEFENDER_DEPLOY_CLIENT_CLI = "0.0.1-alpha.9"; +} + +// lib/openzeppelin-foundry-upgrades/src/internal/interfaces/IProxyAdmin.sol + +interface IProxyAdmin { + /** + * Upgrades a proxy to a new implementation without calling a function on the new implementation. + */ + function upgrade(address, address) external; + + /** + * Upgrades a proxy to a new implementation and calls a function on the new implementation. + * If UPGRADE_INTERFACE_VERSION is "5.0.0", bytes can be empty if no function should be called on the new implementation. + */ + function upgradeAndCall(address, address, bytes memory) external payable; +} + +// lib/openzeppelin-foundry-upgrades/src/internal/interfaces/IUpgradeableBeacon.sol + +interface IUpgradeableBeacon { + /** + * Upgrades the beacon to a new implementation. + */ + function upgradeTo(address) external; +} + +// lib/openzeppelin-foundry-upgrades/src/internal/interfaces/IUpgradeableProxy.sol + +interface IUpgradeableProxy { + /** + * Upgrades the proxy to a new implementation without calling a function on the new implementation. + */ + function upgradeTo(address) external; + + /** + * Upgrades the proxy to a new implementation and calls a function on the new implementation. + * If UPGRADE_INTERFACE_VERSION is "5.0.0", bytes can be empty if no function should be called on the new implementation. + */ + function upgradeToAndCall(address, bytes memory) external payable; +} + +// lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/Ownable.sol + +// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol) + +/** + * @dev Contract module which provides a basic access control mechanism, where + * there is an account (an owner) that can be granted exclusive access to + * specific functions. + * + * The initial owner is set to the address provided by the deployer. This can + * later be changed with {transferOwnership}. + * + * This module is used through inheritance. It will make available the modifier + * `onlyOwner`, which can be applied to your functions to restrict their use to + * the owner. + */ +abstract contract Ownable is Context { + address private _owner; + + /** + * @dev The caller account is not authorized to perform an operation. + */ + error OwnableUnauthorizedAccount(address account); + + /** + * @dev The owner is not a valid owner account. (eg. `address(0)`) + */ + error OwnableInvalidOwner(address owner); + + event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); + + /** + * @dev Initializes the contract setting the address provided by the deployer as the initial owner. + */ + constructor(address initialOwner) { + if (initialOwner == address(0)) { + revert OwnableInvalidOwner(address(0)); + } + _transferOwnership(initialOwner); + } + + /** + * @dev Throws if called by any account other than the owner. + */ + modifier onlyOwner() { + _checkOwner(); + _; + } + + /** + * @dev Returns the address of the current owner. + */ + function owner() public view virtual returns (address) { + return _owner; + } + + /** + * @dev Throws if the sender is not the owner. + */ + function _checkOwner() internal view virtual { + if (owner() != _msgSender()) { + revert OwnableUnauthorizedAccount(_msgSender()); + } + } + + /** + * @dev Leaves the contract without owner. It will not be possible to call + * `onlyOwner` functions. Can only be called by the current owner. + * + * NOTE: Renouncing ownership will leave the contract without an owner, + * thereby disabling any functionality that is only available to the owner. + */ + function renounceOwnership() public virtual onlyOwner { + _transferOwnership(address(0)); + } + + /** + * @dev Transfers ownership of the contract to a new account (`newOwner`). + * Can only be called by the current owner. + */ + function transferOwnership(address newOwner) public virtual onlyOwner { + if (newOwner == address(0)) { + revert OwnableInvalidOwner(address(0)); + } + _transferOwnership(newOwner); + } + + /** + * @dev Transfers ownership of the contract to a new account (`newOwner`). + * Internal function without access restriction. + */ + function _transferOwnership(address newOwner) internal virtual { + address oldOwner = _owner; + _owner = newOwner; + emit OwnershipTransferred(oldOwner, newOwner); + } +} + +// lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Strings.sol + +// OpenZeppelin Contracts (last updated v5.0.0) (utils/Strings.sol) + +/** + * @dev String operations. + */ +library Strings { + bytes16 private constant HEX_DIGITS = "0123456789abcdef"; + uint8 private constant ADDRESS_LENGTH = 20; + + struct slice { + uint _len; + uint _ptr; + } + + function memcpy(uint dest, uint src, uint length) private pure { + // Copy word-length chunks while possible + for(; length >= 32; length -= 32) { + assembly { + mstore(dest, mload(src)) + } + dest += 32; + src += 32; + } + + // Copy remaining bytes + uint mask = type(uint).max; + if (length > 0) { + mask = 256 ** (32 - length) - 1; + } + assembly { + let srcpart := and(mload(src), not(mask)) + let destpart := and(mload(dest), mask) + mstore(dest, or(destpart, srcpart)) + } + } + + /* + * @dev Returns a slice containing the entire string. + * @param self The string to make a slice from. + * @return A newly allocated slice containing the entire string. + */ + function toSlice(string memory self) internal pure returns (slice memory) { + uint ptr; + assembly { + ptr := add(self, 0x20) + } + return slice(bytes(self).length, ptr); + } + + /* + * @dev Returns the length of a null-terminated bytes32 string. + * @param self The value to find the length of. + * @return The length of the string, from 0 to 32. + */ + function len(bytes32 self) internal pure returns (uint) { + uint ret; + if (self == 0) + return 0; + if (uint(self) & type(uint128).max == 0) { + ret += 16; + self = bytes32(uint(self) / 0x100000000000000000000000000000000); + } + if (uint(self) & type(uint64).max == 0) { + ret += 8; + self = bytes32(uint(self) / 0x10000000000000000); + } + if (uint(self) & type(uint32).max == 0) { + ret += 4; + self = bytes32(uint(self) / 0x100000000); + } + if (uint(self) & type(uint16).max == 0) { + ret += 2; + self = bytes32(uint(self) / 0x10000); + } + if (uint(self) & type(uint8).max == 0) { + ret += 1; + } + return 32 - ret; + } + + /* + * @dev Returns a slice containing the entire bytes32, interpreted as a + * null-terminated utf-8 string. + * @param self The bytes32 value to convert to a slice. + * @return A new slice containing the value of the input argument up to the + * first null. + */ + function toSliceB32(bytes32 self) internal pure returns (slice memory ret) { + // Allocate space for `self` in memory, copy it there, and point ret at it + assembly { + let ptr := mload(0x40) + mstore(0x40, add(ptr, 0x20)) + mstore(ptr, self) + mstore(add(ret, 0x20), ptr) + } + ret._len = len(self); + } + + /* + * @dev Returns a new slice containing the same data as the current slice. + * @param self The slice to copy. + * @return A new slice containing the same data as `self`. + */ + function copy(slice memory self) internal pure returns (slice memory) { + return slice(self._len, self._ptr); + } + + /* + * @dev Copies a slice to a new string. + * @param self The slice to copy. + * @return A newly allocated string containing the slice's text. + */ + function toString(slice memory self) internal pure returns (string memory) { + string memory ret = new string(self._len); + uint retptr; + assembly { retptr := add(ret, 32) } + + memcpy(retptr, self._ptr, self._len); + return ret; + } + + /* + * @dev Returns the length in runes of the slice. Note that this operation + * takes time proportional to the length of the slice; avoid using it + * in loops, and call `slice.empty()` if you only need to know whether + * the slice is empty or not. + * @param self The slice to operate on. + * @return The length of the slice in runes. + */ + function len(slice memory self) internal pure returns (uint l) { + // Starting at ptr-31 means the LSB will be the byte we care about + uint ptr = self._ptr - 31; + uint end = ptr + self._len; + for (l = 0; ptr < end; l++) { + uint8 b; + assembly { b := and(mload(ptr), 0xFF) } + if (b < 0x80) { + ptr += 1; + } else if(b < 0xE0) { + ptr += 2; + } else if(b < 0xF0) { + ptr += 3; + } else if(b < 0xF8) { + ptr += 4; + } else if(b < 0xFC) { + ptr += 5; + } else { + ptr += 6; + } + } + } + + /* + * @dev Returns true if the slice is empty (has a length of 0). + * @param self The slice to operate on. + * @return True if the slice is empty, False otherwise. + */ + function empty(slice memory self) internal pure returns (bool) { + return self._len == 0; + } + + /* + * @dev Returns a positive number if `other` comes lexicographically after + * `self`, a negative number if it comes before, or zero if the + * contents of the two slices are equal. Comparison is done per-rune, + * on unicode codepoints. + * @param self The first slice to compare. + * @param other The second slice to compare. + * @return The result of the comparison. + */ + function compare(slice memory self, slice memory other) internal pure returns (int) { + uint shortest = self._len; + if (other._len < self._len) + shortest = other._len; + + uint selfptr = self._ptr; + uint otherptr = other._ptr; + for (uint idx = 0; idx < shortest; idx += 32) { + uint a; + uint b; + assembly { + a := mload(selfptr) + b := mload(otherptr) + } + if (a != b) { + // Mask out irrelevant bytes and check again + uint mask = type(uint).max; // 0xffff... + if(shortest < 32) { + mask = ~(2 ** (8 * (32 - shortest + idx)) - 1); + } + unchecked { + uint diff = (a & mask) - (b & mask); + if (diff != 0) + return int(diff); + } + } + selfptr += 32; + otherptr += 32; + } + return int(self._len) - int(other._len); + } + + /* + * @dev Returns true if the two slices contain the same text. + * @param self The first slice to compare. + * @param self The second slice to compare. + * @return True if the slices are equal, false otherwise. + */ + function equals(slice memory self, slice memory other) internal pure returns (bool) { + return compare(self, other) == 0; + } + + /* + * @dev Extracts the first rune in the slice into `rune`, advancing the + * slice to point to the next rune and returning `self`. + * @param self The slice to operate on. + * @param rune The slice that will contain the first rune. + * @return `rune`. + */ + function nextRune(slice memory self, slice memory rune) internal pure returns (slice memory) { + rune._ptr = self._ptr; + + if (self._len == 0) { + rune._len = 0; + return rune; + } + + uint l; + uint b; + // Load the first byte of the rune into the LSBs of b + assembly { b := and(mload(sub(mload(add(self, 32)), 31)), 0xFF) } + if (b < 0x80) { + l = 1; + } else if(b < 0xE0) { + l = 2; + } else if(b < 0xF0) { + l = 3; + } else { + l = 4; + } + + // Check for truncated codepoints + if (l > self._len) { + rune._len = self._len; + self._ptr += self._len; + self._len = 0; + return rune; + } + + self._ptr += l; + self._len -= l; + rune._len = l; + return rune; + } + + /* + * @dev Returns the first rune in the slice, advancing the slice to point + * to the next rune. + * @param self The slice to operate on. + * @return A slice containing only the first rune from `self`. + */ + function nextRune(slice memory self) internal pure returns (slice memory ret) { + nextRune(self, ret); + } + + /* + * @dev Returns the number of the first codepoint in the slice. + * @param self The slice to operate on. + * @return The number of the first codepoint in the slice. + */ + function ord(slice memory self) internal pure returns (uint ret) { + if (self._len == 0) { + return 0; + } + + uint word; + uint length; + uint divisor = 2 ** 248; + + // Load the rune into the MSBs of b + assembly { word:= mload(mload(add(self, 32))) } + uint b = word / divisor; + if (b < 0x80) { + ret = b; + length = 1; + } else if(b < 0xE0) { + ret = b & 0x1F; + length = 2; + } else if(b < 0xF0) { + ret = b & 0x0F; + length = 3; + } else { + ret = b & 0x07; + length = 4; + } + + // Check for truncated codepoints + if (length > self._len) { + return 0; + } + + for (uint i = 1; i < length; i++) { + divisor = divisor / 256; + b = (word / divisor) & 0xFF; + if (b & 0xC0 != 0x80) { + // Invalid UTF-8 sequence + return 0; + } + ret = (ret * 64) | (b & 0x3F); + } + + return ret; + } + + /* + * @dev Returns the keccak-256 hash of the slice. + * @param self The slice to hash. + * @return The hash of the slice. + */ + function keccak(slice memory self) internal pure returns (bytes32 ret) { + assembly { + ret := keccak256(mload(add(self, 32)), mload(self)) + } + } + + /* + * @dev Returns true if `self` starts with `needle`. + * @param self The slice to operate on. + * @param needle The slice to search for. + * @return True if the slice starts with the provided text, false otherwise. + */ + function startsWith(slice memory self, slice memory needle) internal pure returns (bool) { + if (self._len < needle._len) { + return false; + } + + if (self._ptr == needle._ptr) { + return true; + } + + bool eql; + assembly { + let length := mload(needle) + let selfptr := mload(add(self, 0x20)) + let needleptr := mload(add(needle, 0x20)) + eql := eq(keccak256(selfptr, length), keccak256(needleptr, length)) + } + return eql; + } + + /* + * @dev If `self` starts with `needle`, `needle` is removed from the + * beginning of `self`. Otherwise, `self` is unmodified. + * @param self The slice to operate on. + * @param needle The slice to search for. + * @return `self` + */ + function beyond(slice memory self, slice memory needle) internal pure returns (slice memory) { + if (self._len < needle._len) { + return self; + } + + bool eql = true; + if (self._ptr != needle._ptr) { + assembly { + let length := mload(needle) + let selfptr := mload(add(self, 0x20)) + let needleptr := mload(add(needle, 0x20)) + eql := eq(keccak256(selfptr, length), keccak256(needleptr, length)) + } + } + + if (eql) { + self._len -= needle._len; + self._ptr += needle._len; + } + + return self; + } + + /* + * @dev Returns true if the slice ends with `needle`. + * @param self The slice to operate on. + * @param needle The slice to search for. + * @return True if the slice starts with the provided text, false otherwise. + */ + function endsWith(slice memory self, slice memory needle) internal pure returns (bool) { + if (self._len < needle._len) { + return false; + } + + uint selfptr = self._ptr + self._len - needle._len; + + if (selfptr == needle._ptr) { + return true; + } + + bool eql; + assembly { + let length := mload(needle) + let needleptr := mload(add(needle, 0x20)) + eql := eq(keccak256(selfptr, length), keccak256(needleptr, length)) + } + + return eql; + } + + /* + * @dev If `self` ends with `needle`, `needle` is removed from the + * end of `self`. Otherwise, `self` is unmodified. + * @param self The slice to operate on. + * @param needle The slice to search for. + * @return `self` + */ + function until(slice memory self, slice memory needle) internal pure returns (slice memory) { + if (self._len < needle._len) { + return self; + } + + uint selfptr = self._ptr + self._len - needle._len; + bool eql = true; + if (selfptr != needle._ptr) { + assembly { + let length := mload(needle) + let needleptr := mload(add(needle, 0x20)) + eql := eq(keccak256(selfptr, length), keccak256(needleptr, length)) + } + } + + if (eql) { + self._len -= needle._len; + } + + return self; + } + + // Returns the memory address of the first byte of the first occurrence of + // `needle` in `self`, or the first byte after `self` if not found. + function findPtr(uint selflen, uint selfptr, uint needlelen, uint needleptr) private pure returns (uint) { + uint ptr = selfptr; + uint idx; + + if (needlelen <= selflen) { + if (needlelen <= 32) { + bytes32 mask; + if (needlelen > 0) { + mask = bytes32(~(2 ** (8 * (32 - needlelen)) - 1)); + } + + bytes32 needledata; + assembly { needledata := and(mload(needleptr), mask) } + + uint end = selfptr + selflen - needlelen; + bytes32 ptrdata; + assembly { ptrdata := and(mload(ptr), mask) } + + while (ptrdata != needledata) { + if (ptr >= end) + return selfptr + selflen; + ptr++; + assembly { ptrdata := and(mload(ptr), mask) } + } + return ptr; + } else { + // For long needles, use hashing + bytes32 hash; + assembly { hash := keccak256(needleptr, needlelen) } + + for (idx = 0; idx <= selflen - needlelen; idx++) { + bytes32 testHash; + assembly { testHash := keccak256(ptr, needlelen) } + if (hash == testHash) + return ptr; + ptr += 1; + } + } + } + return selfptr + selflen; + } + + // Returns the memory address of the first byte after the last occurrence of + // `needle` in `self`, or the address of `self` if not found. + function rfindPtr(uint selflen, uint selfptr, uint needlelen, uint needleptr) private pure returns (uint) { + uint ptr; + + if (needlelen <= selflen) { + if (needlelen <= 32) { + bytes32 mask; + if (needlelen > 0) { + mask = bytes32(~(2 ** (8 * (32 - needlelen)) - 1)); + } + + bytes32 needledata; + assembly { needledata := and(mload(needleptr), mask) } + + ptr = selfptr + selflen - needlelen; + bytes32 ptrdata; + assembly { ptrdata := and(mload(ptr), mask) } + + while (ptrdata != needledata) { + if (ptr <= selfptr) + return selfptr; + ptr--; + assembly { ptrdata := and(mload(ptr), mask) } + } + return ptr + needlelen; + } else { + // For long needles, use hashing + bytes32 hash; + assembly { hash := keccak256(needleptr, needlelen) } + ptr = selfptr + (selflen - needlelen); + while (ptr >= selfptr) { + bytes32 testHash; + assembly { testHash := keccak256(ptr, needlelen) } + if (hash == testHash) + return ptr + needlelen; + ptr -= 1; + } + } + } + return selfptr; + } + + /* + * @dev Modifies `self` to contain everything from the first occurrence of + * `needle` to the end of the slice. `self` is set to the empty slice + * if `needle` is not found. + * @param self The slice to search and modify. + * @param needle The text to search for. + * @return `self`. + */ + function find(slice memory self, slice memory needle) internal pure returns (slice memory) { + uint ptr = findPtr(self._len, self._ptr, needle._len, needle._ptr); + self._len -= ptr - self._ptr; + self._ptr = ptr; + return self; + } + + /* + * @dev Modifies `self` to contain the part of the string from the start of + * `self` to the end of the first occurrence of `needle`. If `needle` + * is not found, `self` is set to the empty slice. + * @param self The slice to search and modify. + * @param needle The text to search for. + * @return `self`. + */ + function rfind(slice memory self, slice memory needle) internal pure returns (slice memory) { + uint ptr = rfindPtr(self._len, self._ptr, needle._len, needle._ptr); + self._len = ptr - self._ptr; + return self; + } + + /* + * @dev Splits the slice, setting `self` to everything after the first + * occurrence of `needle`, and `token` to everything before it. If + * `needle` does not occur in `self`, `self` is set to the empty slice, + * and `token` is set to the entirety of `self`. + * @param self The slice to split. + * @param needle The text to search for in `self`. + * @param token An output parameter to which the first token is written. + * @return `token`. + */ + function split(slice memory self, slice memory needle, slice memory token) internal pure returns (slice memory) { + uint ptr = findPtr(self._len, self._ptr, needle._len, needle._ptr); + token._ptr = self._ptr; + token._len = ptr - self._ptr; + if (ptr == self._ptr + self._len) { + // Not found + self._len = 0; + } else { + self._len -= token._len + needle._len; + self._ptr = ptr + needle._len; + } + return token; + } + + /* + * @dev Splits the slice, setting `self` to everything after the first + * occurrence of `needle`, and returning everything before it. If + * `needle` does not occur in `self`, `self` is set to the empty slice, + * and the entirety of `self` is returned. + * @param self The slice to split. + * @param needle The text to search for in `self`. + * @return The part of `self` up to the first occurrence of `delim`. + */ + function split(slice memory self, slice memory needle) internal pure returns (slice memory token) { + split(self, needle, token); + } + + /* + * @dev Splits the slice, setting `self` to everything before the last + * occurrence of `needle`, and `token` to everything after it. If + * `needle` does not occur in `self`, `self` is set to the empty slice, + * and `token` is set to the entirety of `self`. + * @param self The slice to split. + * @param needle The text to search for in `self`. + * @param token An output parameter to which the first token is written. + * @return `token`. + */ + function rsplit(slice memory self, slice memory needle, slice memory token) internal pure returns (slice memory) { + uint ptr = rfindPtr(self._len, self._ptr, needle._len, needle._ptr); + token._ptr = ptr; + token._len = self._len - (ptr - self._ptr); + if (ptr == self._ptr) { + // Not found + self._len = 0; + } else { + self._len -= token._len + needle._len; + } + return token; + } + + /* + * @dev Splits the slice, setting `self` to everything before the last + * occurrence of `needle`, and returning everything after it. If + * `needle` does not occur in `self`, `self` is set to the empty slice, + * and the entirety of `self` is returned. + * @param self The slice to split. + * @param needle The text to search for in `self`. + * @return The part of `self` after the last occurrence of `delim`. + */ + function rsplit(slice memory self, slice memory needle) internal pure returns (slice memory token) { + rsplit(self, needle, token); + } + + /* + * @dev Counts the number of nonoverlapping occurrences of `needle` in `self`. + * @param self The slice to search. + * @param needle The text to search for in `self`. + * @return The number of occurrences of `needle` found in `self`. + */ + function count(slice memory self, slice memory needle) internal pure returns (uint cnt) { + uint ptr = findPtr(self._len, self._ptr, needle._len, needle._ptr) + needle._len; + while (ptr <= self._ptr + self._len) { + cnt++; + ptr = findPtr(self._len - (ptr - self._ptr), ptr, needle._len, needle._ptr) + needle._len; + } + } + + /* + * @dev Returns True if `self` contains `needle`. + * @param self The slice to search. + * @param needle The text to search for in `self`. + * @return True if `needle` is found in `self`, false otherwise. + */ + function contains(slice memory self, slice memory needle) internal pure returns (bool) { + return rfindPtr(self._len, self._ptr, needle._len, needle._ptr) != self._ptr; + } + + /* + * @dev Returns a newly allocated string containing the concatenation of + * `self` and `other`. + * @param self The first slice to concatenate. + * @param other The second slice to concatenate. + * @return The concatenation of the two strings. + */ + function concat(slice memory self, slice memory other) internal pure returns (string memory) { + string memory ret = new string(self._len + other._len); + uint retptr; + assembly { retptr := add(ret, 32) } + memcpy(retptr, self._ptr, self._len); + memcpy(retptr + self._len, other._ptr, other._len); + return ret; + } + + /* + * @dev Joins an array of slices, using `self` as a delimiter, returning a + * newly allocated string. + * @param self The delimiter to use. + * @param parts A list of slices to join. + * @return A newly allocated string containing all the slices in `parts`, + * joined with `self`. + */ + function join(slice memory self, slice[] memory parts) internal pure returns (string memory) { + if (parts.length == 0) + return ""; + + uint length = self._len * (parts.length - 1); + for(uint i = 0; i < parts.length; i++) + length += parts[i]._len; + + string memory ret = new string(length); + uint retptr; + assembly { retptr := add(ret, 32) } + + for(uint i = 0; i < parts.length; i++) { + memcpy(retptr, parts[i]._ptr, parts[i]._len); + retptr += parts[i]._len; + if (i < parts.length - 1) { + memcpy(retptr, self._ptr, self._len); + retptr += self._len; + } + } + + return ret; + } + + /** + * @dev The `value` string doesn't fit in the specified `length`. + */ + error StringsInsufficientHexLength(uint256 value, uint256 length); + + /** + * @dev Converts a `uint256` to its ASCII `string` decimal representation. + */ + function toString(uint256 value) internal pure returns (string memory) { + unchecked { + uint256 length = Math.log10(value) + 1; + string memory buffer = new string(length); + uint256 ptr; + /// @solidity memory-safe-assembly + assembly { + ptr := add(buffer, add(32, length)) + } + while (true) { + ptr--; + /// @solidity memory-safe-assembly + assembly { + mstore8(ptr, byte(mod(value, 10), HEX_DIGITS)) + } + value /= 10; + if (value == 0) break; + } + return buffer; + } + } + + /** + * @dev Converts a `int256` to its ASCII `string` decimal representation. + */ + function toStringSigned(int256 value) internal pure returns (string memory) { + return string.concat(value < 0 ? "-" : "", toString(SignedMath.abs(value))); + } + + /** + * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation. + */ + function toHexString(uint256 value) internal pure returns (string memory) { + unchecked { + return toHexString(value, Math.log256(value) + 1); + } + } + + /** + * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length. + */ + function toHexString(uint256 value, uint256 length) internal pure returns (string memory) { + uint256 localValue = value; + bytes memory buffer = new bytes(2 * length + 2); + buffer[0] = "0"; + buffer[1] = "x"; + for (uint256 i = 2 * length + 1; i > 1; --i) { + buffer[i] = HEX_DIGITS[localValue & 0xf]; + localValue >>= 4; + } + if (localValue != 0) { + revert StringsInsufficientHexLength(value, length); + } + return string(buffer); + } + + /** + * @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal + * representation. + */ + function toHexString(address addr) internal pure returns (string memory) { + return toHexString(uint256(uint160(addr)), ADDRESS_LENGTH); + } + + /** + * @dev Returns true if the two strings are equal. + */ + function equal(string memory a, string memory b) internal pure returns (bool) { + return bytes(a).length == bytes(b).length && keccak256(bytes(a)) == keccak256(bytes(b)); + } +} + +// lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol + +// OpenZeppelin Contracts (last updated v5.0.0) (proxy/ERC1967/ERC1967Utils.sol) + +/** + * @dev This abstract contract provides getters and event emitting update functions for + * https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots. + */ +library ERC1967Utils { + // We re-declare ERC-1967 events here because they can't be used directly from IERC1967. + // This will be fixed in Solidity 0.8.21. At that point we should remove these events. + /** + * @dev Emitted when the implementation is upgraded. + */ + event Upgraded(address indexed implementation); + + /** + * @dev Emitted when the admin account has changed. + */ + event AdminChanged(address previousAdmin, address newAdmin); + + /** + * @dev Emitted when the beacon is changed. + */ + event BeaconUpgraded(address indexed beacon); + + /** + * @dev Storage slot with the address of the current implementation. + * This is the keccak-256 hash of "eip1967.proxy.implementation" subtracted by 1. + */ + // solhint-disable-next-line private-vars-leading-underscore + bytes32 internal constant IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; + + /** + * @dev The `implementation` of the proxy is invalid. + */ + error ERC1967InvalidImplementation(address implementation); + + /** + * @dev The `admin` of the proxy is invalid. + */ + error ERC1967InvalidAdmin(address admin); + + /** + * @dev The `beacon` of the proxy is invalid. + */ + error ERC1967InvalidBeacon(address beacon); + + /** + * @dev An upgrade function sees `msg.value > 0` that may be lost. + */ + error ERC1967NonPayable(); + + /** + * @dev Returns the current implementation address. + */ + function getImplementation() internal view returns (address) { + return StorageSlot.getAddressSlot(IMPLEMENTATION_SLOT).value; + } + + /** + * @dev Stores a new address in the EIP1967 implementation slot. + */ + function _setImplementation(address newImplementation) private { + if (newImplementation.code.length == 0) { + revert ERC1967InvalidImplementation(newImplementation); + } + StorageSlot.getAddressSlot(IMPLEMENTATION_SLOT).value = newImplementation; + } + + /** + * @dev Performs implementation upgrade with additional setup call if data is nonempty. + * This function is payable only if the setup call is performed, otherwise `msg.value` is rejected + * to avoid stuck value in the contract. + * + * Emits an {IERC1967-Upgraded} event. + */ + function upgradeToAndCall(address newImplementation, bytes memory data) internal { + _setImplementation(newImplementation); + emit Upgraded(newImplementation); + + if (data.length > 0) { + Address.functionDelegateCall(newImplementation, data); + } else { + _checkNonPayable(); + } + } + + /** + * @dev Storage slot with the admin of the contract. + * This is the keccak-256 hash of "eip1967.proxy.admin" subtracted by 1. + */ + // solhint-disable-next-line private-vars-leading-underscore + bytes32 internal constant ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103; + + /** + * @dev Returns the current admin. + * + * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using + * the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call. + * `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103` + */ + function getAdmin() internal view returns (address) { + return StorageSlot.getAddressSlot(ADMIN_SLOT).value; + } + + /** + * @dev Stores a new address in the EIP1967 admin slot. + */ + function _setAdmin(address newAdmin) private { + if (newAdmin == address(0)) { + revert ERC1967InvalidAdmin(address(0)); + } + StorageSlot.getAddressSlot(ADMIN_SLOT).value = newAdmin; + } + + /** + * @dev Changes the admin of the proxy. + * + * Emits an {IERC1967-AdminChanged} event. + */ + function changeAdmin(address newAdmin) internal { + emit AdminChanged(getAdmin(), newAdmin); + _setAdmin(newAdmin); + } + + /** + * @dev The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy. + * This is the keccak-256 hash of "eip1967.proxy.beacon" subtracted by 1. + */ + // solhint-disable-next-line private-vars-leading-underscore + bytes32 internal constant BEACON_SLOT = 0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50; + + /** + * @dev Returns the current beacon. + */ + function getBeacon() internal view returns (address) { + return StorageSlot.getAddressSlot(BEACON_SLOT).value; + } + + /** + * @dev Stores a new beacon in the EIP1967 beacon slot. + */ + function _setBeacon(address newBeacon) private { + if (newBeacon.code.length == 0) { + revert ERC1967InvalidBeacon(newBeacon); + } + + StorageSlot.getAddressSlot(BEACON_SLOT).value = newBeacon; + + address beaconImplementation = IBeacon(newBeacon).implementation(); + if (beaconImplementation.code.length == 0) { + revert ERC1967InvalidImplementation(beaconImplementation); + } + } + + /** + * @dev Change the beacon and trigger a setup call if data is nonempty. + * This function is payable only if the setup call is performed, otherwise `msg.value` is rejected + * to avoid stuck value in the contract. + * + * Emits an {IERC1967-BeaconUpgraded} event. + * + * CAUTION: Invoking this function has no effect on an instance of {BeaconProxy} since v5, since + * it uses an immutable beacon without looking at the value of the ERC-1967 beacon slot for + * efficiency. + */ + function upgradeBeaconToAndCall(address newBeacon, bytes memory data) internal { + _setBeacon(newBeacon); + emit BeaconUpgraded(newBeacon); + + if (data.length > 0) { + Address.functionDelegateCall(IBeacon(newBeacon).implementation(), data); + } else { + _checkNonPayable(); + } + } + + /** + * @dev Reverts if `msg.value` is not zero. It can be used to avoid `msg.value` stuck in the contract + * if an upgrade doesn't perform an initialization call. + */ + function _checkNonPayable() private { + if (msg.value > 0) { + revert ERC1967NonPayable(); + } + } +} + +// lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/proxy/beacon/UpgradeableBeacon.sol + +// OpenZeppelin Contracts (last updated v5.0.0) (proxy/beacon/UpgradeableBeacon.sol) + +/** + * @dev This contract is used in conjunction with one or more instances of {BeaconProxy} to determine their + * implementation contract, which is where they will delegate all function calls. + * + * An owner is able to change the implementation the beacon points to, thus upgrading the proxies that use this beacon. + */ +contract UpgradeableBeacon is IBeacon, Ownable { + address private _implementation; + + /** + * @dev The `implementation` of the beacon is invalid. + */ + error BeaconInvalidImplementation(address implementation); + + /** + * @dev Emitted when the implementation returned by the beacon is changed. + */ + event Upgraded(address indexed implementation); + + /** + * @dev Sets the address of the initial implementation, and the initial owner who can upgrade the beacon. + */ + constructor(address implementation_, address initialOwner) Ownable(initialOwner) { + _setImplementation(implementation_); + } + + /** + * @dev Returns the current implementation address. + */ + function implementation() public view virtual returns (address) { + return _implementation; + } + + /** + * @dev Upgrades the beacon to a new implementation. + * + * Emits an {Upgraded} event. + * + * Requirements: + * + * - msg.sender must be the owner of the contract. + * - `newImplementation` must be a contract. + */ + function upgradeTo(address newImplementation) public virtual onlyOwner { + _setImplementation(newImplementation); + } + + /** + * @dev Sets the implementation contract address for this beacon + * + * Requirements: + * + * - `newImplementation` must be a contract. + */ + function _setImplementation(address newImplementation) private { + if (newImplementation.code.length == 0) { + revert BeaconInvalidImplementation(newImplementation); + } + _implementation = newImplementation; + emit Upgraded(newImplementation); + } +} + +// lib/openzeppelin-foundry-upgrades/src/internal/Utils.sol + +struct ContractInfo { + /* + * Contract path, e.g. "src/MyContract.sol" + */ + string contractPath; + /* + * Contract short name, e.g. "MyContract" + */ + string shortName; + /* + * License identifier from the compiled artifact. Empty if not found. + */ + string license; + /* + * keccak256 hash of the source code from metadata + */ + string sourceCodeHash; + /* + * Artifact file path e.g. the path of the file 'out/MyContract.sol/MyContract.json' + */ + string artifactPath; +} + +/** + * @dev Internal helper methods used by Upgrades and Defender libraries. + */ +library Utils { + address constant CHEATCODE_ADDRESS = 0x7109709ECfa91a80626fF3989D68f67F5b1DD12D; + + /** + * @dev Gets the fully qualified name of a contract. + * + * @param contractName Contract name in the format "MyContract.sol" or "MyContract.sol:MyContract" or artifact path relative to the project root directory + * @param outDir Foundry output directory to search in if contractName is not an artifact path + * @return Fully qualified name of the contract, e.g. "src/MyContract.sol:MyContract" + */ + function getFullyQualifiedName( + string memory contractName, + string memory outDir + ) internal view returns (string memory) { + ContractInfo memory info = getContractInfo(contractName, outDir); + return string(abi.encodePacked(info.contractPath, ":", info.shortName)); + } + + /** + * @dev Gets information about a contract from its Foundry artifact. + * + * @param contractName Contract name in the format "MyContract.sol" or "MyContract.sol:MyContract" or artifact path relative to the project root directory + * @param outDir Foundry output directory to search in if contractName is not an artifact path + * @return ContractInfo struct containing information about the contract + */ + function getContractInfo( + string memory contractName, + string memory outDir + ) internal view returns (ContractInfo memory) { + Vm vm = Vm(CHEATCODE_ADDRESS); + + ContractInfo memory info; + + info.shortName = _toShortName(contractName); + + string memory fileName = _toFileName(contractName); + + string memory artifactPath = string( + abi.encodePacked(vm.projectRoot(), "/", outDir, "/", fileName, "/", info.shortName, ".json") + ); + string memory artifactJson = vm.readFile(artifactPath); + + if (!vm.keyExistsJson(artifactJson, ".ast")) { + revert( + string( + abi.encodePacked( + "Could not find AST in artifact ", + artifactPath, + ". Set `ast = true` in foundry.toml" + ) + ) + ); + } + info.contractPath = vm.parseJsonString(artifactJson, ".ast.absolutePath"); + if (vm.keyExistsJson(artifactJson, ".ast.license")) { + info.license = vm.parseJsonString(artifactJson, ".ast.license"); + } + info.sourceCodeHash = vm.parseJsonString( + artifactJson, + string(abi.encodePacked(".metadata.sources.['", info.contractPath, "'].keccak256")) + ); + info.artifactPath = artifactPath; + + return info; + } + + using Strings for *; + + /** + * Gets the path to the build-info file that contains the given bytecode. + * + * @param sourceCodeHash keccak256 hash of the source code from metadata + * @param contractName Contract name to display in error message if build-info file is not found + * @param outDir Foundry output directory that contains a build-info directory + * @return The path to the build-info file that contains the given bytecode + */ + function getBuildInfoFile( + string memory sourceCodeHash, + string memory contractName, + string memory outDir + ) internal returns (string memory) { + string[] memory inputs = new string[](4); + inputs[0] = "grep"; + inputs[1] = "-rl"; + inputs[2] = string(abi.encodePacked('"', sourceCodeHash, '"')); + inputs[3] = string(abi.encodePacked(outDir, "/build-info")); + + VmSafe.FfiResult memory result = runAsBashCommand(inputs); + string memory stdout = string(result.stdout); + + if (!stdout.toSlice().endsWith(".json".toSlice())) { + revert( + string( + abi.encodePacked( + "Could not find build-info file with matching source code hash for contract ", + contractName + ) + ) + ); + } + + return stdout; + } + + /** + * @dev Gets the output directory from the FOUNDRY_OUT environment variable, or defaults to "out" if not set. + */ + function getOutDir() internal view returns (string memory) { + Vm vm = Vm(CHEATCODE_ADDRESS); + + string memory defaultOutDir = "out"; + return vm.envOr("FOUNDRY_OUT", defaultOutDir); + } + + function _split( + Strings.slice memory inputSlice, + Strings.slice memory delimSlice + ) private pure returns (string[] memory) { + string[] memory parts = new string[](inputSlice.count(delimSlice) + 1); + for (uint i = 0; i < parts.length; i++) { + parts[i] = inputSlice.split(delimSlice).toString(); + } + return parts; + } + + function _toFileName(string memory contractName) private pure returns (string memory) { + Strings.slice memory name = contractName.toSlice(); + if (name.endsWith(".sol".toSlice())) { + return name.toString(); + } else if (name.count(":".toSlice()) == 1) { + return name.split(":".toSlice()).toString(); + } else { + if (name.endsWith(".json".toSlice())) { + string[] memory parts = _split(name, "/".toSlice()); + if (parts.length > 1) { + return parts[parts.length - 2]; + } + } + + revert( + string( + abi.encodePacked( + "Contract name ", + contractName, + " must be in the format MyContract.sol:MyContract or MyContract.sol or out/MyContract.sol/MyContract.json" + ) + ) + ); + } + } + + function _toShortName(string memory contractName) private pure returns (string memory) { + Strings.slice memory name = contractName.toSlice(); + if (name.endsWith(".sol".toSlice())) { + return name.until(".sol".toSlice()).toString(); + } else if (name.count(":".toSlice()) == 1) { + name.split(":".toSlice()); + return name.split(":".toSlice()).toString(); + } else if (name.endsWith(".json".toSlice())) { + string[] memory parts = _split(name, "/".toSlice()); + string memory jsonName = parts[parts.length - 1]; + return jsonName.toSlice().until(".json".toSlice()).toString(); + } else { + revert( + string( + abi.encodePacked( + "Contract name ", + contractName, + " must be in the format MyContract.sol:MyContract or MyContract.sol or out/MyContract.sol/MyContract.json" + ) + ) + ); + } + } + + /** + * @dev Converts an array of inputs to a bash command. + * @param inputs Inputs for a command, e.g. ["grep", "-rl", "0x1234", "out/build-info"] + * @param bashPath Path to the bash executable or just "bash" if it is in the PATH + * @return A bash command that runs the given inputs, e.g. ["bash", "-c", "grep -rl 0x1234 out/build-info"] + */ + function toBashCommand(string[] memory inputs, string memory bashPath) internal pure returns (string[] memory) { + string memory commandString; + for (uint i = 0; i < inputs.length; i++) { + commandString = string(abi.encodePacked(commandString, inputs[i])); + if (i != inputs.length - 1) { + commandString = string(abi.encodePacked(commandString, " ")); + } + } + + string[] memory result = new string[](3); + result[0] = bashPath; + result[1] = "-c"; + result[2] = commandString; + return result; + } + + /** + * @dev Runs an arbitrary command using bash. + * @param inputs Inputs for a command, e.g. ["grep", "-rl", "0x1234", "out/build-info"] + * @return The result of the corresponding bash command as a Vm.FfiResult struct + */ + function runAsBashCommand(string[] memory inputs) internal returns (VmSafe.FfiResult memory) { + Vm vm = Vm(CHEATCODE_ADDRESS); + string memory defaultBashPath = "bash"; + string memory bashPath = vm.envOr("OPENZEPPELIN_BASH_PATH", defaultBashPath); + + string[] memory bashCommand = toBashCommand(inputs, bashPath); + VmSafe.FfiResult memory result = vm.tryFfi(bashCommand); + if (result.exitCode != 0 && result.stdout.length == 0 && result.stderr.length == 0) { + // On Windows, using the bash executable from WSL leads to a non-zero exit code and no output + revert( + string( + abi.encodePacked( + 'Failed to run bash command with "', + bashCommand[0], + '". If you are using Windows, set the OPENZEPPELIN_BASH_PATH environment variable to the fully qualified path of the bash executable. For example, if you are using Git for Windows, add the following line in the .env file of your project (using forward slashes):\nOPENZEPPELIN_BASH_PATH="C:/Program Files/Git/bin/bash"' + ) + ) + ); + } else { + return result; + } + } +} + +// lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol + +// OpenZeppelin Contracts (last updated v5.0.0) (proxy/ERC1967/ERC1967Proxy.sol) + +/** + * @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an + * implementation address that can be changed. This address is stored in storage in the location specified by + * https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the + * implementation behind the proxy. + */ +contract ERC1967Proxy is Proxy { + /** + * @dev Initializes the upgradeable proxy with an initial implementation specified by `implementation`. + * + * If `_data` is nonempty, it's used as data in a delegate call to `implementation`. This will typically be an + * encoded function call, and allows initializing the storage of the proxy like a Solidity constructor. + * + * Requirements: + * + * - If `data` is empty, `msg.value` must be zero. + */ + constructor(address implementation, bytes memory _data) payable { + ERC1967Utils.upgradeToAndCall(implementation, _data); + } + + /** + * @dev Returns the current implementation address. + * + * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using + * the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call. + * `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc` + */ + function _implementation() internal view virtual override returns (address) { + return ERC1967Utils.getImplementation(); + } +} + +// lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/proxy/beacon/BeaconProxy.sol + +// OpenZeppelin Contracts (last updated v5.0.0) (proxy/beacon/BeaconProxy.sol) + +/** + * @dev This contract implements a proxy that gets the implementation address for each call from an {UpgradeableBeacon}. + * + * The beacon address can only be set once during construction, and cannot be changed afterwards. It is stored in an + * immutable variable to avoid unnecessary storage reads, and also in the beacon storage slot specified by + * https://eips.ethereum.org/EIPS/eip-1967[EIP1967] so that it can be accessed externally. + * + * CAUTION: Since the beacon address can never be changed, you must ensure that you either control the beacon, or trust + * the beacon to not upgrade the implementation maliciously. + * + * IMPORTANT: Do not use the implementation logic to modify the beacon storage slot. Doing so would leave the proxy in + * an inconsistent state where the beacon storage slot does not match the beacon address. + */ +contract BeaconProxy is Proxy { + // An immutable address for the beacon to avoid unnecessary SLOADs before each delegate call. + address private immutable _beacon; + + /** + * @dev Initializes the proxy with `beacon`. + * + * If `data` is nonempty, it's used as data in a delegate call to the implementation returned by the beacon. This + * will typically be an encoded function call, and allows initializing the storage of the proxy like a Solidity + * constructor. + * + * Requirements: + * + * - `beacon` must be a contract with the interface {IBeacon}. + * - If `data` is empty, `msg.value` must be zero. + */ + constructor(address beacon, bytes memory data) payable { + ERC1967Utils.upgradeBeaconToAndCall(beacon, data); + _beacon = beacon; + } + + /** + * @dev Returns the current implementation address of the associated beacon. + */ + function _implementation() internal view virtual override returns (address) { + return IBeacon(_getBeacon()).implementation(); + } + + /** + * @dev Returns the beacon. + */ + function _getBeacon() internal view virtual returns (address) { + return _beacon; + } +} + +// lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/proxy/transparent/ProxyAdmin.sol + +// OpenZeppelin Contracts (last updated v5.0.0) (proxy/transparent/ProxyAdmin.sol) + +/** + * @dev This is an auxiliary contract meant to be assigned as the admin of a {TransparentUpgradeableProxy}. For an + * explanation of why you would want to use this see the documentation for {TransparentUpgradeableProxy}. + */ +contract ProxyAdmin is Ownable { + /** + * @dev The version of the upgrade interface of the contract. If this getter is missing, both `upgrade(address)` + * and `upgradeAndCall(address,bytes)` are present, and `upgradeTo` must be used if no function should be called, + * while `upgradeAndCall` will invoke the `receive` function if the second argument is the empty byte string. + * If the getter returns `"5.0.0"`, only `upgradeAndCall(address,bytes)` is present, and the second argument must + * be the empty byte string if no function should be called, making it impossible to invoke the `receive` function + * during an upgrade. + */ + string public constant UPGRADE_INTERFACE_VERSION = "5.0.0"; + + /** + * @dev Sets the initial owner who can perform upgrades. + */ + constructor(address initialOwner) Ownable(initialOwner) {} + + /** + * @dev Upgrades `proxy` to `implementation` and calls a function on the new implementation. + * See {TransparentUpgradeableProxy-_dispatchUpgradeToAndCall}. + * + * Requirements: + * + * - This contract must be the admin of `proxy`. + * - If `data` is empty, `msg.value` must be zero. + */ + function upgradeAndCall( + ITransparentUpgradeableProxy proxy, + address implementation, + bytes memory data + ) public payable virtual onlyOwner { + proxy.upgradeToAndCall{value: msg.value}(implementation, data); + } +} + +// lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/proxy/transparent/TransparentUpgradeableProxy.sol + +// OpenZeppelin Contracts (last updated v5.0.0) (proxy/transparent/TransparentUpgradeableProxy.sol) + +/** + * @dev Interface for {TransparentUpgradeableProxy}. In order to implement transparency, {TransparentUpgradeableProxy} + * does not implement this interface directly, and its upgradeability mechanism is implemented by an internal dispatch + * mechanism. The compiler is unaware that these functions are implemented by {TransparentUpgradeableProxy} and will not + * include them in the ABI so this interface must be used to interact with it. + */ +interface ITransparentUpgradeableProxy is IERC1967 { + function upgradeToAndCall(address, bytes calldata) external payable; +} + +/** + * @dev This contract implements a proxy that is upgradeable through an associated {ProxyAdmin} instance. + * + * To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector + * clashing], which can potentially be used in an attack, this contract uses the + * https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two + * things that go hand in hand: + * + * 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if + * that call matches the {ITransparentUpgradeableProxy-upgradeToAndCall} function exposed by the proxy itself. + * 2. If the admin calls the proxy, it can call the `upgradeToAndCall` function but any other call won't be forwarded to + * the implementation. If the admin tries to call a function on the implementation it will fail with an error indicating + * the proxy admin cannot fallback to the target implementation. + * + * These properties mean that the admin account can only be used for upgrading the proxy, so it's best if it's a + * dedicated account that is not used for anything else. This will avoid headaches due to sudden errors when trying to + * call a function from the proxy implementation. For this reason, the proxy deploys an instance of {ProxyAdmin} and + * allows upgrades only if they come through it. You should think of the `ProxyAdmin` instance as the administrative + * interface of the proxy, including the ability to change who can trigger upgrades by transferring ownership. + * + * NOTE: The real interface of this proxy is that defined in `ITransparentUpgradeableProxy`. This contract does not + * inherit from that interface, and instead `upgradeToAndCall` is implicitly implemented using a custom dispatch + * mechanism in `_fallback`. Consequently, the compiler will not produce an ABI for this contract. This is necessary to + * fully implement transparency without decoding reverts caused by selector clashes between the proxy and the + * implementation. + * + * NOTE: This proxy does not inherit from {Context} deliberately. The {ProxyAdmin} of this contract won't send a + * meta-transaction in any way, and any other meta-transaction setup should be made in the implementation contract. + * + * IMPORTANT: This contract avoids unnecessary storage reads by setting the admin only during construction as an + * immutable variable, preventing any changes thereafter. However, the admin slot defined in ERC-1967 can still be + * overwritten by the implementation logic pointed to by this proxy. In such cases, the contract may end up in an + * undesirable state where the admin slot is different from the actual admin. + * + * WARNING: It is not recommended to extend this contract to add additional external functions. If you do so, the + * compiler will not check that there are no selector conflicts, due to the note above. A selector clash between any new + * function and the functions declared in {ITransparentUpgradeableProxy} will be resolved in favor of the new one. This + * could render the `upgradeToAndCall` function inaccessible, preventing upgradeability and compromising transparency. + */ +contract TransparentUpgradeableProxy is ERC1967Proxy { + // An immutable address for the admin to avoid unnecessary SLOADs before each call + // at the expense of removing the ability to change the admin once it's set. + // This is acceptable if the admin is always a ProxyAdmin instance or similar contract + // with its own ability to transfer the permissions to another account. + address private immutable _admin; + + /** + * @dev The proxy caller is the current admin, and can't fallback to the proxy target. + */ + error ProxyDeniedAdminAccess(); + + /** + * @dev Initializes an upgradeable proxy managed by an instance of a {ProxyAdmin} with an `initialOwner`, + * backed by the implementation at `_logic`, and optionally initialized with `_data` as explained in + * {ERC1967Proxy-constructor}. + */ + constructor(address _logic, address initialOwner, bytes memory _data) payable ERC1967Proxy(_logic, _data) { + _admin = address(new ProxyAdmin(initialOwner)); + // Set the storage value and emit an event for ERC-1967 compatibility + ERC1967Utils.changeAdmin(_proxyAdmin()); + } + + /** + * @dev Returns the admin of this proxy. + */ + function _proxyAdmin() internal virtual returns (address) { + return _admin; + } + + /** + * @dev If caller is the admin process the call internally, otherwise transparently fallback to the proxy behavior. + */ + function _fallback() internal virtual override { + if (msg.sender == _proxyAdmin()) { + if (msg.sig != ITransparentUpgradeableProxy.upgradeToAndCall.selector) { + revert ProxyDeniedAdminAccess(); + } else { + _dispatchUpgradeToAndCall(); + } + } else { + super._fallback(); + } + } + + /** + * @dev Upgrade the implementation of the proxy. See {ERC1967Utils-upgradeToAndCall}. + * + * Requirements: + * + * - If `data` is empty, `msg.value` must be zero. + */ + function _dispatchUpgradeToAndCall() private { + (address newImplementation, bytes memory data) = abi.decode(msg.data[4:], (address, bytes)); + ERC1967Utils.upgradeToAndCall(newImplementation, data); + } +} + +// lib/openzeppelin-foundry-upgrades/src/Defender.sol + +/** + * @dev Library for interacting with OpenZeppelin Defender from Forge scripts or tests. + */ +library Defender { + /** + * @dev Deploys a contract to the current network using OpenZeppelin Defender. + * + * WARNING: Do not use this function directly if you are deploying an upgradeable contract. This function does not validate whether the contract is upgrade safe. + * + * NOTE: If using an EOA or Safe to deploy, go to https://defender.openzeppelin.com/v2/#/deploy[Defender deploy] to submit the pending deployment while the script is running. + * The script waits for the deployment to complete before it continues. + * + * @param contractName Name of the contract to deploy, e.g. "MyContract.sol" or "MyContract.sol:MyContract" or artifact path relative to the project root directory + * @return Address of the deployed contract + */ + function deployContract(string memory contractName) internal returns (address) { + return deployContract(contractName, ""); + } + + /** + * @dev Deploys a contract to the current network using OpenZeppelin Defender. + * + * WARNING: Do not use this function directly if you are deploying an upgradeable contract. This function does not validate whether the contract is upgrade safe. + * + * NOTE: If using an EOA or Safe to deploy, go to https://defender.openzeppelin.com/v2/#/deploy[Defender deploy] to submit the pending deployment while the script is running. + * The script waits for the deployment to complete before it continues. + * + * @param contractName Name of the contract to deploy, e.g. "MyContract.sol" or "MyContract.sol:MyContract" or artifact path relative to the project root directory + * @param defenderOpts Defender deployment options. Note that the `useDefenderDeploy` option is always treated as `true` when called from this function. + * @return Address of the deployed contract + */ + function deployContract( + string memory contractName, + DefenderOptions memory defenderOpts + ) internal returns (address) { + return deployContract(contractName, "", defenderOpts); + } + + /** + * @dev Deploys a contract with constructor arguments to the current network using OpenZeppelin Defender. + * + * WARNING: Do not use this function directly if you are deploying an upgradeable contract. This function does not validate whether the contract is upgrade safe. + * + * NOTE: If using an EOA or Safe to deploy, go to https://defender.openzeppelin.com/v2/#/deploy[Defender deploy] to submit the pending deployment while the script is running. + * The script waits for the deployment to complete before it continues. + * + * @param contractName Name of the contract to deploy, e.g. "MyContract.sol" or "MyContract.sol:MyContract" or artifact path relative to the project root directory + * @param constructorData Encoded constructor arguments + * @return Address of the deployed contract + */ + function deployContract(string memory contractName, bytes memory constructorData) internal returns (address) { + DefenderOptions memory defenderOpts; + return deployContract(contractName, constructorData, defenderOpts); + } + + /** + * @dev Deploys a contract with constructor arguments to the current network using OpenZeppelin Defender. + * + * WARNING: Do not use this function directly if you are deploying an upgradeable contract. This function does not validate whether the contract is upgrade safe. + * + * NOTE: If using an EOA or Safe to deploy, go to https://defender.openzeppelin.com/v2/#/deploy[Defender deploy] to submit the pending deployment while the script is running. + * The script waits for the deployment to complete before it continues. + * + * @param contractName Name of the contract to deploy, e.g. "MyContract.sol" or "MyContract.sol:MyContract" or artifact path relative to the project root directory + * @param constructorData Encoded constructor arguments + * @param defenderOpts Defender deployment options. Note that the `useDefenderDeploy` option is always treated as `true` when called from this function. + * @return Address of the deployed contract + */ + function deployContract( + string memory contractName, + bytes memory constructorData, + DefenderOptions memory defenderOpts + ) internal returns (address) { + return DefenderDeploy.deploy(contractName, constructorData, defenderOpts); + } + + /** + * @dev Proposes an upgrade to an upgradeable proxy using OpenZeppelin Defender. + * + * This function validates a new implementation contract in comparison with a reference contract, deploys the new implementation contract using Defender, + * and proposes an upgrade to the new implementation contract using an upgrade approval process on Defender. + * + * Supported for UUPS or Transparent proxies. Not currently supported for beacon proxies or beacons. + * For beacons, use `Upgrades.prepareUpgrade` along with a transaction proposal on Defender to upgrade the beacon to the deployed implementation. + * + * Requires that either the `referenceContract` option is set, or the contract has a `@custom:oz-upgrades-from ` annotation. + * + * WARNING: Ensure that the reference contract is the same as the current implementation contract that the proxy is pointing to. + * This function does not validate that the reference contract is the current implementation. + * + * NOTE: If using an EOA or Safe to deploy, go to https://defender.openzeppelin.com/v2/#/deploy[Defender deploy] to submit the pending deployment of the new implementation contract while the script is running. + * The script waits for the deployment to complete before it continues. + * + * @param proxyAddress The proxy address + * @param newImplementationContractName Name of the new implementation contract to upgrade to, e.g. "MyContract.sol" or "MyContract.sol:MyContract" or artifact path relative to the project root directory + * @param opts Common options. Note that the `defender.useDefenderDeploy` option is always treated as `true` when called from this function. + * @return Struct containing the proposal ID and URL for the upgrade proposal + */ + function proposeUpgrade( + address proxyAddress, + string memory newImplementationContractName, + Options memory opts + ) internal returns (ProposeUpgradeResponse memory) { + opts.defender.useDefenderDeploy = true; + address proxyAdminAddress = Core.getAdminAddress(proxyAddress); + address newImplementationAddress = Core.prepareUpgrade(newImplementationContractName, opts); + return + DefenderDeploy.proposeUpgrade( + proxyAddress, + proxyAdminAddress, + newImplementationAddress, + newImplementationContractName, + opts + ); + } + + /** + * @dev Gets the default deploy approval process configured for your deployment environment on OpenZeppelin Defender. + * + * @return Struct with the default deploy approval process ID and the associated address, such as a Relayer, EOA, or multisig wallet address. + */ + function getDeployApprovalProcess() internal returns (ApprovalProcessResponse memory) { + return DefenderDeploy.getApprovalProcess("getDeployApprovalProcess"); + } + + /** + * @dev Gets the default upgrade approval process configured for your deployment environment on OpenZeppelin Defender. + * For example, this is useful for determining the default multisig wallet that you can use in your scripts to assign as the owner of your proxy. + * + * @return Struct with the default upgrade approval process ID and the associated address, such as a multisig or governor contract address. + */ + function getUpgradeApprovalProcess() internal returns (ApprovalProcessResponse memory) { + return DefenderDeploy.getApprovalProcess("getUpgradeApprovalProcess"); + } +} + +struct ProposeUpgradeResponse { + string proposalId; + string url; +} + +struct ApprovalProcessResponse { + string approvalProcessId; + address via; + string viaType; +} + +// lib/openzeppelin-foundry-upgrades/src/internal/Core.sol + +/** + * @dev Internal helper methods to validate/deploy implementations and perform upgrades. + * + * WARNING: DO NOT USE DIRECTLY. Use Upgrades.sol, LegacyUpgrades.sol or Defender.sol instead. + */ +library Core { + /** + * @dev Upgrades a proxy to a new implementation contract. Only supported for UUPS or transparent proxies. + * + * Requires that either the `referenceContract` option is set, or the new implementation contract has a `@custom:oz-upgrades-from ` annotation. + * + * @param proxy Address of the proxy to upgrade + * @param contractName Name of the new implementation contract to upgrade to, e.g. "MyContract.sol" or "MyContract.sol:MyContract" or artifact path relative to the project root directory + * @param data Encoded call data of an arbitrary function to call during the upgrade process, or empty if no function needs to be called during the upgrade + * @param opts Common options + */ + function upgradeProxy(address proxy, string memory contractName, bytes memory data, Options memory opts) internal { + address newImpl = prepareUpgrade(contractName, opts); + upgradeProxyTo(proxy, newImpl, data); + } + + /** + * @notice For tests only. If broadcasting in scripts, use the `--sender
` option with `forge script` instead. + * + * @dev Upgrades a proxy to a new implementation contract. Only supported for UUPS or transparent proxies. + * + * Requires that either the `referenceContract` option is set, or the new implementation contract has a `@custom:oz-upgrades-from ` annotation. + * + * This function provides an additional `tryCaller` parameter to test an upgrade using a specific caller address. + * Use this if you encounter `OwnableUnauthorizedAccount` errors in your tests. + * + * @param proxy Address of the proxy to upgrade + * @param contractName Name of the new implementation contract to upgrade to, e.g. "MyContract.sol" or "MyContract.sol:MyContract" or artifact path relative to the project root directory + * @param data Encoded call data of an arbitrary function to call during the upgrade process, or empty if no function needs to be called during the upgrade + * @param opts Common options + * @param tryCaller Address to use as the caller of the upgrade function. This should be the address that owns the proxy or its ProxyAdmin. + */ + function upgradeProxy( + address proxy, + string memory contractName, + bytes memory data, + Options memory opts, + address tryCaller + ) internal tryPrank(tryCaller) { + upgradeProxy(proxy, contractName, data, opts); + } + + /** + * @dev Upgrades a proxy to a new implementation contract. Only supported for UUPS or transparent proxies. + * + * @param proxy Address of the proxy to upgrade + * @param newImpl Address of the new implementation contract to upgrade to + * @param data Encoded call data of an arbitrary function to call during the upgrade process, or empty if no function needs to be called during the upgrade + */ + function upgradeProxyTo(address proxy, address newImpl, bytes memory data) internal { + Vm vm = Vm(Utils.CHEATCODE_ADDRESS); + + bytes32 adminSlot = vm.load(proxy, ADMIN_SLOT); + if (adminSlot == bytes32(0)) { + string memory upgradeInterfaceVersion = getUpgradeInterfaceVersion(proxy); + if (upgradeInterfaceVersion.toSlice().equals("5.0.0".toSlice()) || data.length > 0) { + IUpgradeableProxy(proxy).upgradeToAndCall(newImpl, data); + } else { + IUpgradeableProxy(proxy).upgradeTo(newImpl); + } + } else { + address admin = address(uint160(uint256(adminSlot))); + string memory upgradeInterfaceVersion = getUpgradeInterfaceVersion(admin); + if (upgradeInterfaceVersion.toSlice().equals("5.0.0".toSlice()) || data.length > 0) { + IProxyAdmin(admin).upgradeAndCall(proxy, newImpl, data); + } else { + IProxyAdmin(admin).upgrade(proxy, newImpl); + } + } + } + + /** + * @notice For tests only. If broadcasting in scripts, use the `--sender
` option with `forge script` instead. + * + * @dev Upgrades a proxy to a new implementation contract. Only supported for UUPS or transparent proxies. + * + * This function provides an additional `tryCaller` parameter to test an upgrade using a specific caller address. + * Use this if you encounter `OwnableUnauthorizedAccount` errors in your tests. + * + * @param proxy Address of the proxy to upgrade + * @param newImpl Address of the new implementation contract to upgrade to + * @param data Encoded call data of an arbitrary function to call during the upgrade process, or empty if no function needs to be called during the upgrade + * @param tryCaller Address to use as the caller of the upgrade function. This should be the address that owns the proxy or its ProxyAdmin. + */ + function upgradeProxyTo( + address proxy, + address newImpl, + bytes memory data, + address tryCaller + ) internal tryPrank(tryCaller) { + upgradeProxyTo(proxy, newImpl, data); + } + + /** + * @dev Upgrades a beacon to a new implementation contract. + * + * Requires that either the `referenceContract` option is set, or the new implementation contract has a `@custom:oz-upgrades-from ` annotation. + * + * @param beacon Address of the beacon to upgrade + * @param contractName Name of the new implementation contract to upgrade to, e.g. "MyContract.sol" or "MyContract.sol:MyContract" or artifact path relative to the project root directory + * @param opts Common options + */ + function upgradeBeacon(address beacon, string memory contractName, Options memory opts) internal { + address newImpl = prepareUpgrade(contractName, opts); + upgradeBeaconTo(beacon, newImpl); + } + + /** + * @notice For tests only. If broadcasting in scripts, use the `--sender
` option with `forge script` instead. + * + * @dev Upgrades a beacon to a new implementation contract. + * + * Requires that either the `referenceContract` option is set, or the new implementation contract has a `@custom:oz-upgrades-from ` annotation. + * + * This function provides an additional `tryCaller` parameter to test an upgrade using a specific caller address. + * Use this if you encounter `OwnableUnauthorizedAccount` errors in your tests. + * + * @param beacon Address of the beacon to upgrade + * @param contractName Name of the new implementation contract to upgrade to, e.g. "MyContract.sol" or "MyContract.sol:MyContract" or artifact path relative to the project root directory + * @param opts Common options + * @param tryCaller Address to use as the caller of the upgrade function. This should be the address that owns the beacon. + */ + function upgradeBeacon( + address beacon, + string memory contractName, + Options memory opts, + address tryCaller + ) internal tryPrank(tryCaller) { + upgradeBeacon(beacon, contractName, opts); + } + + /** + * @dev Upgrades a beacon to a new implementation contract address. + * + * @param beacon Address of the beacon to upgrade + * @param newImpl Address of the new implementation contract to upgrade to + */ + function upgradeBeaconTo(address beacon, address newImpl) internal { + IUpgradeableBeacon(beacon).upgradeTo(newImpl); + } + + /** + * @notice For tests only. If broadcasting in scripts, use the `--sender
` option with `forge script` instead. + * + * @dev Upgrades a beacon to a new implementation contract. + * + * This function provides an additional `tryCaller` parameter to test an upgrade using a specific caller address. + * Use this if you encounter `OwnableUnauthorizedAccount` errors in your tests. + * + * @param beacon Address of the beacon to upgrade + * @param newImpl Address of the new implementation contract to upgrade to + * @param tryCaller Address to use as the caller of the upgrade function. This should be the address that owns the beacon. + */ + function upgradeBeaconTo(address beacon, address newImpl, address tryCaller) internal tryPrank(tryCaller) { + upgradeBeaconTo(beacon, newImpl); + } + + /** + * @dev Validates an implementation contract, but does not deploy it. + * + * @param contractName Name of the contract to validate, e.g. "MyContract.sol" or "MyContract.sol:MyContract" or artifact path relative to the project root directory + * @param opts Common options + */ + function validateImplementation(string memory contractName, Options memory opts) internal { + _validate(contractName, opts, false); + } + + /** + * @dev Validates and deploys an implementation contract, and returns its address. + * + * @param contractName Name of the contract to deploy, e.g. "MyContract.sol" or "MyContract.sol:MyContract" or artifact path relative to the project root directory + * @param opts Common options + * @return Address of the implementation contract + */ + function deployImplementation(string memory contractName, Options memory opts) internal returns (address) { + validateImplementation(contractName, opts); + return deploy(contractName, opts.constructorData, opts); + } + + /** + * @dev Validates a new implementation contract in comparison with a reference contract, but does not deploy it. + * + * Requires that either the `referenceContract` option is set, or the contract has a `@custom:oz-upgrades-from ` annotation. + * + * @param contractName Name of the contract to validate, e.g. "MyContract.sol" or "MyContract.sol:MyContract" or artifact path relative to the project root directory + * @param opts Common options + */ + function validateUpgrade(string memory contractName, Options memory opts) internal { + _validate(contractName, opts, true); + } + + /** + * @dev Validates a new implementation contract in comparison with a reference contract, deploys the new implementation contract, + * and returns its address. + * + * Requires that either the `referenceContract` option is set, or the contract has a `@custom:oz-upgrades-from ` annotation. + * + * Use this method to prepare an upgrade to be run from an admin address you do not control directly or cannot use from your deployment environment. + * + * @param contractName Name of the contract to deploy, e.g. "MyContract.sol" or "MyContract.sol:MyContract" or artifact path relative to the project root directory + * @param opts Common options + * @return Address of the new implementation contract + */ + function prepareUpgrade(string memory contractName, Options memory opts) internal returns (address) { + validateUpgrade(contractName, opts); + return deploy(contractName, opts.constructorData, opts); + } + + /** + * @dev Gets the admin address of a transparent proxy from its ERC1967 admin storage slot. + * + * @param proxy Address of a transparent proxy + * @return Admin address + */ + function getAdminAddress(address proxy) internal view returns (address) { + Vm vm = Vm(Utils.CHEATCODE_ADDRESS); + + bytes32 adminSlot = vm.load(proxy, ADMIN_SLOT); + return address(uint160(uint256(adminSlot))); + } + + /** + * @dev Gets the implementation address of a transparent or UUPS proxy from its ERC1967 implementation storage slot. + * + * @param proxy Address of a transparent or UUPS proxy + * @return Implementation address + */ + function getImplementationAddress(address proxy) internal view returns (address) { + Vm vm = Vm(Utils.CHEATCODE_ADDRESS); + + bytes32 implSlot = vm.load(proxy, IMPLEMENTATION_SLOT); + return address(uint160(uint256(implSlot))); + } + + /** + * @dev Gets the beacon address of a beacon proxy from its ERC1967 beacon storage slot. + * + * @param proxy Address of a beacon proxy + * @return Beacon address + */ + function getBeaconAddress(address proxy) internal view returns (address) { + Vm vm = Vm(Utils.CHEATCODE_ADDRESS); + + bytes32 beaconSlot = vm.load(proxy, BEACON_SLOT); + return address(uint160(uint256(beaconSlot))); + } + + /** + * @notice For tests only. If broadcasting in scripts, use the `--sender
` option with `forge script` instead. + * + * @dev Runs a function as a prank, or just runs the function normally if the prank could not be started. + */ + modifier tryPrank(address deployer) { + Vm vm = Vm(Utils.CHEATCODE_ADDRESS); + + try vm.startPrank(deployer) { + _; + vm.stopPrank(); + } catch { + _; + } + } + + /** + * @dev Storage slot with the address of the implementation. + * This is the keccak-256 hash of "eip1967.proxy.implementation" subtracted by 1. + */ + bytes32 private constant IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; + + /** + * @dev Storage slot with the admin of the proxy. + * This is the keccak-256 hash of "eip1967.proxy.admin" subtracted by 1. + */ + bytes32 private constant ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103; + + /** + * @dev Storage slot with the UpgradeableBeacon contract which defines the implementation for the proxy. + * This is the keccak-256 hash of "eip1967.proxy.beacon" subtracted by 1. + */ + bytes32 private constant BEACON_SLOT = 0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50; + + using Strings for *; + + /** + * @dev Gets the upgrade interface version string from a proxy or admin contract using the `UPGRADE_INTERFACE_VERSION()` getter. + * If the contract does not have the getter or the return data does not look like a string, this function returns an empty string. + */ + function getUpgradeInterfaceVersion(address addr) internal view returns (string memory) { + // Use staticcall to prevent forge from broadcasting it + (bool success, bytes memory returndata) = addr.staticcall( + abi.encodeWithSignature("UPGRADE_INTERFACE_VERSION()") + ); + if (success && returndata.length > 32) { + return abi.decode(returndata, (string)); + } else { + return ""; + } + } + + function _validate(string memory contractName, Options memory opts, bool requireReference) private { + if (opts.unsafeSkipAllChecks) { + return; + } + + string[] memory inputs = _buildValidateCommand(contractName, opts, requireReference); + VmSafe.FfiResult memory result = Utils.runAsBashCommand(inputs); + string memory stdout = string(result.stdout); + + // CLI validate command uses exit code to indicate if the validation passed or failed. + // As an extra precaution, we also check stdout for "SUCCESS" to ensure it actually ran. + if (result.exitCode == 0 && stdout.toSlice().contains("SUCCESS".toSlice())) { + return; + } else if (result.stderr.length > 0) { + // Validations failed to run + revert(string(abi.encodePacked("Failed to run upgrade safety validation: ", string(result.stderr)))); + } else { + // Validations ran but some contracts were not upgrade safe + revert(string(abi.encodePacked("Upgrade safety validation failed:\n", stdout))); + } + } + + function _buildValidateCommand( + string memory contractName, + Options memory opts, + bool requireReference + ) private view returns (string[] memory) { + string memory outDir = Utils.getOutDir(); + + string[] memory inputBuilder = new string[](255); + + uint8 i = 0; + + inputBuilder[i++] = "npx"; + inputBuilder[i++] = string(abi.encodePacked("@openzeppelin/upgrades-core@", Versions.UPGRADES_CORE)); + inputBuilder[i++] = "validate"; + inputBuilder[i++] = string(abi.encodePacked(outDir, "/build-info")); + inputBuilder[i++] = "--contract"; + inputBuilder[i++] = Utils.getFullyQualifiedName(contractName, outDir); + + if (bytes(opts.referenceContract).length != 0) { + inputBuilder[i++] = "--reference"; + inputBuilder[i++] = Utils.getFullyQualifiedName(opts.referenceContract, outDir); + } + + if (opts.unsafeSkipStorageCheck) { + inputBuilder[i++] = "--unsafeSkipStorageCheck"; + } else if (requireReference) { + inputBuilder[i++] = "--requireReference"; + } + + if (bytes(opts.unsafeAllow).length != 0) { + inputBuilder[i++] = "--unsafeAllow"; + inputBuilder[i++] = opts.unsafeAllow; + } + + if (opts.unsafeAllowRenames) { + inputBuilder[i++] = "--unsafeAllowRenames"; + } + + // Create a copy of inputs but with the correct length + string[] memory inputs = new string[](i); + for (uint8 j = 0; j < i; j++) { + inputs[j] = inputBuilder[j]; + } + + return inputs; + } + + function deploy( + string memory contractName, + bytes memory constructorData, + Options memory opts + ) internal returns (address) { + if (opts.defender.useDefenderDeploy) { + return DefenderDeploy.deploy(contractName, constructorData, opts.defender); + } else { + return _deploy(contractName, constructorData); + } + } + + function _deploy(string memory contractName, bytes memory constructorData) private returns (address) { + bytes memory creationCode = Vm(Utils.CHEATCODE_ADDRESS).getCode(contractName); + address deployedAddress = _deployFromBytecode(abi.encodePacked(creationCode, constructorData)); + if (deployedAddress == address(0)) { + revert( + string( + abi.encodePacked( + "Failed to deploy contract ", + contractName, + ' using constructor data "', + string(constructorData), + '"' + ) + ) + ); + } + return deployedAddress; + } + + function _deployFromBytecode(bytes memory bytecode) private returns (address) { + address addr; + assembly { + addr := create(0, add(bytecode, 32), mload(bytecode)) + } + return addr; + } +} + +// lib/openzeppelin-foundry-upgrades/src/internal/DefenderDeploy.sol + +/** + * @dev Internal helper methods for Defender deployments. + * + * WARNING: DO NOT USE DIRECTLY. Use Defender.sol instead. + */ +library DefenderDeploy { + using Strings for *; + + function deploy( + string memory contractName, + bytes memory constructorData, + DefenderOptions memory defenderOpts + ) internal returns (address) { + string memory outDir = Utils.getOutDir(); + ContractInfo memory contractInfo = Utils.getContractInfo(contractName, outDir); + string memory buildInfoFile = Utils.getBuildInfoFile( + contractInfo.sourceCodeHash, + contractInfo.shortName, + outDir + ); + + string[] memory inputs = buildDeployCommand(contractInfo, buildInfoFile, constructorData, defenderOpts); + + VmSafe.FfiResult memory result = Utils.runAsBashCommand(inputs); + string memory stdout = string(result.stdout); + + if (result.exitCode != 0) { + revert(string(abi.encodePacked("Failed to deploy contract ", contractName, ": ", string(result.stderr)))); + } + + string memory deployedAddress = _parseLine("Deployed to address: ", stdout, true); + return Vm(Utils.CHEATCODE_ADDRESS).parseAddress(deployedAddress); + } + + function buildDeployCommand( + ContractInfo memory contractInfo, + string memory buildInfoFile, + bytes memory constructorData, + DefenderOptions memory defenderOpts + ) internal view returns (string[] memory) { + Vm vm = Vm(Utils.CHEATCODE_ADDRESS); + + if (!(defenderOpts.licenseType).toSlice().empty()) { + if (defenderOpts.skipVerifySourceCode) { + revert("The `licenseType` option cannot be used when the `skipVerifySourceCode` option is `true`"); + } else if (defenderOpts.skipLicenseType) { + revert("The `licenseType` option cannot be used when the `skipLicenseType` option is `true`"); + } + } + + string[] memory inputBuilder = new string[](255); + + uint8 i = 0; + + inputBuilder[i++] = "npx"; + inputBuilder[i++] = string( + abi.encodePacked("@openzeppelin/defender-deploy-client-cli@", Versions.DEFENDER_DEPLOY_CLIENT_CLI) + ); + inputBuilder[i++] = "deploy"; + inputBuilder[i++] = "--contractName"; + inputBuilder[i++] = contractInfo.shortName; + inputBuilder[i++] = "--contractPath"; + inputBuilder[i++] = contractInfo.contractPath; + inputBuilder[i++] = "--chainId"; + inputBuilder[i++] = Strings.toString(block.chainid); + inputBuilder[i++] = "--buildInfoFile"; + inputBuilder[i++] = buildInfoFile; + if (constructorData.length > 0) { + inputBuilder[i++] = "--constructorBytecode"; + inputBuilder[i++] = vm.toString(constructorData); + } + if (defenderOpts.skipVerifySourceCode) { + inputBuilder[i++] = "--verifySourceCode"; + inputBuilder[i++] = "false"; + } else if (!(defenderOpts.licenseType).toSlice().empty()) { + inputBuilder[i++] = "--licenseType"; + inputBuilder[i++] = string(abi.encodePacked('"', defenderOpts.licenseType, '"')); + } else if (!defenderOpts.skipLicenseType && !(contractInfo.license).toSlice().empty()) { + inputBuilder[i++] = "--licenseType"; + inputBuilder[i++] = string(abi.encodePacked('"', _toLicenseType(contractInfo), '"')); + } + if (!(defenderOpts.relayerId).toSlice().empty()) { + inputBuilder[i++] = "--relayerId"; + inputBuilder[i++] = defenderOpts.relayerId; + } + if (defenderOpts.salt != 0) { + inputBuilder[i++] = "--salt"; + inputBuilder[i++] = vm.toString(defenderOpts.salt); + } + if (defenderOpts.txOverrides.gasLimit != 0) { + inputBuilder[i++] = "--gasLimit"; + inputBuilder[i++] = Strings.toString(defenderOpts.txOverrides.gasLimit); + } + if (defenderOpts.txOverrides.gasPrice != 0) { + inputBuilder[i++] = "--gasPrice"; + inputBuilder[i++] = Strings.toString(defenderOpts.txOverrides.gasPrice); + } + if (defenderOpts.txOverrides.maxFeePerGas != 0) { + inputBuilder[i++] = "--maxFeePerGas"; + inputBuilder[i++] = Strings.toString(defenderOpts.txOverrides.maxFeePerGas); + } + if (defenderOpts.txOverrides.maxPriorityFeePerGas != 0) { + inputBuilder[i++] = "--maxPriorityFeePerGas"; + inputBuilder[i++] = Strings.toString(defenderOpts.txOverrides.maxPriorityFeePerGas); + } + if (!(defenderOpts.metadata).toSlice().empty()) { + inputBuilder[i++] = "--metadata"; + inputBuilder[i++] = string(abi.encodePacked('"', vm.replace(defenderOpts.metadata, '"', '\\"'), '"')); + } + + // Create a copy of inputs but with the correct length + string[] memory inputs = new string[](i); + for (uint8 j = 0; j < i; j++) { + inputs[j] = inputBuilder[j]; + } + + return inputs; + } + + function _toLicenseType(ContractInfo memory contractInfo) private pure returns (string memory) { + Strings.slice memory id = contractInfo.license.toSlice(); + if (id.equals("UNLICENSED".toSlice())) { + return "None"; + } else if (id.equals("Unlicense".toSlice())) { + return "Unlicense"; + } else if (id.equals("MIT".toSlice())) { + return "MIT"; + } else if (id.equals("GPL-2.0-only".toSlice()) || id.equals("GPL-2.0-or-later".toSlice())) { + return "GNU GPLv2"; + } else if (id.equals("GPL-3.0-only".toSlice()) || id.equals("GPL-3.0-or-later".toSlice())) { + return "GNU GPLv3"; + } else if (id.equals("LGPL-2.1-only".toSlice()) || id.equals("LGPL-2.1-or-later".toSlice())) { + return "GNU LGPLv2.1"; + } else if (id.equals("LGPL-3.0-only".toSlice()) || id.equals("LGPL-3.0-or-later".toSlice())) { + return "GNU LGPLv3"; + } else if (id.equals("BSD-2-Clause".toSlice())) { + return "BSD-2-Clause"; + } else if (id.equals("BSD-3-Clause".toSlice())) { + return "BSD-3-Clause"; + } else if (id.equals("MPL-2.0".toSlice())) { + return "MPL-2.0"; + } else if (id.equals("OSL-3.0".toSlice())) { + return "OSL-3.0"; + } else if (id.equals("Apache-2.0".toSlice())) { + return "Apache-2.0"; + } else if (id.equals("AGPL-3.0-only".toSlice()) || id.equals("AGPL-3.0-or-later".toSlice())) { + return "GNU AGPLv3"; + } else if (id.equals("BUSL-1.1".toSlice())) { + return "BSL 1.1"; + } else { + revert( + string( + abi.encodePacked( + "SPDX license identifier ", + contractInfo.license, + " in ", + contractInfo.contractPath, + " does not look like a supported license for block explorer verification. Use the `licenseType` option to specify a license type, or set the `skipLicenseType` option to `true` to skip." + ) + ) + ); + } + } + + function proposeUpgrade( + address proxyAddress, + address proxyAdminAddress, + address newImplementationAddress, + string memory newImplementationContractName, + Options memory opts + ) internal returns (ProposeUpgradeResponse memory) { + Vm vm = Vm(Utils.CHEATCODE_ADDRESS); + + string memory outDir = Utils.getOutDir(); + ContractInfo memory contractInfo = Utils.getContractInfo(newImplementationContractName, outDir); + + string[] memory inputs = buildProposeUpgradeCommand( + proxyAddress, + proxyAdminAddress, + newImplementationAddress, + contractInfo, + opts + ); + + VmSafe.FfiResult memory result = Utils.runAsBashCommand(inputs); + string memory stdout = string(result.stdout); + + if (result.exitCode != 0) { + revert( + string( + abi.encodePacked( + "Failed to propose upgrade for proxy ", + vm.toString(proxyAddress), + ": ", + string(result.stderr) + ) + ) + ); + } + + return parseProposeUpgradeResponse(stdout); + } + + function parseProposeUpgradeResponse(string memory stdout) internal pure returns (ProposeUpgradeResponse memory) { + ProposeUpgradeResponse memory response; + response.proposalId = _parseLine("Proposal ID: ", stdout, true); + response.url = _parseLine("Proposal URL: ", stdout, false); + return response; + } + + function _parseLine( + string memory expectedPrefix, + string memory stdout, + bool required + ) private pure returns (string memory) { + Strings.slice memory delim = expectedPrefix.toSlice(); + if (stdout.toSlice().contains(delim)) { + Strings.slice memory slice = stdout.toSlice().copy().find(delim).beyond(delim); + // Remove any following lines + if (slice.contains("\n".toSlice())) { + slice = slice.split("\n".toSlice()); + } + return slice.toString(); + } else if (required) { + revert( + string(abi.encodePacked("Failed to find line with prefix '", expectedPrefix, "' in output: ", stdout)) + ); + } else { + return ""; + } + } + + function buildProposeUpgradeCommand( + address proxyAddress, + address proxyAdminAddress, + address newImplementationAddress, + ContractInfo memory contractInfo, + Options memory opts + ) internal view returns (string[] memory) { + Vm vm = Vm(Utils.CHEATCODE_ADDRESS); + + string[] memory inputBuilder = new string[](255); + + uint8 i = 0; + + inputBuilder[i++] = "npx"; + inputBuilder[i++] = string( + abi.encodePacked("@openzeppelin/defender-deploy-client-cli@", Versions.DEFENDER_DEPLOY_CLIENT_CLI) + ); + inputBuilder[i++] = "proposeUpgrade"; + inputBuilder[i++] = "--proxyAddress"; + inputBuilder[i++] = vm.toString(proxyAddress); + inputBuilder[i++] = "--newImplementationAddress"; + inputBuilder[i++] = vm.toString(newImplementationAddress); + inputBuilder[i++] = "--chainId"; + inputBuilder[i++] = Strings.toString(block.chainid); + inputBuilder[i++] = "--contractArtifactFile"; + inputBuilder[i++] = string(abi.encodePacked('"', contractInfo.artifactPath, '"')); + if (proxyAdminAddress != address(0)) { + inputBuilder[i++] = "--proxyAdminAddress"; + inputBuilder[i++] = vm.toString(proxyAdminAddress); + } + if (!(opts.defender.upgradeApprovalProcessId).toSlice().empty()) { + inputBuilder[i++] = "--approvalProcessId"; + inputBuilder[i++] = opts.defender.upgradeApprovalProcessId; + } + + // Create a copy of inputs but with the correct length + string[] memory inputs = new string[](i); + for (uint8 j = 0; j < i; j++) { + inputs[j] = inputBuilder[j]; + } + + return inputs; + } + + function getApprovalProcess(string memory command) internal returns (ApprovalProcessResponse memory) { + string[] memory inputs = buildGetApprovalProcessCommand(command); + + VmSafe.FfiResult memory result = Utils.runAsBashCommand(inputs); + string memory stdout = string(result.stdout); + + if (result.exitCode != 0) { + revert(string(abi.encodePacked("Failed to get approval process: ", string(result.stderr)))); + } + + return parseApprovalProcessResponse(stdout); + } + + function parseApprovalProcessResponse(string memory stdout) internal pure returns (ApprovalProcessResponse memory) { + Vm vm = Vm(Utils.CHEATCODE_ADDRESS); + + ApprovalProcessResponse memory response; + + response.approvalProcessId = _parseLine("Approval process ID: ", stdout, true); + + string memory viaString = _parseLine("Via: ", stdout, false); + if (viaString.toSlice().len() != 0) { + response.via = vm.parseAddress(viaString); + } + + response.viaType = _parseLine("Via type: ", stdout, false); + + return response; + } + + function buildGetApprovalProcessCommand(string memory command) internal view returns (string[] memory) { + string[] memory inputBuilder = new string[](255); + + uint8 i = 0; + + inputBuilder[i++] = "npx"; + inputBuilder[i++] = string( + abi.encodePacked("@openzeppelin/defender-deploy-client-cli@", Versions.DEFENDER_DEPLOY_CLIENT_CLI) + ); + inputBuilder[i++] = command; + inputBuilder[i++] = "--chainId"; + inputBuilder[i++] = Strings.toString(block.chainid); + + // Create a copy of inputs but with the correct length + string[] memory inputs = new string[](i); + for (uint8 j = 0; j < i; j++) { + inputs[j] = inputBuilder[j]; + } + + return inputs; + } +} + +// lib/openzeppelin-foundry-upgrades/src/Upgrades.sol + +/** + * @dev Library for deploying and managing upgradeable contracts from Forge scripts or tests. + * + * NOTE: Requires OpenZeppelin Contracts v5 or higher. + */ +library Upgrades { + /** + * @dev Deploys a UUPS proxy using the given contract as the implementation. + * + * @param contractName Name of the contract to use as the implementation, e.g. "MyContract.sol" or "MyContract.sol:MyContract" or artifact path relative to the project root directory + * @param initializerData Encoded call data of the initializer function to call during creation of the proxy, or empty if no initialization is required + * @param opts Common options + * @return Proxy address + */ + function deployUUPSProxy( + string memory contractName, + bytes memory initializerData, + Options memory opts + ) internal returns (address) { + address impl = deployImplementation(contractName, opts); + + return Core.deploy("ERC1967Proxy.sol:ERC1967Proxy", abi.encode(impl, initializerData), opts); + } + + /** + * @dev Deploys a UUPS proxy using the given contract as the implementation. + * + * @param contractName Name of the contract to use as the implementation, e.g. "MyContract.sol" or "MyContract.sol:MyContract" or artifact path relative to the project root directory + * @param initializerData Encoded call data of the initializer function to call during creation of the proxy, or empty if no initialization is required + * @return Proxy address + */ + function deployUUPSProxy(string memory contractName, bytes memory initializerData) internal returns (address) { + Options memory opts; + return deployUUPSProxy(contractName, initializerData, opts); + } + + /** + * @dev Deploys a transparent proxy using the given contract as the implementation. + * + * @param contractName Name of the contract to use as the implementation, e.g. "MyContract.sol" or "MyContract.sol:MyContract" or artifact path relative to the project root directory + * @param initialOwner Address to set as the owner of the ProxyAdmin contract which gets deployed by the proxy + * @param initializerData Encoded call data of the initializer function to call during creation of the proxy, or empty if no initialization is required + * @param opts Common options + * @return Proxy address + */ + function deployTransparentProxy( + string memory contractName, + address initialOwner, + bytes memory initializerData, + Options memory opts + ) internal returns (address) { + address impl = deployImplementation(contractName, opts); + + return + Core.deploy( + "TransparentUpgradeableProxy.sol:TransparentUpgradeableProxy", + abi.encode(impl, initialOwner, initializerData), + opts + ); + } + + /** + * @dev Deploys a transparent proxy using the given contract as the implementation. + * + * @param contractName Name of the contract to use as the implementation, e.g. "MyContract.sol" or "MyContract.sol:MyContract" or artifact path relative to the project root directory + * @param initialOwner Address to set as the owner of the ProxyAdmin contract which gets deployed by the proxy + * @param initializerData Encoded call data of the initializer function to call during creation of the proxy, or empty if no initialization is required + * @return Proxy address + */ + function deployTransparentProxy( + string memory contractName, + address initialOwner, + bytes memory initializerData + ) internal returns (address) { + Options memory opts; + return deployTransparentProxy(contractName, initialOwner, initializerData, opts); + } + + /** + * @dev Upgrades a proxy to a new implementation contract. Only supported for UUPS or transparent proxies. + * + * Requires that either the `referenceContract` option is set, or the new implementation contract has a `@custom:oz-upgrades-from ` annotation. + * + * @param proxy Address of the proxy to upgrade + * @param contractName Name of the new implementation contract to upgrade to, e.g. "MyContract.sol" or "MyContract.sol:MyContract" or artifact path relative to the project root directory + * @param data Encoded call data of an arbitrary function to call during the upgrade process, or empty if no function needs to be called during the upgrade + * @param opts Common options + */ + function upgradeProxy(address proxy, string memory contractName, bytes memory data, Options memory opts) internal { + Core.upgradeProxy(proxy, contractName, data, opts); + } + + /** + * @dev Upgrades a proxy to a new implementation contract. Only supported for UUPS or transparent proxies. + * + * Requires that either the `referenceContract` option is set, or the new implementation contract has a `@custom:oz-upgrades-from ` annotation. + * + * @param proxy Address of the proxy to upgrade + * @param contractName Name of the new implementation contract to upgrade to, e.g. "MyContract.sol" or "MyContract.sol:MyContract" or artifact path relative to the project root directory + * @param data Encoded call data of an arbitrary function to call during the upgrade process, or empty if no function needs to be called during the upgrade + */ + function upgradeProxy(address proxy, string memory contractName, bytes memory data) internal { + Options memory opts; + Core.upgradeProxy(proxy, contractName, data, opts); + } + + /** + * @notice For tests only. If broadcasting in scripts, use the `--sender
` option with `forge script` instead. + * + * @dev Upgrades a proxy to a new implementation contract. Only supported for UUPS or transparent proxies. + * + * Requires that either the `referenceContract` option is set, or the new implementation contract has a `@custom:oz-upgrades-from ` annotation. + * + * This function provides an additional `tryCaller` parameter to test an upgrade using a specific caller address. + * Use this if you encounter `OwnableUnauthorizedAccount` errors in your tests. + * + * @param proxy Address of the proxy to upgrade + * @param contractName Name of the new implementation contract to upgrade to, e.g. "MyContract.sol" or "MyContract.sol:MyContract" or artifact path relative to the project root directory + * @param data Encoded call data of an arbitrary function to call during the upgrade process, or empty if no function needs to be called during the upgrade + * @param opts Common options + * @param tryCaller Address to use as the caller of the upgrade function. This should be the address that owns the proxy or its ProxyAdmin. + */ + function upgradeProxy( + address proxy, + string memory contractName, + bytes memory data, + Options memory opts, + address tryCaller + ) internal { + Core.upgradeProxy(proxy, contractName, data, opts, tryCaller); + } + + /** + * @notice For tests only. If broadcasting in scripts, use the `--sender
` option with `forge script` instead. + * + * @dev Upgrades a proxy to a new implementation contract. Only supported for UUPS or transparent proxies. + * + * Requires that either the `referenceContract` option is set, or the new implementation contract has a `@custom:oz-upgrades-from ` annotation. + * + * This function provides an additional `tryCaller` parameter to test an upgrade using a specific caller address. + * Use this if you encounter `OwnableUnauthorizedAccount` errors in your tests. + * + * @param proxy Address of the proxy to upgrade + * @param contractName Name of the new implementation contract to upgrade to, e.g. "MyContract.sol" or "MyContract.sol:MyContract" or artifact path relative to the project root directory + * @param data Encoded call data of an arbitrary function to call during the upgrade process, or empty if no function needs to be called during the upgrade + * @param tryCaller Address to use as the caller of the upgrade function. This should be the address that owns the proxy or its ProxyAdmin. + */ + function upgradeProxy(address proxy, string memory contractName, bytes memory data, address tryCaller) internal { + Options memory opts; + Core.upgradeProxy(proxy, contractName, data, opts, tryCaller); + } + + /** + * @dev Deploys an upgradeable beacon using the given contract as the implementation. + * + * @param contractName Name of the contract to use as the implementation, e.g. "MyContract.sol" or "MyContract.sol:MyContract" or artifact path relative to the project root directory + * @param initialOwner Address to set as the owner of the UpgradeableBeacon contract which gets deployed + * @param opts Common options + * @return Beacon address + */ + function deployBeacon( + string memory contractName, + address initialOwner, + Options memory opts + ) internal returns (address) { + address impl = deployImplementation(contractName, opts); + + return Core.deploy("UpgradeableBeacon.sol:UpgradeableBeacon", abi.encode(impl, initialOwner), opts); + } + + /** + * @dev Deploys an upgradeable beacon using the given contract as the implementation. + * + * @param contractName Name of the contract to use as the implementation, e.g. "MyContract.sol" or "MyContract.sol:MyContract" or artifact path relative to the project root directory + * @param initialOwner Address to set as the owner of the UpgradeableBeacon contract which gets deployed + * @return Beacon address + */ + function deployBeacon(string memory contractName, address initialOwner) internal returns (address) { + Options memory opts; + return deployBeacon(contractName, initialOwner, opts); + } + + /** + * @dev Upgrades a beacon to a new implementation contract. + * + * Requires that either the `referenceContract` option is set, or the new implementation contract has a `@custom:oz-upgrades-from ` annotation. + * + * @param beacon Address of the beacon to upgrade + * @param contractName Name of the new implementation contract to upgrade to, e.g. "MyContract.sol" or "MyContract.sol:MyContract" or artifact path relative to the project root directory + * @param opts Common options + */ + function upgradeBeacon(address beacon, string memory contractName, Options memory opts) internal { + Core.upgradeBeacon(beacon, contractName, opts); + } + + /** + * @dev Upgrades a beacon to a new implementation contract. + * + * Requires that either the `referenceContract` option is set, or the new implementation contract has a `@custom:oz-upgrades-from ` annotation. + * + * @param beacon Address of the beacon to upgrade + * @param contractName Name of the new implementation contract to upgrade to, e.g. "MyContract.sol" or "MyContract.sol:MyContract" or artifact path relative to the project root directory + */ + function upgradeBeacon(address beacon, string memory contractName) internal { + Options memory opts; + Core.upgradeBeacon(beacon, contractName, opts); + } + + /** + * @notice For tests only. If broadcasting in scripts, use the `--sender
` option with `forge script` instead. + * + * @dev Upgrades a beacon to a new implementation contract. + * + * Requires that either the `referenceContract` option is set, or the new implementation contract has a `@custom:oz-upgrades-from ` annotation. + * + * This function provides an additional `tryCaller` parameter to test an upgrade using a specific caller address. + * Use this if you encounter `OwnableUnauthorizedAccount` errors in your tests. + * + * @param beacon Address of the beacon to upgrade + * @param contractName Name of the new implementation contract to upgrade to, e.g. "MyContract.sol" or "MyContract.sol:MyContract" or artifact path relative to the project root directory + * @param opts Common options + * @param tryCaller Address to use as the caller of the upgrade function. This should be the address that owns the beacon. + */ + function upgradeBeacon( + address beacon, + string memory contractName, + Options memory opts, + address tryCaller + ) internal { + Core.upgradeBeacon(beacon, contractName, opts, tryCaller); + } + + /** + * @notice For tests only. If broadcasting in scripts, use the `--sender
` option with `forge script` instead. + * + * @dev Upgrades a beacon to a new implementation contract. + * + * Requires that either the `referenceContract` option is set, or the new implementation contract has a `@custom:oz-upgrades-from ` annotation. + * + * This function provides an additional `tryCaller` parameter to test an upgrade using a specific caller address. + * Use this if you encounter `OwnableUnauthorizedAccount` errors in your tests. + * + * @param beacon Address of the beacon to upgrade + * @param contractName Name of the new implementation contract to upgrade to, e.g. "MyContract.sol" or "MyContract.sol:MyContract" or artifact path relative to the project root directory + * @param tryCaller Address to use as the caller of the upgrade function. This should be the address that owns the beacon. + */ + function upgradeBeacon(address beacon, string memory contractName, address tryCaller) internal { + Options memory opts; + Core.upgradeBeacon(beacon, contractName, opts, tryCaller); + } + + /** + * @dev Deploys a beacon proxy using the given beacon and call data. + * + * @param beacon Address of the beacon to use + * @param data Encoded call data of the initializer function to call during creation of the proxy, or empty if no initialization is required + * @return Proxy address + */ + function deployBeaconProxy(address beacon, bytes memory data) internal returns (address) { + Options memory opts; + return deployBeaconProxy(beacon, data, opts); + } + + /** + * @dev Deploys a beacon proxy using the given beacon and call data. + * + * @param beacon Address of the beacon to use + * @param data Encoded call data of the initializer function to call during creation of the proxy, or empty if no initialization is required + * @param opts Common options + * @return Proxy address + */ + function deployBeaconProxy(address beacon, bytes memory data, Options memory opts) internal returns (address) { + return Core.deploy("BeaconProxy.sol:BeaconProxy", abi.encode(beacon, data), opts); + } + + /** + * @dev Validates an implementation contract, but does not deploy it. + * + * @param contractName Name of the contract to validate, e.g. "MyContract.sol" or "MyContract.sol:MyContract" or artifact path relative to the project root directory + * @param opts Common options + */ + function validateImplementation(string memory contractName, Options memory opts) internal { + Core.validateImplementation(contractName, opts); + } + + /** + * @dev Validates and deploys an implementation contract, and returns its address. + * + * @param contractName Name of the contract to deploy, e.g. "MyContract.sol" or "MyContract.sol:MyContract" or artifact path relative to the project root directory + * @param opts Common options + * @return Address of the implementation contract + */ + function deployImplementation(string memory contractName, Options memory opts) internal returns (address) { + return Core.deployImplementation(contractName, opts); + } + + /** + * @dev Validates a new implementation contract in comparison with a reference contract, but does not deploy it. + * + * Requires that either the `referenceContract` option is set, or the contract has a `@custom:oz-upgrades-from ` annotation. + * + * @param contractName Name of the contract to validate, e.g. "MyContract.sol" or "MyContract.sol:MyContract" or artifact path relative to the project root directory + * @param opts Common options + */ + function validateUpgrade(string memory contractName, Options memory opts) internal { + Core.validateUpgrade(contractName, opts); + } + + /** + * @dev Validates a new implementation contract in comparison with a reference contract, deploys the new implementation contract, + * and returns its address. + * + * Requires that either the `referenceContract` option is set, or the contract has a `@custom:oz-upgrades-from ` annotation. + * + * Use this method to prepare an upgrade to be run from an admin address you do not control directly or cannot use from your deployment environment. + * + * @param contractName Name of the contract to deploy, e.g. "MyContract.sol" or "MyContract.sol:MyContract" or artifact path relative to the project root directory + * @param opts Common options + * @return Address of the new implementation contract + */ + function prepareUpgrade(string memory contractName, Options memory opts) internal returns (address) { + return Core.prepareUpgrade(contractName, opts); + } + + /** + * @dev Gets the admin address of a transparent proxy from its ERC1967 admin storage slot. + * + * @param proxy Address of a transparent proxy + * @return Admin address + */ + function getAdminAddress(address proxy) internal view returns (address) { + return Core.getAdminAddress(proxy); + } + + /** + * @dev Gets the implementation address of a transparent or UUPS proxy from its ERC1967 implementation storage slot. + * + * @param proxy Address of a transparent or UUPS proxy + * @return Implementation address + */ + function getImplementationAddress(address proxy) internal view returns (address) { + return Core.getImplementationAddress(proxy); + } + + /** + * @dev Gets the beacon address of a beacon proxy from its ERC1967 beacon storage slot. + * + * @param proxy Address of a beacon proxy + * @return Beacon address + */ + function getBeaconAddress(address proxy) internal view returns (address) { + return Core.getBeaconAddress(proxy); + } +} + +/** + * @dev Library for deploying and managing upgradeable contracts from Forge tests, without validations. + * + * Can be used with `forge coverage`. Requires implementation contracts to be instantiated first. + * Does not require `--ffi` and does not require a clean compilation before each run. + * + * Not supported for OpenZeppelin Defender deployments. + * + * WARNING: Not recommended for use in Forge scripts. + * `UnsafeUpgrades` does not validate whether your contracts are upgrade safe or whether new implementations are compatible with previous ones. + * Use `Upgrades` if you want validations to be run. + * + * NOTE: Requires OpenZeppelin Contracts v5 or higher. + */ +library UnsafeUpgrades { + /** + * @dev Deploys a UUPS proxy using the given contract address as the implementation. + * + * @param impl Address of the contract to use as the implementation + * @param initializerData Encoded call data of the initializer function to call during creation of the proxy, or empty if no initialization is required + * @return Proxy address + */ + function deployUUPSProxy(address impl, bytes memory initializerData) internal returns (address) { + return address(new ERC1967Proxy(impl, initializerData)); + } + + /** + * @dev Deploys a transparent proxy using the given contract address as the implementation. + * + * @param impl Address of the contract to use as the implementation + * @param initialOwner Address to set as the owner of the ProxyAdmin contract which gets deployed by the proxy + * @param initializerData Encoded call data of the initializer function to call during creation of the proxy, or empty if no initialization is required + * @return Proxy address + */ + function deployTransparentProxy( + address impl, + address initialOwner, + bytes memory initializerData + ) internal returns (address) { + return address(new TransparentUpgradeableProxy(impl, initialOwner, initializerData)); + } + + /** + * @dev Upgrades a proxy to a new implementation contract address. Only supported for UUPS or transparent proxies. + * + * @param proxy Address of the proxy to upgrade + * @param newImpl Address of the new implementation contract to upgrade to + * @param data Encoded call data of an arbitrary function to call during the upgrade process, or empty if no function needs to be called during the upgrade + */ + function upgradeProxy(address proxy, address newImpl, bytes memory data) internal { + Core.upgradeProxyTo(proxy, newImpl, data); + } + + /** + * @notice For tests only. If broadcasting in scripts, use the `--sender
` option with `forge script` instead. + * + * @dev Upgrades a proxy to a new implementation contract address. Only supported for UUPS or transparent proxies. + * + * This function provides an additional `tryCaller` parameter to test an upgrade using a specific caller address. + * Use this if you encounter `OwnableUnauthorizedAccount` errors in your tests. + * + * @param proxy Address of the proxy to upgrade + * @param newImpl Address of the new implementation contract to upgrade to + * @param data Encoded call data of an arbitrary function to call during the upgrade process, or empty if no function needs to be called during the upgrade + * @param tryCaller Address to use as the caller of the upgrade function. This should be the address that owns the proxy or its ProxyAdmin. + */ + function upgradeProxy(address proxy, address newImpl, bytes memory data, address tryCaller) internal { + Core.upgradeProxyTo(proxy, newImpl, data, tryCaller); + } + + /** + * @dev Deploys an upgradeable beacon using the given contract address as the implementation. + * + * @param impl Address of the contract to use as the implementation + * @param initialOwner Address to set as the owner of the UpgradeableBeacon contract which gets deployed + * @return Beacon address + */ + function deployBeacon(address impl, address initialOwner) internal returns (address) { + return address(new UpgradeableBeacon(impl, initialOwner)); + } + + /** + * @dev Upgrades a beacon to a new implementation contract address. + * + * @param beacon Address of the beacon to upgrade + * @param newImpl Address of the new implementation contract to upgrade to + */ + function upgradeBeacon(address beacon, address newImpl) internal { + Core.upgradeBeaconTo(beacon, newImpl); + } + + /** + * @notice For tests only. If broadcasting in scripts, use the `--sender
` option with `forge script` instead. + * + * @dev Upgrades a beacon to a new implementation contract address. + * + * This function provides an additional `tryCaller` parameter to test an upgrade using a specific caller address. + * Use this if you encounter `OwnableUnauthorizedAccount` errors in your tests. + * + * @param beacon Address of the beacon to upgrade + * @param newImpl Address of the new implementation contract to upgrade to + * @param tryCaller Address to use as the caller of the upgrade function. This should be the address that owns the beacon. + */ + function upgradeBeacon(address beacon, address newImpl, address tryCaller) internal { + Core.upgradeBeaconTo(beacon, newImpl, tryCaller); + } + + /** + * @dev Deploys a beacon proxy using the given beacon and call data. + * + * @param beacon Address of the beacon to use + * @param data Encoded call data of the initializer function to call during creation of the proxy, or empty if no initialization is required + * @return Proxy address + */ + function deployBeaconProxy(address beacon, bytes memory data) internal returns (address) { + return address(new BeaconProxy(beacon, data)); + } + + /** + * @dev Gets the admin address of a transparent proxy from its ERC1967 admin storage slot. + * + * @param proxy Address of a transparent proxy + * @return Admin address + */ + function getAdminAddress(address proxy) internal view returns (address) { + return Core.getAdminAddress(proxy); + } + + /** + * @dev Gets the implementation address of a transparent or UUPS proxy from its ERC1967 implementation storage slot. + * + * @param proxy Address of a transparent or UUPS proxy + * @return Implementation address + */ + function getImplementationAddress(address proxy) internal view returns (address) { + return Core.getImplementationAddress(proxy); + } + + /** + * @dev Gets the beacon address of a beacon proxy from its ERC1967 beacon storage slot. + * + * @param proxy Address of a beacon proxy + * @return Beacon address + */ + function getBeaconAddress(address proxy) internal view returns (address) { + return Core.getBeaconAddress(proxy); + } +} + diff --git a/typechain-types/factories/src/Upgrades.sol/Address__factory.ts b/typechain-types/factories/src/Upgrades.sol/Address__factory.ts new file mode 100644 index 0000000..ff6ec6e --- /dev/null +++ b/typechain-types/factories/src/Upgrades.sol/Address__factory.ts @@ -0,0 +1,91 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; +import type { NonPayableOverrides } from "../../../common"; +import type { + Address, + AddressInterface, +} from "../../../src/Upgrades.sol/Address"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "target", + type: "address", + }, + ], + name: "AddressEmptyCode", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "AddressInsufficientBalance", + type: "error", + }, + { + inputs: [], + name: "FailedInnerCall", + type: "error", + }, +] as const; + +const _bytecode = + "0x60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220cdc4e07c754ebcbe21c3ba73f0aaa6ef168d35381fadc32652039de4dc067b6064736f6c634300081c0033"; + +type AddressConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: AddressConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class Address__factory extends ContractFactory { + constructor(...args: AddressConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(overrides || {}); + } + override deploy(overrides?: NonPayableOverrides & { from?: string }) { + return super.deploy(overrides || {}) as Promise< + Address & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): Address__factory { + return super.connect(runner) as Address__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): AddressInterface { + return new Interface(_abi) as AddressInterface; + } + static connect(address: string, runner?: ContractRunner | null): Address { + return new Contract(address, _abi, runner) as unknown as Address; + } +} diff --git a/typechain-types/factories/src/Upgrades.sol/BeaconProxy__factory.ts b/typechain-types/factories/src/Upgrades.sol/BeaconProxy__factory.ts new file mode 100644 index 0000000..38813bc --- /dev/null +++ b/typechain-types/factories/src/Upgrades.sol/BeaconProxy__factory.ts @@ -0,0 +1,152 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { + Signer, + BytesLike, + AddressLike, + ContractDeployTransaction, + ContractRunner, +} from "ethers"; +import type { PayableOverrides } from "../../../common"; +import type { + BeaconProxy, + BeaconProxyInterface, +} from "../../../src/Upgrades.sol/BeaconProxy"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "beacon", + type: "address", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + stateMutability: "payable", + type: "constructor", + }, + { + inputs: [ + { + internalType: "address", + name: "target", + type: "address", + }, + ], + name: "AddressEmptyCode", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "beacon", + type: "address", + }, + ], + name: "ERC1967InvalidBeacon", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "implementation", + type: "address", + }, + ], + name: "ERC1967InvalidImplementation", + type: "error", + }, + { + inputs: [], + name: "ERC1967NonPayable", + type: "error", + }, + { + inputs: [], + name: "FailedInnerCall", + type: "error", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "beacon", + type: "address", + }, + ], + name: "BeaconUpgraded", + type: "event", + }, + { + stateMutability: "payable", + type: "fallback", + }, +] as const; + +const _bytecode = + "0x60a060405260405161096038038061096083398181016040528101906100259190610684565b610035828261007060201b60201c565b8173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250505050610795565b61007f8261016360201b60201c565b8173ffffffffffffffffffffffffffffffffffffffff167f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e60405160405180910390a26000815111156101505761014a8273ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561011a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061013e91906106e0565b8261030660201b60201c565b5061015f565b61015e61039060201b60201c565b5b5050565b60008173ffffffffffffffffffffffffffffffffffffffff163b036101bf57806040517f64ced0ec0000000000000000000000000000000000000000000000000000000081526004016101b6919061071c565b60405180910390fd5b806101f27fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5060001b6103cd60201b60201c565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008173ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610280573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a491906106e0565b905060008173ffffffffffffffffffffffffffffffffffffffff163b0361030257806040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526004016102f9919061071c565b60405180910390fd5b5050565b60606000808473ffffffffffffffffffffffffffffffffffffffff1684604051610330919061077e565b600060405180830381855af49150503d806000811461036b576040519150601f19603f3d011682016040523d82523d6000602084013e610370565b606091505b50915091506103868583836103d760201b60201c565b9250505092915050565b60003411156103cb576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6000819050919050565b6060826103f2576103ed8261046c60201b60201c565b610464565b6000825114801561041a575060008473ffffffffffffffffffffffffffffffffffffffff163b145b1561045c57836040517f9996b315000000000000000000000000000000000000000000000000000000008152600401610453919061071c565b60405180910390fd5b819050610465565b5b9392505050565b60008151111561047f5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006104f0826104c5565b9050919050565b610500816104e5565b811461050b57600080fd5b50565b60008151905061051d816104f7565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6105768261052d565b810181811067ffffffffffffffff821117156105955761059461053e565b5b80604052505050565b60006105a86104b1565b90506105b4828261056d565b919050565b600067ffffffffffffffff8211156105d4576105d361053e565b5b6105dd8261052d565b9050602081019050919050565b60005b838110156106085780820151818401526020810190506105ed565b60008484015250505050565b6000610627610622846105b9565b61059e565b90508281526020810184848401111561064357610642610528565b5b61064e8482856105ea565b509392505050565b600082601f83011261066b5761066a610523565b5b815161067b848260208601610614565b91505092915050565b6000806040838503121561069b5761069a6104bb565b5b60006106a98582860161050e565b925050602083015167ffffffffffffffff8111156106ca576106c96104c0565b5b6106d685828601610656565b9150509250929050565b6000602082840312156106f6576106f56104bb565b5b60006107048482850161050e565b91505092915050565b610716816104e5565b82525050565b6000602082019050610731600083018461070d565b92915050565b600081519050919050565b600081905092915050565b600061075882610737565b6107628185610742565b93506107728185602086016105ea565b80840191505092915050565b600061078a828461074d565b915081905092915050565b6080516101b16107af600039600060c701526101b16000f3fe608060405261000c61000e565b005b61001e610019610020565b61009d565b565b600061002a6100c3565b73ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610074573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610098919061014e565b905090565b3660008037600080366000845af43d6000803e80600081146100be573d6000f35b3d6000fd5b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061011b826100f0565b9050919050565b61012b81610110565b811461013657600080fd5b50565b60008151905061014881610122565b92915050565b600060208284031215610164576101636100eb565b5b600061017284828501610139565b9150509291505056fea2646970667358221220c3ae381cdcb092dca499b2dd32af80658a48cc272ab16fe0ef3baa84f4b3436264736f6c634300081c0033"; + +type BeaconProxyConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: BeaconProxyConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class BeaconProxy__factory extends ContractFactory { + constructor(...args: BeaconProxyConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + beacon: AddressLike, + data: BytesLike, + overrides?: PayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(beacon, data, overrides || {}); + } + override deploy( + beacon: AddressLike, + data: BytesLike, + overrides?: PayableOverrides & { from?: string } + ) { + return super.deploy(beacon, data, overrides || {}) as Promise< + BeaconProxy & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): BeaconProxy__factory { + return super.connect(runner) as BeaconProxy__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): BeaconProxyInterface { + return new Interface(_abi) as BeaconProxyInterface; + } + static connect(address: string, runner?: ContractRunner | null): BeaconProxy { + return new Contract(address, _abi, runner) as unknown as BeaconProxy; + } +} diff --git a/typechain-types/factories/src/Upgrades.sol/ERC1967Proxy__factory.ts b/typechain-types/factories/src/Upgrades.sol/ERC1967Proxy__factory.ts new file mode 100644 index 0000000..8119072 --- /dev/null +++ b/typechain-types/factories/src/Upgrades.sol/ERC1967Proxy__factory.ts @@ -0,0 +1,144 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { + Signer, + BytesLike, + AddressLike, + ContractDeployTransaction, + ContractRunner, +} from "ethers"; +import type { PayableOverrides } from "../../../common"; +import type { + ERC1967Proxy, + ERC1967ProxyInterface, +} from "../../../src/Upgrades.sol/ERC1967Proxy"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "implementation", + type: "address", + }, + { + internalType: "bytes", + name: "_data", + type: "bytes", + }, + ], + stateMutability: "payable", + type: "constructor", + }, + { + inputs: [ + { + internalType: "address", + name: "target", + type: "address", + }, + ], + name: "AddressEmptyCode", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "implementation", + type: "address", + }, + ], + name: "ERC1967InvalidImplementation", + type: "error", + }, + { + inputs: [], + name: "ERC1967NonPayable", + type: "error", + }, + { + inputs: [], + name: "FailedInnerCall", + type: "error", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "implementation", + type: "address", + }, + ], + name: "Upgraded", + type: "event", + }, + { + stateMutability: "payable", + type: "fallback", + }, +] as const; + +const _bytecode = + "0x60806040526040516106e53803806106e583398181016040528101906100259190610512565b610035828261003c60201b60201c565b50506105f6565b61004b826100c160201b60201c565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a26000815111156100ae576100a8828261019460201b60201c565b506100bd565b6100bc61021e60201b60201c565b5b5050565b60008173ffffffffffffffffffffffffffffffffffffffff163b0361011d57806040517f4c9c8ce3000000000000000000000000000000000000000000000000000000008152600401610114919061057d565b60405180910390fd5b806101507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61025b60201b60201c565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606000808473ffffffffffffffffffffffffffffffffffffffff16846040516101be91906105df565b600060405180830381855af49150503d80600081146101f9576040519150601f19603f3d011682016040523d82523d6000602084013e6101fe565b606091505b509150915061021485838361026560201b60201c565b9250505092915050565b6000341115610259576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6000819050919050565b6060826102805761027b826102fa60201b60201c565b6102f2565b600082511480156102a8575060008473ffffffffffffffffffffffffffffffffffffffff163b145b156102ea57836040517f9996b3150000000000000000000000000000000000000000000000000000000081526004016102e1919061057d565b60405180910390fd5b8190506102f3565b5b9392505050565b60008151111561030d5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061037e82610353565b9050919050565b61038e81610373565b811461039957600080fd5b50565b6000815190506103ab81610385565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610404826103bb565b810181811067ffffffffffffffff82111715610423576104226103cc565b5b80604052505050565b600061043661033f565b905061044282826103fb565b919050565b600067ffffffffffffffff821115610462576104616103cc565b5b61046b826103bb565b9050602081019050919050565b60005b8381101561049657808201518184015260208101905061047b565b60008484015250505050565b60006104b56104b084610447565b61042c565b9050828152602081018484840111156104d1576104d06103b6565b5b6104dc848285610478565b509392505050565b600082601f8301126104f9576104f86103b1565b5b81516105098482602086016104a2565b91505092915050565b6000806040838503121561052957610528610349565b5b60006105378582860161039c565b925050602083015167ffffffffffffffff8111156105585761055761034e565b5b610564858286016104e4565b9150509250929050565b61057781610373565b82525050565b6000602082019050610592600083018461056e565b92915050565b600081519050919050565b600081905092915050565b60006105b982610598565b6105c381856105a3565b93506105d3818560208601610478565b80840191505092915050565b60006105eb82846105ae565b915081905092915050565b60e1806106046000396000f3fe6080604052600a600c565b005b60186014601a565b6027565b565b60006022604c565b905090565b3660008037600080366000845af43d6000803e80600081146047573d6000f35b3d6000fd5b600060787f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b60a1565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081905091905056fea2646970667358221220c5b968bc804a8dadb0c833392290a2aa8480ebf2c2cdddda46896225dfa4488164736f6c634300081c0033"; + +type ERC1967ProxyConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: ERC1967ProxyConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class ERC1967Proxy__factory extends ContractFactory { + constructor(...args: ERC1967ProxyConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + implementation: AddressLike, + _data: BytesLike, + overrides?: PayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(implementation, _data, overrides || {}); + } + override deploy( + implementation: AddressLike, + _data: BytesLike, + overrides?: PayableOverrides & { from?: string } + ) { + return super.deploy(implementation, _data, overrides || {}) as Promise< + ERC1967Proxy & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): ERC1967Proxy__factory { + return super.connect(runner) as ERC1967Proxy__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): ERC1967ProxyInterface { + return new Interface(_abi) as ERC1967ProxyInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): ERC1967Proxy { + return new Contract(address, _abi, runner) as unknown as ERC1967Proxy; + } +} diff --git a/typechain-types/factories/src/Upgrades.sol/ERC1967Utils__factory.ts b/typechain-types/factories/src/Upgrades.sol/ERC1967Utils__factory.ts new file mode 100644 index 0000000..c9cd8da --- /dev/null +++ b/typechain-types/factories/src/Upgrades.sol/ERC1967Utils__factory.ts @@ -0,0 +1,150 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; +import type { NonPayableOverrides } from "../../../common"; +import type { + ERC1967Utils, + ERC1967UtilsInterface, +} from "../../../src/Upgrades.sol/ERC1967Utils"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "admin", + type: "address", + }, + ], + name: "ERC1967InvalidAdmin", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "beacon", + type: "address", + }, + ], + name: "ERC1967InvalidBeacon", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "implementation", + type: "address", + }, + ], + name: "ERC1967InvalidImplementation", + type: "error", + }, + { + inputs: [], + name: "ERC1967NonPayable", + type: "error", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "previousAdmin", + type: "address", + }, + { + indexed: false, + internalType: "address", + name: "newAdmin", + type: "address", + }, + ], + name: "AdminChanged", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "beacon", + type: "address", + }, + ], + name: "BeaconUpgraded", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "implementation", + type: "address", + }, + ], + name: "Upgraded", + type: "event", + }, +] as const; + +const _bytecode = + "0x60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122086592a46b7834d97af067e09577f9ab500b43afab9e0d8cfbbad94ec35e4757564736f6c634300081c0033"; + +type ERC1967UtilsConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: ERC1967UtilsConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class ERC1967Utils__factory extends ContractFactory { + constructor(...args: ERC1967UtilsConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(overrides || {}); + } + override deploy(overrides?: NonPayableOverrides & { from?: string }) { + return super.deploy(overrides || {}) as Promise< + ERC1967Utils & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): ERC1967Utils__factory { + return super.connect(runner) as ERC1967Utils__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): ERC1967UtilsInterface { + return new Interface(_abi) as ERC1967UtilsInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): ERC1967Utils { + return new Contract(address, _abi, runner) as unknown as ERC1967Utils; + } +} diff --git a/typechain-types/factories/src/Upgrades.sol/IBeacon__factory.ts b/typechain-types/factories/src/Upgrades.sol/IBeacon__factory.ts new file mode 100644 index 0000000..9b41a1e --- /dev/null +++ b/typechain-types/factories/src/Upgrades.sol/IBeacon__factory.ts @@ -0,0 +1,35 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IBeacon, + IBeaconInterface, +} from "../../../src/Upgrades.sol/IBeacon"; + +const _abi = [ + { + inputs: [], + name: "implementation", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, +] as const; + +export class IBeacon__factory { + static readonly abi = _abi; + static createInterface(): IBeaconInterface { + return new Interface(_abi) as IBeaconInterface; + } + static connect(address: string, runner?: ContractRunner | null): IBeacon { + return new Contract(address, _abi, runner) as unknown as IBeacon; + } +} diff --git a/typechain-types/factories/src/Upgrades.sol/IERC1967__factory.ts b/typechain-types/factories/src/Upgrades.sol/IERC1967__factory.ts new file mode 100644 index 0000000..704b7c9 --- /dev/null +++ b/typechain-types/factories/src/Upgrades.sol/IERC1967__factory.ts @@ -0,0 +1,67 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IERC1967, + IERC1967Interface, +} from "../../../src/Upgrades.sol/IERC1967"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "previousAdmin", + type: "address", + }, + { + indexed: false, + internalType: "address", + name: "newAdmin", + type: "address", + }, + ], + name: "AdminChanged", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "beacon", + type: "address", + }, + ], + name: "BeaconUpgraded", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "implementation", + type: "address", + }, + ], + name: "Upgraded", + type: "event", + }, +] as const; + +export class IERC1967__factory { + static readonly abi = _abi; + static createInterface(): IERC1967Interface { + return new Interface(_abi) as IERC1967Interface; + } + static connect(address: string, runner?: ContractRunner | null): IERC1967 { + return new Contract(address, _abi, runner) as unknown as IERC1967; + } +} diff --git a/typechain-types/factories/src/Upgrades.sol/IProxyAdmin__factory.ts b/typechain-types/factories/src/Upgrades.sol/IProxyAdmin__factory.ts new file mode 100644 index 0000000..fb70328 --- /dev/null +++ b/typechain-types/factories/src/Upgrades.sol/IProxyAdmin__factory.ts @@ -0,0 +1,63 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IProxyAdmin, + IProxyAdminInterface, +} from "../../../src/Upgrades.sol/IProxyAdmin"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + { + internalType: "address", + name: "", + type: "address", + }, + ], + name: "upgrade", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + { + internalType: "address", + name: "", + type: "address", + }, + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + name: "upgradeAndCall", + outputs: [], + stateMutability: "payable", + type: "function", + }, +] as const; + +export class IProxyAdmin__factory { + static readonly abi = _abi; + static createInterface(): IProxyAdminInterface { + return new Interface(_abi) as IProxyAdminInterface; + } + static connect(address: string, runner?: ContractRunner | null): IProxyAdmin { + return new Contract(address, _abi, runner) as unknown as IProxyAdmin; + } +} diff --git a/typechain-types/factories/src/Upgrades.sol/ITransparentUpgradeableProxy__factory.ts b/typechain-types/factories/src/Upgrades.sol/ITransparentUpgradeableProxy__factory.ts new file mode 100644 index 0000000..4e2b85d --- /dev/null +++ b/typechain-types/factories/src/Upgrades.sol/ITransparentUpgradeableProxy__factory.ts @@ -0,0 +1,92 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + ITransparentUpgradeableProxy, + ITransparentUpgradeableProxyInterface, +} from "../../../src/Upgrades.sol/ITransparentUpgradeableProxy"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "previousAdmin", + type: "address", + }, + { + indexed: false, + internalType: "address", + name: "newAdmin", + type: "address", + }, + ], + name: "AdminChanged", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "beacon", + type: "address", + }, + ], + name: "BeaconUpgraded", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "implementation", + type: "address", + }, + ], + name: "Upgraded", + type: "event", + }, + { + inputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + name: "upgradeToAndCall", + outputs: [], + stateMutability: "payable", + type: "function", + }, +] as const; + +export class ITransparentUpgradeableProxy__factory { + static readonly abi = _abi; + static createInterface(): ITransparentUpgradeableProxyInterface { + return new Interface(_abi) as ITransparentUpgradeableProxyInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): ITransparentUpgradeableProxy { + return new Contract( + address, + _abi, + runner + ) as unknown as ITransparentUpgradeableProxy; + } +} diff --git a/typechain-types/factories/src/Upgrades.sol/IUpgradeableBeacon__factory.ts b/typechain-types/factories/src/Upgrades.sol/IUpgradeableBeacon__factory.ts new file mode 100644 index 0000000..967b184 --- /dev/null +++ b/typechain-types/factories/src/Upgrades.sol/IUpgradeableBeacon__factory.ts @@ -0,0 +1,38 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IUpgradeableBeacon, + IUpgradeableBeaconInterface, +} from "../../../src/Upgrades.sol/IUpgradeableBeacon"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + name: "upgradeTo", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +export class IUpgradeableBeacon__factory { + static readonly abi = _abi; + static createInterface(): IUpgradeableBeaconInterface { + return new Interface(_abi) as IUpgradeableBeaconInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IUpgradeableBeacon { + return new Contract(address, _abi, runner) as unknown as IUpgradeableBeacon; + } +} diff --git a/typechain-types/factories/src/Upgrades.sol/IUpgradeableProxy__factory.ts b/typechain-types/factories/src/Upgrades.sol/IUpgradeableProxy__factory.ts new file mode 100644 index 0000000..95bb02f --- /dev/null +++ b/typechain-types/factories/src/Upgrades.sol/IUpgradeableProxy__factory.ts @@ -0,0 +1,56 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IUpgradeableProxy, + IUpgradeableProxyInterface, +} from "../../../src/Upgrades.sol/IUpgradeableProxy"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + name: "upgradeTo", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + name: "upgradeToAndCall", + outputs: [], + stateMutability: "payable", + type: "function", + }, +] as const; + +export class IUpgradeableProxy__factory { + static readonly abi = _abi; + static createInterface(): IUpgradeableProxyInterface { + return new Interface(_abi) as IUpgradeableProxyInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IUpgradeableProxy { + return new Contract(address, _abi, runner) as unknown as IUpgradeableProxy; + } +} diff --git a/typechain-types/factories/src/Upgrades.sol/Math__factory.ts b/typechain-types/factories/src/Upgrades.sol/Math__factory.ts new file mode 100644 index 0000000..2652888 --- /dev/null +++ b/typechain-types/factories/src/Upgrades.sol/Math__factory.ts @@ -0,0 +1,66 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; +import type { NonPayableOverrides } from "../../../common"; +import type { Math, MathInterface } from "../../../src/Upgrades.sol/Math"; + +const _abi = [ + { + inputs: [], + name: "MathOverflowedMulDiv", + type: "error", + }, +] as const; + +const _bytecode = + "0x60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f4a0a4b34bbba9cbb2e5f756b6020a24ba1925cf9cd541062eff696a1f4a461964736f6c634300081c0033"; + +type MathConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: MathConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class Math__factory extends ContractFactory { + constructor(...args: MathConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(overrides || {}); + } + override deploy(overrides?: NonPayableOverrides & { from?: string }) { + return super.deploy(overrides || {}) as Promise< + Math & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): Math__factory { + return super.connect(runner) as Math__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): MathInterface { + return new Interface(_abi) as MathInterface; + } + static connect(address: string, runner?: ContractRunner | null): Math { + return new Contract(address, _abi, runner) as unknown as Math; + } +} diff --git a/typechain-types/factories/src/Upgrades.sol/Ownable__factory.ts b/typechain-types/factories/src/Upgrades.sol/Ownable__factory.ts new file mode 100644 index 0000000..44e88f4 --- /dev/null +++ b/typechain-types/factories/src/Upgrades.sol/Ownable__factory.ts @@ -0,0 +1,96 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + Ownable, + OwnableInterface, +} from "../../../src/Upgrades.sol/Ownable"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + ], + name: "OwnableInvalidOwner", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "OwnableUnauthorizedAccount", + type: "error", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "previousOwner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "OwnershipTransferred", + type: "event", + }, + { + inputs: [], + name: "owner", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "renounceOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "transferOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +export class Ownable__factory { + static readonly abi = _abi; + static createInterface(): OwnableInterface { + return new Interface(_abi) as OwnableInterface; + } + static connect(address: string, runner?: ContractRunner | null): Ownable { + return new Contract(address, _abi, runner) as unknown as Ownable; + } +} diff --git a/typechain-types/factories/src/Upgrades.sol/ProxyAdmin__factory.ts b/typechain-types/factories/src/Upgrades.sol/ProxyAdmin__factory.ts new file mode 100644 index 0000000..48bb595 --- /dev/null +++ b/typechain-types/factories/src/Upgrades.sol/ProxyAdmin__factory.ts @@ -0,0 +1,194 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { + Signer, + AddressLike, + ContractDeployTransaction, + ContractRunner, +} from "ethers"; +import type { NonPayableOverrides } from "../../../common"; +import type { + ProxyAdmin, + ProxyAdminInterface, +} from "../../../src/Upgrades.sol/ProxyAdmin"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "initialOwner", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + ], + name: "OwnableInvalidOwner", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "OwnableUnauthorizedAccount", + type: "error", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "previousOwner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "OwnershipTransferred", + type: "event", + }, + { + inputs: [], + name: "UPGRADE_INTERFACE_VERSION", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "owner", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "renounceOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "transferOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "contract ITransparentUpgradeableProxy", + name: "proxy", + type: "address", + }, + { + internalType: "address", + name: "implementation", + type: "address", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "upgradeAndCall", + outputs: [], + stateMutability: "payable", + type: "function", + }, +] as const; + +const _bytecode = + "0x608060405234801561001057600080fd5b50604051610a2b380380610a2b833981810160405281019061003291906101e2565b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100a55760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161009c919061021e565b60405180910390fd5b6100b4816100bb60201b60201c565b5050610239565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006101af82610184565b9050919050565b6101bf816101a4565b81146101ca57600080fd5b50565b6000815190506101dc816101b6565b92915050565b6000602082840312156101f8576101f761017f565b5b6000610206848285016101cd565b91505092915050565b610218816101a4565b82525050565b6000602082019050610233600083018461020f565b92915050565b6107e3806102486000396000f3fe60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610091578063ad3cb1cc146100ad578063f2fde38b146100d8575b600080fd5b34801561005b57600080fd5b50610064610101565b005b34801561007257600080fd5b5061007b610115565b604051610088919061040c565b60405180910390f35b6100ab60048036038101906100a691906105eb565b61013e565b005b3480156100b957600080fd5b506100c26101b9565b6040516100cf91906106d9565b60405180910390f35b3480156100e457600080fd5b506100ff60048036038101906100fa91906106fb565b6101f2565b005b610109610278565b61011360006102ff565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610146610278565b8273ffffffffffffffffffffffffffffffffffffffff16634f1ef2863484846040518463ffffffff1660e01b815260040161018292919061077d565b6000604051808303818588803b15801561019b57600080fd5b505af11580156101af573d6000803e3d6000fd5b5050505050505050565b6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6101fa610278565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361026c5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610263919061040c565b60405180910390fd5b610275816102ff565b50565b6102806103c3565b73ffffffffffffffffffffffffffffffffffffffff1661029e610115565b73ffffffffffffffffffffffffffffffffffffffff16146102fd576102c16103c3565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016102f4919061040c565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103f6826103cb565b9050919050565b610406816103eb565b82525050565b600060208201905061042160008301846103fd565b92915050565b6000604051905090565b600080fd5b600080fd5b6000610446826103eb565b9050919050565b6104568161043b565b811461046157600080fd5b50565b6000813590506104738161044d565b92915050565b610482816103eb565b811461048d57600080fd5b50565b60008135905061049f81610479565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6104f8826104af565b810181811067ffffffffffffffff82111715610517576105166104c0565b5b80604052505050565b600061052a610427565b905061053682826104ef565b919050565b600067ffffffffffffffff821115610556576105556104c0565b5b61055f826104af565b9050602081019050919050565b82818337600083830152505050565b600061058e6105898461053b565b610520565b9050828152602081018484840111156105aa576105a96104aa565b5b6105b584828561056c565b509392505050565b600082601f8301126105d2576105d16104a5565b5b81356105e284826020860161057b565b91505092915050565b60008060006060848603121561060457610603610431565b5b600061061286828701610464565b935050602061062386828701610490565b925050604084013567ffffffffffffffff81111561064457610643610436565b5b610650868287016105bd565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b60005b83811015610694578082015181840152602081019050610679565b60008484015250505050565b60006106ab8261065a565b6106b58185610665565b93506106c5818560208601610676565b6106ce816104af565b840191505092915050565b600060208201905081810360008301526106f381846106a0565b905092915050565b60006020828403121561071157610710610431565b5b600061071f84828501610490565b91505092915050565b600081519050919050565b600082825260208201905092915050565b600061074f82610728565b6107598185610733565b9350610769818560208601610676565b610772816104af565b840191505092915050565b600060408201905061079260008301856103fd565b81810360208301526107a48184610744565b9050939250505056fea26469706673582212207618fbcb2a391d05e882e2fcc53acd9c8d0257c7ed9e673b7bd1c2b353ab85fa64736f6c634300081c0033"; + +type ProxyAdminConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: ProxyAdminConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class ProxyAdmin__factory extends ContractFactory { + constructor(...args: ProxyAdminConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + initialOwner: AddressLike, + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(initialOwner, overrides || {}); + } + override deploy( + initialOwner: AddressLike, + overrides?: NonPayableOverrides & { from?: string } + ) { + return super.deploy(initialOwner, overrides || {}) as Promise< + ProxyAdmin & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): ProxyAdmin__factory { + return super.connect(runner) as ProxyAdmin__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): ProxyAdminInterface { + return new Interface(_abi) as ProxyAdminInterface; + } + static connect(address: string, runner?: ContractRunner | null): ProxyAdmin { + return new Contract(address, _abi, runner) as unknown as ProxyAdmin; + } +} diff --git a/typechain-types/factories/src/Upgrades.sol/Proxy__factory.ts b/typechain-types/factories/src/Upgrades.sol/Proxy__factory.ts new file mode 100644 index 0000000..ba89c0c --- /dev/null +++ b/typechain-types/factories/src/Upgrades.sol/Proxy__factory.ts @@ -0,0 +1,23 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { Proxy, ProxyInterface } from "../../../src/Upgrades.sol/Proxy"; + +const _abi = [ + { + stateMutability: "payable", + type: "fallback", + }, +] as const; + +export class Proxy__factory { + static readonly abi = _abi; + static createInterface(): ProxyInterface { + return new Interface(_abi) as ProxyInterface; + } + static connect(address: string, runner?: ContractRunner | null): Proxy { + return new Contract(address, _abi, runner) as unknown as Proxy; + } +} diff --git a/typechain-types/factories/src/Upgrades.sol/Strings__factory.ts b/typechain-types/factories/src/Upgrades.sol/Strings__factory.ts new file mode 100644 index 0000000..51983c6 --- /dev/null +++ b/typechain-types/factories/src/Upgrades.sol/Strings__factory.ts @@ -0,0 +1,80 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; +import type { NonPayableOverrides } from "../../../common"; +import type { + Strings, + StringsInterface, +} from "../../../src/Upgrades.sol/Strings"; + +const _abi = [ + { + inputs: [ + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + { + internalType: "uint256", + name: "length", + type: "uint256", + }, + ], + name: "StringsInsufficientHexLength", + type: "error", + }, +] as const; + +const _bytecode = + "0x60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212206ae49a6fea135fd8e8124a3c8b6302828462ba1eeb0849a4214a8c3749f3d1d664736f6c634300081c0033"; + +type StringsConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: StringsConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class Strings__factory extends ContractFactory { + constructor(...args: StringsConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(overrides || {}); + } + override deploy(overrides?: NonPayableOverrides & { from?: string }) { + return super.deploy(overrides || {}) as Promise< + Strings & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): Strings__factory { + return super.connect(runner) as Strings__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): StringsInterface { + return new Interface(_abi) as StringsInterface; + } + static connect(address: string, runner?: ContractRunner | null): Strings { + return new Contract(address, _abi, runner) as unknown as Strings; + } +} diff --git a/typechain-types/factories/src/Upgrades.sol/TransparentUpgradeableProxy__factory.ts b/typechain-types/factories/src/Upgrades.sol/TransparentUpgradeableProxy__factory.ts new file mode 100644 index 0000000..1dc2f92 --- /dev/null +++ b/typechain-types/factories/src/Upgrades.sol/TransparentUpgradeableProxy__factory.ts @@ -0,0 +1,202 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { + Signer, + BytesLike, + AddressLike, + ContractDeployTransaction, + ContractRunner, +} from "ethers"; +import type { PayableOverrides } from "../../../common"; +import type { + TransparentUpgradeableProxy, + TransparentUpgradeableProxyInterface, +} from "../../../src/Upgrades.sol/TransparentUpgradeableProxy"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "_logic", + type: "address", + }, + { + internalType: "address", + name: "initialOwner", + type: "address", + }, + { + internalType: "bytes", + name: "_data", + type: "bytes", + }, + ], + stateMutability: "payable", + type: "constructor", + }, + { + inputs: [ + { + internalType: "address", + name: "target", + type: "address", + }, + ], + name: "AddressEmptyCode", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "admin", + type: "address", + }, + ], + name: "ERC1967InvalidAdmin", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "implementation", + type: "address", + }, + ], + name: "ERC1967InvalidImplementation", + type: "error", + }, + { + inputs: [], + name: "ERC1967NonPayable", + type: "error", + }, + { + inputs: [], + name: "FailedInnerCall", + type: "error", + }, + { + inputs: [], + name: "ProxyDeniedAdminAccess", + type: "error", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "previousAdmin", + type: "address", + }, + { + indexed: false, + internalType: "address", + name: "newAdmin", + type: "address", + }, + ], + name: "AdminChanged", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "implementation", + type: "address", + }, + ], + name: "Upgraded", + type: "event", + }, + { + stateMutability: "payable", + type: "fallback", + }, +] as const; + +const _bytecode = + "0x60a0604052604051611ae5380380611ae58339818101604052810190610025919061074f565b828161003782826100c460201b60201c565b5050816040516100469061056f565b61005091906107cd565b604051809103906000f08015801561006c573d6000803e3d6000fd5b5073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506100bc6100b161014960201b60201c565b61015360201b60201c565b50505061086f565b6100d3826101ab60201b60201c565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a260008151111561013657610130828261027e60201b60201c565b50610145565b61014461030860201b60201c565b5b5050565b6000608051905090565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61018261034560201b60201c565b826040516101919291906107e8565b60405180910390a16101a8816103a260201b60201c565b50565b60008173ffffffffffffffffffffffffffffffffffffffff163b0361020757806040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526004016101fe91906107cd565b60405180910390fd5b8061023a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61048b60201b60201c565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606000808473ffffffffffffffffffffffffffffffffffffffff16846040516102a89190610858565b600060405180830381855af49150503d80600081146102e3576040519150601f19603f3d011682016040523d82523d6000602084013e6102e8565b606091505b50915091506102fe85838361049560201b60201c565b9250505092915050565b6000341115610343576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60006103797fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610360001b61048b60201b60201c565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036104145760006040517f62e77ba200000000000000000000000000000000000000000000000000000000815260040161040b91906107cd565b60405180910390fd5b806104477fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610360001b61048b60201b60201c565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000819050919050565b6060826104b0576104ab8261052a60201b60201c565b610522565b600082511480156104d8575060008473ffffffffffffffffffffffffffffffffffffffff163b145b1561051a57836040517f9996b31500000000000000000000000000000000000000000000000000000000815260040161051191906107cd565b60405180910390fd5b819050610523565b5b9392505050565b60008151111561053d5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a2b806110ba83390190565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006105bb82610590565b9050919050565b6105cb816105b0565b81146105d657600080fd5b50565b6000815190506105e8816105c2565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610641826105f8565b810181811067ffffffffffffffff821117156106605761065f610609565b5b80604052505050565b600061067361057c565b905061067f8282610638565b919050565b600067ffffffffffffffff82111561069f5761069e610609565b5b6106a8826105f8565b9050602081019050919050565b60005b838110156106d35780820151818401526020810190506106b8565b60008484015250505050565b60006106f26106ed84610684565b610669565b90508281526020810184848401111561070e5761070d6105f3565b5b6107198482856106b5565b509392505050565b600082601f830112610736576107356105ee565b5b81516107468482602086016106df565b91505092915050565b60008060006060848603121561076857610767610586565b5b6000610776868287016105d9565b9350506020610787868287016105d9565b925050604084015167ffffffffffffffff8111156107a8576107a761058b565b5b6107b486828701610721565b9150509250925092565b6107c7816105b0565b82525050565b60006020820190506107e260008301846107be565b92915050565b60006040820190506107fd60008301856107be565b61080a60208301846107be565b9392505050565b600081519050919050565b600081905092915050565b600061083282610811565b61083c818561081c565b935061084c8185602086016106b5565b80840191505092915050565b60006108648284610827565b915081905092915050565b60805161083061088a600039600061010601526108306000f3fe608060405261000c61000e565b005b610016610102565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16036100f757634f1ef28660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166000357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146100ea576040517fd2b576ec00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6100f261012a565b610100565b6100ff610160565b5b565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b6000806000366004908092610141939291906104f1565b81019061014e91906106da565b9150915061015c8282610172565b5050565b61017061016b6101e5565b6101f4565b565b61017b8261021a565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a26000815111156101d8576101d282826102e7565b506101e1565b6101e061036b565b5b5050565b60006101ef6103a8565b905090565b3660008037600080366000845af43d6000803e8060008114610215573d6000f35b3d6000fd5b60008173ffffffffffffffffffffffffffffffffffffffff163b0361027657806040517f4c9c8ce300000000000000000000000000000000000000000000000000000000815260040161026d9190610757565b60405180910390fd5b806102a37f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6103ff565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606000808473ffffffffffffffffffffffffffffffffffffffff168460405161031191906107e3565b600060405180830381855af49150503d806000811461034c576040519150601f19603f3d011682016040523d82523d6000602084013e610351565b606091505b5091509150610361858383610409565b9250505092915050565b60003411156103a6576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60006103d67f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6103ff565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b60608261041e5761041982610498565b610490565b60008251148015610446575060008473ffffffffffffffffffffffffffffffffffffffff163b145b1561048857836040517f9996b31500000000000000000000000000000000000000000000000000000000815260040161047f9190610757565b60405180910390fd5b819050610491565b5b9392505050565b6000815111156104ab5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000604051905090565b600080fd5b600080fd5b60008085851115610505576105046104e7565b5b83861115610516576105156104ec565b5b6001850283019150848603905094509492505050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061056182610536565b9050919050565b61057181610556565b811461057c57600080fd5b50565b60008135905061058e81610568565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6105e78261059e565b810181811067ffffffffffffffff82111715610606576106056105af565b5b80604052505050565b60006106196104dd565b905061062582826105de565b919050565b600067ffffffffffffffff821115610645576106446105af565b5b61064e8261059e565b9050602081019050919050565b82818337600083830152505050565b600061067d6106788461062a565b61060f565b90508281526020810184848401111561069957610698610599565b5b6106a484828561065b565b509392505050565b600082601f8301126106c1576106c0610594565b5b81356106d184826020860161066a565b91505092915050565b600080604083850312156106f1576106f061052c565b5b60006106ff8582860161057f565b925050602083013567ffffffffffffffff8111156107205761071f610531565b5b61072c858286016106ac565b9150509250929050565b600061074182610536565b9050919050565b61075181610736565b82525050565b600060208201905061076c6000830184610748565b92915050565b600081519050919050565b600081905092915050565b60005b838110156107a657808201518184015260208101905061078b565b60008484015250505050565b60006107bd82610772565b6107c7818561077d565b93506107d7818560208601610788565b80840191505092915050565b60006107ef82846107b2565b91508190509291505056fea26469706673582212206be732332064e778aac95f60931947bf328cda42bd2ec28b7e8b830cda74729164736f6c634300081c0033608060405234801561001057600080fd5b50604051610a2b380380610a2b833981810160405281019061003291906101e2565b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100a55760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161009c919061021e565b60405180910390fd5b6100b4816100bb60201b60201c565b5050610239565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006101af82610184565b9050919050565b6101bf816101a4565b81146101ca57600080fd5b50565b6000815190506101dc816101b6565b92915050565b6000602082840312156101f8576101f761017f565b5b6000610206848285016101cd565b91505092915050565b610218816101a4565b82525050565b6000602082019050610233600083018461020f565b92915050565b6107e3806102486000396000f3fe60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610091578063ad3cb1cc146100ad578063f2fde38b146100d8575b600080fd5b34801561005b57600080fd5b50610064610101565b005b34801561007257600080fd5b5061007b610115565b604051610088919061040c565b60405180910390f35b6100ab60048036038101906100a691906105eb565b61013e565b005b3480156100b957600080fd5b506100c26101b9565b6040516100cf91906106d9565b60405180910390f35b3480156100e457600080fd5b506100ff60048036038101906100fa91906106fb565b6101f2565b005b610109610278565b61011360006102ff565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610146610278565b8273ffffffffffffffffffffffffffffffffffffffff16634f1ef2863484846040518463ffffffff1660e01b815260040161018292919061077d565b6000604051808303818588803b15801561019b57600080fd5b505af11580156101af573d6000803e3d6000fd5b5050505050505050565b6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6101fa610278565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361026c5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610263919061040c565b60405180910390fd5b610275816102ff565b50565b6102806103c3565b73ffffffffffffffffffffffffffffffffffffffff1661029e610115565b73ffffffffffffffffffffffffffffffffffffffff16146102fd576102c16103c3565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016102f4919061040c565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103f6826103cb565b9050919050565b610406816103eb565b82525050565b600060208201905061042160008301846103fd565b92915050565b6000604051905090565b600080fd5b600080fd5b6000610446826103eb565b9050919050565b6104568161043b565b811461046157600080fd5b50565b6000813590506104738161044d565b92915050565b610482816103eb565b811461048d57600080fd5b50565b60008135905061049f81610479565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6104f8826104af565b810181811067ffffffffffffffff82111715610517576105166104c0565b5b80604052505050565b600061052a610427565b905061053682826104ef565b919050565b600067ffffffffffffffff821115610556576105556104c0565b5b61055f826104af565b9050602081019050919050565b82818337600083830152505050565b600061058e6105898461053b565b610520565b9050828152602081018484840111156105aa576105a96104aa565b5b6105b584828561056c565b509392505050565b600082601f8301126105d2576105d16104a5565b5b81356105e284826020860161057b565b91505092915050565b60008060006060848603121561060457610603610431565b5b600061061286828701610464565b935050602061062386828701610490565b925050604084013567ffffffffffffffff81111561064457610643610436565b5b610650868287016105bd565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b60005b83811015610694578082015181840152602081019050610679565b60008484015250505050565b60006106ab8261065a565b6106b58185610665565b93506106c5818560208601610676565b6106ce816104af565b840191505092915050565b600060208201905081810360008301526106f381846106a0565b905092915050565b60006020828403121561071157610710610431565b5b600061071f84828501610490565b91505092915050565b600081519050919050565b600082825260208201905092915050565b600061074f82610728565b6107598185610733565b9350610769818560208601610676565b610772816104af565b840191505092915050565b600060408201905061079260008301856103fd565b81810360208301526107a48184610744565b9050939250505056fea26469706673582212207618fbcb2a391d05e882e2fcc53acd9c8d0257c7ed9e673b7bd1c2b353ab85fa64736f6c634300081c0033"; + +type TransparentUpgradeableProxyConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: TransparentUpgradeableProxyConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class TransparentUpgradeableProxy__factory extends ContractFactory { + constructor(...args: TransparentUpgradeableProxyConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + _logic: AddressLike, + initialOwner: AddressLike, + _data: BytesLike, + overrides?: PayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction( + _logic, + initialOwner, + _data, + overrides || {} + ); + } + override deploy( + _logic: AddressLike, + initialOwner: AddressLike, + _data: BytesLike, + overrides?: PayableOverrides & { from?: string } + ) { + return super.deploy( + _logic, + initialOwner, + _data, + overrides || {} + ) as Promise< + TransparentUpgradeableProxy & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect( + runner: ContractRunner | null + ): TransparentUpgradeableProxy__factory { + return super.connect(runner) as TransparentUpgradeableProxy__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): TransparentUpgradeableProxyInterface { + return new Interface(_abi) as TransparentUpgradeableProxyInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): TransparentUpgradeableProxy { + return new Contract( + address, + _abi, + runner + ) as unknown as TransparentUpgradeableProxy; + } +} diff --git a/typechain-types/factories/src/Upgrades.sol/UpgradeableBeacon__factory.ts b/typechain-types/factories/src/Upgrades.sol/UpgradeableBeacon__factory.ts new file mode 100644 index 0000000..ff42f04 --- /dev/null +++ b/typechain-types/factories/src/Upgrades.sol/UpgradeableBeacon__factory.ts @@ -0,0 +1,226 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { + Signer, + AddressLike, + ContractDeployTransaction, + ContractRunner, +} from "ethers"; +import type { NonPayableOverrides } from "../../../common"; +import type { + UpgradeableBeacon, + UpgradeableBeaconInterface, +} from "../../../src/Upgrades.sol/UpgradeableBeacon"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "implementation_", + type: "address", + }, + { + internalType: "address", + name: "initialOwner", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, + { + inputs: [ + { + internalType: "address", + name: "implementation", + type: "address", + }, + ], + name: "BeaconInvalidImplementation", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + ], + name: "OwnableInvalidOwner", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "OwnableUnauthorizedAccount", + type: "error", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "previousOwner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "OwnershipTransferred", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "implementation", + type: "address", + }, + ], + name: "Upgraded", + type: "event", + }, + { + inputs: [], + name: "implementation", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "owner", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "renounceOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "transferOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "newImplementation", + type: "address", + }, + ], + name: "upgradeTo", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +const _bytecode = + "0x608060405234801561001057600080fd5b5060405161084f38038061084f833981810160405281019061003291906102d5565b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100a55760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161009c9190610324565b60405180910390fd5b6100b4816100cb60201b60201c565b506100c48261018f60201b60201c565b505061033f565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008173ffffffffffffffffffffffffffffffffffffffff163b036101eb57806040517f847ac5640000000000000000000000000000000000000000000000000000000081526004016101e29190610324565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a250565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006102a282610277565b9050919050565b6102b281610297565b81146102bd57600080fd5b50565b6000815190506102cf816102a9565b92915050565b600080604083850312156102ec576102eb610272565b5b60006102fa858286016102c0565b925050602061030b858286016102c0565b9150509250929050565b61031e81610297565b82525050565b60006020820190506103396000830184610315565b92915050565b6105018061034e6000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80633659cfe61461005c5780635c60da1b14610078578063715018a6146100965780638da5cb5b146100a0578063f2fde38b146100be575b600080fd5b61007660048036038101906100719190610474565b6100da565b005b6100806100ee565b60405161008d91906104b0565b60405180910390f35b61009e610118565b005b6100a861012c565b6040516100b591906104b0565b60405180910390f35b6100d860048036038101906100d39190610474565b610155565b005b6100e26101db565b6100eb81610262565b50565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6101206101db565b61012a6000610345565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61015d6101db565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036101cf5760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016101c691906104b0565b60405180910390fd5b6101d881610345565b50565b6101e3610409565b73ffffffffffffffffffffffffffffffffffffffff1661020161012c565b73ffffffffffffffffffffffffffffffffffffffff161461026057610224610409565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161025791906104b0565b60405180910390fd5b565b60008173ffffffffffffffffffffffffffffffffffffffff163b036102be57806040517f847ac5640000000000000000000000000000000000000000000000000000000081526004016102b591906104b0565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a250565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061044182610416565b9050919050565b61045181610436565b811461045c57600080fd5b50565b60008135905061046e81610448565b92915050565b60006020828403121561048a57610489610411565b5b60006104988482850161045f565b91505092915050565b6104aa81610436565b82525050565b60006020820190506104c560008301846104a1565b9291505056fea2646970667358221220aad755861b74d31885bdc5d8f1b1aa44ae08f3acdbfb8171d854505a03b102c664736f6c634300081c0033"; + +type UpgradeableBeaconConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: UpgradeableBeaconConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class UpgradeableBeacon__factory extends ContractFactory { + constructor(...args: UpgradeableBeaconConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + implementation_: AddressLike, + initialOwner: AddressLike, + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction( + implementation_, + initialOwner, + overrides || {} + ); + } + override deploy( + implementation_: AddressLike, + initialOwner: AddressLike, + overrides?: NonPayableOverrides & { from?: string } + ) { + return super.deploy( + implementation_, + initialOwner, + overrides || {} + ) as Promise< + UpgradeableBeacon & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): UpgradeableBeacon__factory { + return super.connect(runner) as UpgradeableBeacon__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): UpgradeableBeaconInterface { + return new Interface(_abi) as UpgradeableBeaconInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): UpgradeableBeacon { + return new Contract(address, _abi, runner) as unknown as UpgradeableBeacon; + } +} diff --git a/typechain-types/factories/src/Upgrades.sol/VmSafe__factory.ts b/typechain-types/factories/src/Upgrades.sol/VmSafe__factory.ts new file mode 100644 index 0000000..b5e4fca --- /dev/null +++ b/typechain-types/factories/src/Upgrades.sol/VmSafe__factory.ts @@ -0,0 +1,7685 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { VmSafe, VmSafeInterface } from "../../../src/Upgrades.sol/VmSafe"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "target", + type: "address", + }, + ], + name: "accesses", + outputs: [ + { + internalType: "bytes32[]", + name: "readSlots", + type: "bytes32[]", + }, + { + internalType: "bytes32[]", + name: "writeSlots", + type: "bytes32[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + name: "addr", + outputs: [ + { + internalType: "address", + name: "keyAddr", + type: "address", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "maxDelta", + type: "uint256", + }, + ], + name: "assertApproxEqAbs", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "maxDelta", + type: "uint256", + }, + ], + name: "assertApproxEqAbs", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "maxDelta", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertApproxEqAbs", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "maxDelta", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertApproxEqAbs", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "maxDelta", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertApproxEqAbsDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "maxDelta", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertApproxEqAbsDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "maxDelta", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertApproxEqAbsDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "maxDelta", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertApproxEqAbsDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "maxPercentDelta", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertApproxEqRel", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "maxPercentDelta", + type: "uint256", + }, + ], + name: "assertApproxEqRel", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "maxPercentDelta", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertApproxEqRel", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "maxPercentDelta", + type: "uint256", + }, + ], + name: "assertApproxEqRel", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "maxPercentDelta", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertApproxEqRelDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "maxPercentDelta", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertApproxEqRelDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "maxPercentDelta", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertApproxEqRelDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "maxPercentDelta", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertApproxEqRelDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32[]", + name: "left", + type: "bytes32[]", + }, + { + internalType: "bytes32[]", + name: "right", + type: "bytes32[]", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256[]", + name: "left", + type: "int256[]", + }, + { + internalType: "int256[]", + name: "right", + type: "int256[]", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "left", + type: "address", + }, + { + internalType: "address", + name: "right", + type: "address", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "left", + type: "string", + }, + { + internalType: "string", + name: "right", + type: "string", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address[]", + name: "left", + type: "address[]", + }, + { + internalType: "address[]", + name: "right", + type: "address[]", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address[]", + name: "left", + type: "address[]", + }, + { + internalType: "address[]", + name: "right", + type: "address[]", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bool", + name: "left", + type: "bool", + }, + { + internalType: "bool", + name: "right", + type: "bool", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "left", + type: "address", + }, + { + internalType: "address", + name: "right", + type: "address", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256[]", + name: "left", + type: "uint256[]", + }, + { + internalType: "uint256[]", + name: "right", + type: "uint256[]", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bool[]", + name: "left", + type: "bool[]", + }, + { + internalType: "bool[]", + name: "right", + type: "bool[]", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256[]", + name: "left", + type: "int256[]", + }, + { + internalType: "int256[]", + name: "right", + type: "int256[]", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "left", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "right", + type: "bytes32", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256[]", + name: "left", + type: "uint256[]", + }, + { + internalType: "uint256[]", + name: "right", + type: "uint256[]", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "left", + type: "bytes", + }, + { + internalType: "bytes", + name: "right", + type: "bytes", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "left", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "right", + type: "bytes32", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string[]", + name: "left", + type: "string[]", + }, + { + internalType: "string[]", + name: "right", + type: "string[]", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32[]", + name: "left", + type: "bytes32[]", + }, + { + internalType: "bytes32[]", + name: "right", + type: "bytes32[]", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "left", + type: "bytes", + }, + { + internalType: "bytes", + name: "right", + type: "bytes", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bool[]", + name: "left", + type: "bool[]", + }, + { + internalType: "bool[]", + name: "right", + type: "bool[]", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes[]", + name: "left", + type: "bytes[]", + }, + { + internalType: "bytes[]", + name: "right", + type: "bytes[]", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string[]", + name: "left", + type: "string[]", + }, + { + internalType: "string[]", + name: "right", + type: "string[]", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "left", + type: "string", + }, + { + internalType: "string", + name: "right", + type: "string", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes[]", + name: "left", + type: "bytes[]", + }, + { + internalType: "bytes[]", + name: "right", + type: "bytes[]", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bool", + name: "left", + type: "bool", + }, + { + internalType: "bool", + name: "right", + type: "bool", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertEqDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertEqDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEqDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEqDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bool", + name: "condition", + type: "bool", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertFalse", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bool", + name: "condition", + type: "bool", + }, + ], + name: "assertFalse", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + ], + name: "assertGe", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertGe", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + ], + name: "assertGe", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertGe", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertGeDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertGeDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertGeDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertGeDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + ], + name: "assertGt", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertGt", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + ], + name: "assertGt", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertGt", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertGtDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertGtDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertGtDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertGtDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertLe", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + ], + name: "assertLe", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + ], + name: "assertLe", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertLe", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertLeDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertLeDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertLeDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertLeDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + ], + name: "assertLt", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertLt", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertLt", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + ], + name: "assertLt", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertLtDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertLtDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertLtDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertLtDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32[]", + name: "left", + type: "bytes32[]", + }, + { + internalType: "bytes32[]", + name: "right", + type: "bytes32[]", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256[]", + name: "left", + type: "int256[]", + }, + { + internalType: "int256[]", + name: "right", + type: "int256[]", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bool", + name: "left", + type: "bool", + }, + { + internalType: "bool", + name: "right", + type: "bool", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes[]", + name: "left", + type: "bytes[]", + }, + { + internalType: "bytes[]", + name: "right", + type: "bytes[]", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bool", + name: "left", + type: "bool", + }, + { + internalType: "bool", + name: "right", + type: "bool", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bool[]", + name: "left", + type: "bool[]", + }, + { + internalType: "bool[]", + name: "right", + type: "bool[]", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "left", + type: "bytes", + }, + { + internalType: "bytes", + name: "right", + type: "bytes", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address[]", + name: "left", + type: "address[]", + }, + { + internalType: "address[]", + name: "right", + type: "address[]", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256[]", + name: "left", + type: "uint256[]", + }, + { + internalType: "uint256[]", + name: "right", + type: "uint256[]", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bool[]", + name: "left", + type: "bool[]", + }, + { + internalType: "bool[]", + name: "right", + type: "bool[]", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "left", + type: "string", + }, + { + internalType: "string", + name: "right", + type: "string", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address[]", + name: "left", + type: "address[]", + }, + { + internalType: "address[]", + name: "right", + type: "address[]", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "left", + type: "string", + }, + { + internalType: "string", + name: "right", + type: "string", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "left", + type: "address", + }, + { + internalType: "address", + name: "right", + type: "address", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "left", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "right", + type: "bytes32", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "left", + type: "bytes", + }, + { + internalType: "bytes", + name: "right", + type: "bytes", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256[]", + name: "left", + type: "uint256[]", + }, + { + internalType: "uint256[]", + name: "right", + type: "uint256[]", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "left", + type: "address", + }, + { + internalType: "address", + name: "right", + type: "address", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "left", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "right", + type: "bytes32", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string[]", + name: "left", + type: "string[]", + }, + { + internalType: "string[]", + name: "right", + type: "string[]", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32[]", + name: "left", + type: "bytes32[]", + }, + { + internalType: "bytes32[]", + name: "right", + type: "bytes32[]", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string[]", + name: "left", + type: "string[]", + }, + { + internalType: "string[]", + name: "right", + type: "string[]", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256[]", + name: "left", + type: "int256[]", + }, + { + internalType: "int256[]", + name: "right", + type: "int256[]", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes[]", + name: "left", + type: "bytes[]", + }, + { + internalType: "bytes[]", + name: "right", + type: "bytes[]", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertNotEqDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEqDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertNotEqDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEqDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bool", + name: "condition", + type: "bool", + }, + ], + name: "assertTrue", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bool", + name: "condition", + type: "bool", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertTrue", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bool", + name: "condition", + type: "bool", + }, + ], + name: "assume", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "char", + type: "string", + }, + ], + name: "breakpoint", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "char", + type: "string", + }, + { + internalType: "bool", + name: "value", + type: "bool", + }, + ], + name: "breakpoint", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "broadcast", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "signer", + type: "address", + }, + ], + name: "broadcast", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + name: "broadcast", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "broadcastRawTransaction", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + ], + name: "closeFile", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "salt", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "initCodeHash", + type: "bytes32", + }, + ], + name: "computeCreate2Address", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "salt", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "initCodeHash", + type: "bytes32", + }, + { + internalType: "address", + name: "deployer", + type: "address", + }, + ], + name: "computeCreate2Address", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "deployer", + type: "address", + }, + { + internalType: "uint256", + name: "nonce", + type: "uint256", + }, + ], + name: "computeCreateAddress", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "from", + type: "string", + }, + { + internalType: "string", + name: "to", + type: "string", + }, + ], + name: "copyFile", + outputs: [ + { + internalType: "uint64", + name: "copied", + type: "uint64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + { + internalType: "bool", + name: "recursive", + type: "bool", + }, + ], + name: "createDir", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "walletLabel", + type: "string", + }, + ], + name: "createWallet", + outputs: [ + { + components: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + { + internalType: "uint256", + name: "publicKeyX", + type: "uint256", + }, + { + internalType: "uint256", + name: "publicKeyY", + type: "uint256", + }, + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + internalType: "struct VmSafe.Wallet", + name: "wallet", + type: "tuple", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + name: "createWallet", + outputs: [ + { + components: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + { + internalType: "uint256", + name: "publicKeyX", + type: "uint256", + }, + { + internalType: "uint256", + name: "publicKeyY", + type: "uint256", + }, + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + internalType: "struct VmSafe.Wallet", + name: "wallet", + type: "tuple", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + { + internalType: "string", + name: "walletLabel", + type: "string", + }, + ], + name: "createWallet", + outputs: [ + { + components: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + { + internalType: "uint256", + name: "publicKeyX", + type: "uint256", + }, + { + internalType: "uint256", + name: "publicKeyY", + type: "uint256", + }, + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + internalType: "struct VmSafe.Wallet", + name: "wallet", + type: "tuple", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "artifactPath", + type: "string", + }, + { + internalType: "bytes", + name: "constructorArgs", + type: "bytes", + }, + ], + name: "deployCode", + outputs: [ + { + internalType: "address", + name: "deployedAddress", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "artifactPath", + type: "string", + }, + ], + name: "deployCode", + outputs: [ + { + internalType: "address", + name: "deployedAddress", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "mnemonic", + type: "string", + }, + { + internalType: "string", + name: "derivationPath", + type: "string", + }, + { + internalType: "uint32", + name: "index", + type: "uint32", + }, + { + internalType: "string", + name: "language", + type: "string", + }, + ], + name: "deriveKey", + outputs: [ + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "mnemonic", + type: "string", + }, + { + internalType: "uint32", + name: "index", + type: "uint32", + }, + { + internalType: "string", + name: "language", + type: "string", + }, + ], + name: "deriveKey", + outputs: [ + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "mnemonic", + type: "string", + }, + { + internalType: "uint32", + name: "index", + type: "uint32", + }, + ], + name: "deriveKey", + outputs: [ + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "mnemonic", + type: "string", + }, + { + internalType: "string", + name: "derivationPath", + type: "string", + }, + { + internalType: "uint32", + name: "index", + type: "uint32", + }, + ], + name: "deriveKey", + outputs: [ + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + ], + name: "ensNamehash", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + ], + name: "envAddress", + outputs: [ + { + internalType: "address", + name: "value", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "delim", + type: "string", + }, + ], + name: "envAddress", + outputs: [ + { + internalType: "address[]", + name: "value", + type: "address[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + ], + name: "envBool", + outputs: [ + { + internalType: "bool", + name: "value", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "delim", + type: "string", + }, + ], + name: "envBool", + outputs: [ + { + internalType: "bool[]", + name: "value", + type: "bool[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + ], + name: "envBytes", + outputs: [ + { + internalType: "bytes", + name: "value", + type: "bytes", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "delim", + type: "string", + }, + ], + name: "envBytes", + outputs: [ + { + internalType: "bytes[]", + name: "value", + type: "bytes[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "delim", + type: "string", + }, + ], + name: "envBytes32", + outputs: [ + { + internalType: "bytes32[]", + name: "value", + type: "bytes32[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + ], + name: "envBytes32", + outputs: [ + { + internalType: "bytes32", + name: "value", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + ], + name: "envExists", + outputs: [ + { + internalType: "bool", + name: "result", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "delim", + type: "string", + }, + ], + name: "envInt", + outputs: [ + { + internalType: "int256[]", + name: "value", + type: "int256[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + ], + name: "envInt", + outputs: [ + { + internalType: "int256", + name: "value", + type: "int256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "delim", + type: "string", + }, + { + internalType: "bytes32[]", + name: "defaultValue", + type: "bytes32[]", + }, + ], + name: "envOr", + outputs: [ + { + internalType: "bytes32[]", + name: "value", + type: "bytes32[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "delim", + type: "string", + }, + { + internalType: "int256[]", + name: "defaultValue", + type: "int256[]", + }, + ], + name: "envOr", + outputs: [ + { + internalType: "int256[]", + name: "value", + type: "int256[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "bool", + name: "defaultValue", + type: "bool", + }, + ], + name: "envOr", + outputs: [ + { + internalType: "bool", + name: "value", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "address", + name: "defaultValue", + type: "address", + }, + ], + name: "envOr", + outputs: [ + { + internalType: "address", + name: "value", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "uint256", + name: "defaultValue", + type: "uint256", + }, + ], + name: "envOr", + outputs: [ + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "delim", + type: "string", + }, + { + internalType: "bytes[]", + name: "defaultValue", + type: "bytes[]", + }, + ], + name: "envOr", + outputs: [ + { + internalType: "bytes[]", + name: "value", + type: "bytes[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "delim", + type: "string", + }, + { + internalType: "uint256[]", + name: "defaultValue", + type: "uint256[]", + }, + ], + name: "envOr", + outputs: [ + { + internalType: "uint256[]", + name: "value", + type: "uint256[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "delim", + type: "string", + }, + { + internalType: "string[]", + name: "defaultValue", + type: "string[]", + }, + ], + name: "envOr", + outputs: [ + { + internalType: "string[]", + name: "value", + type: "string[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "bytes", + name: "defaultValue", + type: "bytes", + }, + ], + name: "envOr", + outputs: [ + { + internalType: "bytes", + name: "value", + type: "bytes", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "bytes32", + name: "defaultValue", + type: "bytes32", + }, + ], + name: "envOr", + outputs: [ + { + internalType: "bytes32", + name: "value", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "int256", + name: "defaultValue", + type: "int256", + }, + ], + name: "envOr", + outputs: [ + { + internalType: "int256", + name: "value", + type: "int256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "delim", + type: "string", + }, + { + internalType: "address[]", + name: "defaultValue", + type: "address[]", + }, + ], + name: "envOr", + outputs: [ + { + internalType: "address[]", + name: "value", + type: "address[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "defaultValue", + type: "string", + }, + ], + name: "envOr", + outputs: [ + { + internalType: "string", + name: "value", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "delim", + type: "string", + }, + { + internalType: "bool[]", + name: "defaultValue", + type: "bool[]", + }, + ], + name: "envOr", + outputs: [ + { + internalType: "bool[]", + name: "value", + type: "bool[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "delim", + type: "string", + }, + ], + name: "envString", + outputs: [ + { + internalType: "string[]", + name: "value", + type: "string[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + ], + name: "envString", + outputs: [ + { + internalType: "string", + name: "value", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + ], + name: "envUint", + outputs: [ + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "delim", + type: "string", + }, + ], + name: "envUint", + outputs: [ + { + internalType: "uint256[]", + name: "value", + type: "uint256[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "fromBlock", + type: "uint256", + }, + { + internalType: "uint256", + name: "toBlock", + type: "uint256", + }, + { + internalType: "address", + name: "target", + type: "address", + }, + { + internalType: "bytes32[]", + name: "topics", + type: "bytes32[]", + }, + ], + name: "eth_getLogs", + outputs: [ + { + components: [ + { + internalType: "address", + name: "emitter", + type: "address", + }, + { + internalType: "bytes32[]", + name: "topics", + type: "bytes32[]", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + { + internalType: "bytes32", + name: "blockHash", + type: "bytes32", + }, + { + internalType: "uint64", + name: "blockNumber", + type: "uint64", + }, + { + internalType: "bytes32", + name: "transactionHash", + type: "bytes32", + }, + { + internalType: "uint64", + name: "transactionIndex", + type: "uint64", + }, + { + internalType: "uint256", + name: "logIndex", + type: "uint256", + }, + { + internalType: "bool", + name: "removed", + type: "bool", + }, + ], + internalType: "struct VmSafe.EthGetLogs[]", + name: "logs", + type: "tuple[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + ], + name: "exists", + outputs: [ + { + internalType: "bool", + name: "result", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string[]", + name: "commandInput", + type: "string[]", + }, + ], + name: "ffi", + outputs: [ + { + internalType: "bytes", + name: "result", + type: "bytes", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + ], + name: "fsMetadata", + outputs: [ + { + components: [ + { + internalType: "bool", + name: "isDir", + type: "bool", + }, + { + internalType: "bool", + name: "isSymlink", + type: "bool", + }, + { + internalType: "uint256", + name: "length", + type: "uint256", + }, + { + internalType: "bool", + name: "readOnly", + type: "bool", + }, + { + internalType: "uint256", + name: "modified", + type: "uint256", + }, + { + internalType: "uint256", + name: "accessed", + type: "uint256", + }, + { + internalType: "uint256", + name: "created", + type: "uint256", + }, + ], + internalType: "struct VmSafe.FsMetadata", + name: "metadata", + type: "tuple", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "getBlobBaseFee", + outputs: [ + { + internalType: "uint256", + name: "blobBaseFee", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "getBlockNumber", + outputs: [ + { + internalType: "uint256", + name: "height", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "getBlockTimestamp", + outputs: [ + { + internalType: "uint256", + name: "timestamp", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "artifactPath", + type: "string", + }, + ], + name: "getCode", + outputs: [ + { + internalType: "bytes", + name: "creationBytecode", + type: "bytes", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "artifactPath", + type: "string", + }, + ], + name: "getDeployedCode", + outputs: [ + { + internalType: "bytes", + name: "runtimeBytecode", + type: "bytes", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "getFoundryVersion", + outputs: [ + { + internalType: "string", + name: "version", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "getLabel", + outputs: [ + { + internalType: "string", + name: "currentLabel", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "target", + type: "address", + }, + { + internalType: "bytes32", + name: "elementSlot", + type: "bytes32", + }, + ], + name: "getMappingKeyAndParentOf", + outputs: [ + { + internalType: "bool", + name: "found", + type: "bool", + }, + { + internalType: "bytes32", + name: "key", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "parent", + type: "bytes32", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "target", + type: "address", + }, + { + internalType: "bytes32", + name: "mappingSlot", + type: "bytes32", + }, + ], + name: "getMappingLength", + outputs: [ + { + internalType: "uint256", + name: "length", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "target", + type: "address", + }, + { + internalType: "bytes32", + name: "mappingSlot", + type: "bytes32", + }, + { + internalType: "uint256", + name: "idx", + type: "uint256", + }, + ], + name: "getMappingSlotAt", + outputs: [ + { + internalType: "bytes32", + name: "value", + type: "bytes32", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "getNonce", + outputs: [ + { + internalType: "uint64", + name: "nonce", + type: "uint64", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + { + internalType: "uint256", + name: "publicKeyX", + type: "uint256", + }, + { + internalType: "uint256", + name: "publicKeyY", + type: "uint256", + }, + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + internalType: "struct VmSafe.Wallet", + name: "wallet", + type: "tuple", + }, + ], + name: "getNonce", + outputs: [ + { + internalType: "uint64", + name: "nonce", + type: "uint64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "getRecordedLogs", + outputs: [ + { + components: [ + { + internalType: "bytes32[]", + name: "topics", + type: "bytes32[]", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + { + internalType: "address", + name: "emitter", + type: "address", + }, + ], + internalType: "struct VmSafe.Log[]", + name: "logs", + type: "tuple[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "input", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "indexOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "enum VmSafe.ForgeContext", + name: "context", + type: "uint8", + }, + ], + name: "isContext", + outputs: [ + { + internalType: "bool", + name: "result", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + ], + name: "isDir", + outputs: [ + { + internalType: "bool", + name: "result", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + ], + name: "isFile", + outputs: [ + { + internalType: "bool", + name: "result", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "keyExists", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "keyExistsJson", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "keyExistsToml", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + { + internalType: "string", + name: "newLabel", + type: "string", + }, + ], + name: "label", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "lastCallGas", + outputs: [ + { + components: [ + { + internalType: "uint64", + name: "gasLimit", + type: "uint64", + }, + { + internalType: "uint64", + name: "gasTotalUsed", + type: "uint64", + }, + { + internalType: "uint64", + name: "gasMemoryUsed", + type: "uint64", + }, + { + internalType: "int64", + name: "gasRefunded", + type: "int64", + }, + { + internalType: "uint64", + name: "gasRemaining", + type: "uint64", + }, + ], + internalType: "struct VmSafe.Gas", + name: "gas", + type: "tuple", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "target", + type: "address", + }, + { + internalType: "bytes32", + name: "slot", + type: "bytes32", + }, + ], + name: "load", + outputs: [ + { + internalType: "bytes32", + name: "data", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "stringifiedValue", + type: "string", + }, + ], + name: "parseAddress", + outputs: [ + { + internalType: "address", + name: "parsedValue", + type: "address", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "stringifiedValue", + type: "string", + }, + ], + name: "parseBool", + outputs: [ + { + internalType: "bool", + name: "parsedValue", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "stringifiedValue", + type: "string", + }, + ], + name: "parseBytes", + outputs: [ + { + internalType: "bytes", + name: "parsedValue", + type: "bytes", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "stringifiedValue", + type: "string", + }, + ], + name: "parseBytes32", + outputs: [ + { + internalType: "bytes32", + name: "parsedValue", + type: "bytes32", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "stringifiedValue", + type: "string", + }, + ], + name: "parseInt", + outputs: [ + { + internalType: "int256", + name: "parsedValue", + type: "int256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + name: "parseJson", + outputs: [ + { + internalType: "bytes", + name: "abiEncodedData", + type: "bytes", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJson", + outputs: [ + { + internalType: "bytes", + name: "abiEncodedData", + type: "bytes", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJsonAddress", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJsonAddressArray", + outputs: [ + { + internalType: "address[]", + name: "", + type: "address[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJsonBool", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJsonBoolArray", + outputs: [ + { + internalType: "bool[]", + name: "", + type: "bool[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJsonBytes", + outputs: [ + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJsonBytes32", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJsonBytes32Array", + outputs: [ + { + internalType: "bytes32[]", + name: "", + type: "bytes32[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJsonBytesArray", + outputs: [ + { + internalType: "bytes[]", + name: "", + type: "bytes[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJsonInt", + outputs: [ + { + internalType: "int256", + name: "", + type: "int256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJsonIntArray", + outputs: [ + { + internalType: "int256[]", + name: "", + type: "int256[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJsonKeys", + outputs: [ + { + internalType: "string[]", + name: "keys", + type: "string[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJsonString", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJsonStringArray", + outputs: [ + { + internalType: "string[]", + name: "", + type: "string[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "typeDescription", + type: "string", + }, + ], + name: "parseJsonType", + outputs: [ + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + { + internalType: "string", + name: "typeDescription", + type: "string", + }, + ], + name: "parseJsonType", + outputs: [ + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + { + internalType: "string", + name: "typeDescription", + type: "string", + }, + ], + name: "parseJsonTypeArray", + outputs: [ + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJsonUint", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJsonUintArray", + outputs: [ + { + internalType: "uint256[]", + name: "", + type: "uint256[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseToml", + outputs: [ + { + internalType: "bytes", + name: "abiEncodedData", + type: "bytes", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + ], + name: "parseToml", + outputs: [ + { + internalType: "bytes", + name: "abiEncodedData", + type: "bytes", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseTomlAddress", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseTomlAddressArray", + outputs: [ + { + internalType: "address[]", + name: "", + type: "address[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseTomlBool", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseTomlBoolArray", + outputs: [ + { + internalType: "bool[]", + name: "", + type: "bool[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseTomlBytes", + outputs: [ + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseTomlBytes32", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseTomlBytes32Array", + outputs: [ + { + internalType: "bytes32[]", + name: "", + type: "bytes32[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseTomlBytesArray", + outputs: [ + { + internalType: "bytes[]", + name: "", + type: "bytes[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseTomlInt", + outputs: [ + { + internalType: "int256", + name: "", + type: "int256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseTomlIntArray", + outputs: [ + { + internalType: "int256[]", + name: "", + type: "int256[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseTomlKeys", + outputs: [ + { + internalType: "string[]", + name: "keys", + type: "string[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseTomlString", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseTomlStringArray", + outputs: [ + { + internalType: "string[]", + name: "", + type: "string[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseTomlUint", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseTomlUintArray", + outputs: [ + { + internalType: "uint256[]", + name: "", + type: "uint256[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "stringifiedValue", + type: "string", + }, + ], + name: "parseUint", + outputs: [ + { + internalType: "uint256", + name: "parsedValue", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [], + name: "pauseGasMetering", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "projectRoot", + outputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "promptText", + type: "string", + }, + ], + name: "prompt", + outputs: [ + { + internalType: "string", + name: "input", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "promptText", + type: "string", + }, + ], + name: "promptAddress", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "promptText", + type: "string", + }, + ], + name: "promptSecret", + outputs: [ + { + internalType: "string", + name: "input", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "promptText", + type: "string", + }, + ], + name: "promptSecretUint", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "promptText", + type: "string", + }, + ], + name: "promptUint", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "randomAddress", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "randomUint", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "min", + type: "uint256", + }, + { + internalType: "uint256", + name: "max", + type: "uint256", + }, + ], + name: "randomUint", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + { + internalType: "uint64", + name: "maxDepth", + type: "uint64", + }, + ], + name: "readDir", + outputs: [ + { + components: [ + { + internalType: "string", + name: "errorMessage", + type: "string", + }, + { + internalType: "string", + name: "path", + type: "string", + }, + { + internalType: "uint64", + name: "depth", + type: "uint64", + }, + { + internalType: "bool", + name: "isDir", + type: "bool", + }, + { + internalType: "bool", + name: "isSymlink", + type: "bool", + }, + ], + internalType: "struct VmSafe.DirEntry[]", + name: "entries", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + { + internalType: "uint64", + name: "maxDepth", + type: "uint64", + }, + { + internalType: "bool", + name: "followLinks", + type: "bool", + }, + ], + name: "readDir", + outputs: [ + { + components: [ + { + internalType: "string", + name: "errorMessage", + type: "string", + }, + { + internalType: "string", + name: "path", + type: "string", + }, + { + internalType: "uint64", + name: "depth", + type: "uint64", + }, + { + internalType: "bool", + name: "isDir", + type: "bool", + }, + { + internalType: "bool", + name: "isSymlink", + type: "bool", + }, + ], + internalType: "struct VmSafe.DirEntry[]", + name: "entries", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + ], + name: "readDir", + outputs: [ + { + components: [ + { + internalType: "string", + name: "errorMessage", + type: "string", + }, + { + internalType: "string", + name: "path", + type: "string", + }, + { + internalType: "uint64", + name: "depth", + type: "uint64", + }, + { + internalType: "bool", + name: "isDir", + type: "bool", + }, + { + internalType: "bool", + name: "isSymlink", + type: "bool", + }, + ], + internalType: "struct VmSafe.DirEntry[]", + name: "entries", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + ], + name: "readFile", + outputs: [ + { + internalType: "string", + name: "data", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + ], + name: "readFileBinary", + outputs: [ + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + ], + name: "readLine", + outputs: [ + { + internalType: "string", + name: "line", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "linkPath", + type: "string", + }, + ], + name: "readLink", + outputs: [ + { + internalType: "string", + name: "targetPath", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "record", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "recordLogs", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + name: "rememberKey", + outputs: [ + { + internalType: "address", + name: "keyAddr", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + { + internalType: "bool", + name: "recursive", + type: "bool", + }, + ], + name: "removeDir", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + ], + name: "removeFile", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "input", + type: "string", + }, + { + internalType: "string", + name: "from", + type: "string", + }, + { + internalType: "string", + name: "to", + type: "string", + }, + ], + name: "replace", + outputs: [ + { + internalType: "string", + name: "output", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [], + name: "resumeGasMetering", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "urlOrAlias", + type: "string", + }, + { + internalType: "string", + name: "method", + type: "string", + }, + { + internalType: "string", + name: "params", + type: "string", + }, + ], + name: "rpc", + outputs: [ + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "method", + type: "string", + }, + { + internalType: "string", + name: "params", + type: "string", + }, + ], + name: "rpc", + outputs: [ + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "rpcAlias", + type: "string", + }, + ], + name: "rpcUrl", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "rpcUrlStructs", + outputs: [ + { + components: [ + { + internalType: "string", + name: "key", + type: "string", + }, + { + internalType: "string", + name: "url", + type: "string", + }, + ], + internalType: "struct VmSafe.Rpc[]", + name: "urls", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "rpcUrls", + outputs: [ + { + internalType: "string[2][]", + name: "urls", + type: "string[2][]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "address[]", + name: "values", + type: "address[]", + }, + ], + name: "serializeAddress", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "address", + name: "value", + type: "address", + }, + ], + name: "serializeAddress", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "bool[]", + name: "values", + type: "bool[]", + }, + ], + name: "serializeBool", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "bool", + name: "value", + type: "bool", + }, + ], + name: "serializeBool", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "bytes[]", + name: "values", + type: "bytes[]", + }, + ], + name: "serializeBytes", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "bytes", + name: "value", + type: "bytes", + }, + ], + name: "serializeBytes", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "bytes32[]", + name: "values", + type: "bytes32[]", + }, + ], + name: "serializeBytes32", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "bytes32", + name: "value", + type: "bytes32", + }, + ], + name: "serializeBytes32", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "int256", + name: "value", + type: "int256", + }, + ], + name: "serializeInt", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "int256[]", + name: "values", + type: "int256[]", + }, + ], + name: "serializeInt", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "value", + type: "string", + }, + ], + name: "serializeJson", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "typeDescription", + type: "string", + }, + { + internalType: "bytes", + name: "value", + type: "bytes", + }, + ], + name: "serializeJsonType", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "string", + name: "typeDescription", + type: "string", + }, + { + internalType: "bytes", + name: "value", + type: "bytes", + }, + ], + name: "serializeJsonType", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "string[]", + name: "values", + type: "string[]", + }, + ], + name: "serializeString", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "string", + name: "value", + type: "string", + }, + ], + name: "serializeString", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "serializeUint", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "uint256[]", + name: "values", + type: "uint256[]", + }, + ], + name: "serializeUint", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "serializeUintToHex", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "value", + type: "string", + }, + ], + name: "setEnv", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "digest", + type: "bytes32", + }, + ], + name: "sign", + outputs: [ + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "signer", + type: "address", + }, + { + internalType: "bytes32", + name: "digest", + type: "bytes32", + }, + ], + name: "sign", + outputs: [ + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + { + internalType: "uint256", + name: "publicKeyX", + type: "uint256", + }, + { + internalType: "uint256", + name: "publicKeyY", + type: "uint256", + }, + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + internalType: "struct VmSafe.Wallet", + name: "wallet", + type: "tuple", + }, + { + internalType: "bytes32", + name: "digest", + type: "bytes32", + }, + ], + name: "sign", + outputs: [ + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + { + internalType: "bytes32", + name: "digest", + type: "bytes32", + }, + ], + name: "sign", + outputs: [ + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + { + internalType: "uint256", + name: "publicKeyX", + type: "uint256", + }, + { + internalType: "uint256", + name: "publicKeyY", + type: "uint256", + }, + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + internalType: "struct VmSafe.Wallet", + name: "wallet", + type: "tuple", + }, + { + internalType: "bytes32", + name: "digest", + type: "bytes32", + }, + ], + name: "signCompact", + outputs: [ + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "vs", + type: "bytes32", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "signer", + type: "address", + }, + { + internalType: "bytes32", + name: "digest", + type: "bytes32", + }, + ], + name: "signCompact", + outputs: [ + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "vs", + type: "bytes32", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "digest", + type: "bytes32", + }, + ], + name: "signCompact", + outputs: [ + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "vs", + type: "bytes32", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + { + internalType: "bytes32", + name: "digest", + type: "bytes32", + }, + ], + name: "signCompact", + outputs: [ + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "vs", + type: "bytes32", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + { + internalType: "bytes32", + name: "digest", + type: "bytes32", + }, + ], + name: "signP256", + outputs: [ + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "duration", + type: "uint256", + }, + ], + name: "sleep", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "input", + type: "string", + }, + { + internalType: "string", + name: "delimiter", + type: "string", + }, + ], + name: "split", + outputs: [ + { + internalType: "string[]", + name: "outputs", + type: "string[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [], + name: "startBroadcast", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "signer", + type: "address", + }, + ], + name: "startBroadcast", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + name: "startBroadcast", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "startMappingRecording", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "startStateDiffRecording", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "stopAndReturnStateDiff", + outputs: [ + { + components: [ + { + components: [ + { + internalType: "uint256", + name: "forkId", + type: "uint256", + }, + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + ], + internalType: "struct VmSafe.ChainInfo", + name: "chainInfo", + type: "tuple", + }, + { + internalType: "enum VmSafe.AccountAccessKind", + name: "kind", + type: "uint8", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + { + internalType: "address", + name: "accessor", + type: "address", + }, + { + internalType: "bool", + name: "initialized", + type: "bool", + }, + { + internalType: "uint256", + name: "oldBalance", + type: "uint256", + }, + { + internalType: "uint256", + name: "newBalance", + type: "uint256", + }, + { + internalType: "bytes", + name: "deployedCode", + type: "bytes", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + { + internalType: "bool", + name: "reverted", + type: "bool", + }, + { + components: [ + { + internalType: "address", + name: "account", + type: "address", + }, + { + internalType: "bytes32", + name: "slot", + type: "bytes32", + }, + { + internalType: "bool", + name: "isWrite", + type: "bool", + }, + { + internalType: "bytes32", + name: "previousValue", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "newValue", + type: "bytes32", + }, + { + internalType: "bool", + name: "reverted", + type: "bool", + }, + ], + internalType: "struct VmSafe.StorageAccess[]", + name: "storageAccesses", + type: "tuple[]", + }, + { + internalType: "uint64", + name: "depth", + type: "uint64", + }, + ], + internalType: "struct VmSafe.AccountAccess[]", + name: "accountAccesses", + type: "tuple[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "stopBroadcast", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "stopMappingRecording", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "data", + type: "string", + }, + ], + name: "toBase64", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "toBase64", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "data", + type: "string", + }, + ], + name: "toBase64URL", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "toBase64URL", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "input", + type: "string", + }, + ], + name: "toLowercase", + outputs: [ + { + internalType: "string", + name: "output", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "value", + type: "address", + }, + ], + name: "toString", + outputs: [ + { + internalType: "string", + name: "stringifiedValue", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "toString", + outputs: [ + { + internalType: "string", + name: "stringifiedValue", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "value", + type: "bytes", + }, + ], + name: "toString", + outputs: [ + { + internalType: "string", + name: "stringifiedValue", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bool", + name: "value", + type: "bool", + }, + ], + name: "toString", + outputs: [ + { + internalType: "string", + name: "stringifiedValue", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "value", + type: "int256", + }, + ], + name: "toString", + outputs: [ + { + internalType: "string", + name: "stringifiedValue", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "value", + type: "bytes32", + }, + ], + name: "toString", + outputs: [ + { + internalType: "string", + name: "stringifiedValue", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "input", + type: "string", + }, + ], + name: "toUppercase", + outputs: [ + { + internalType: "string", + name: "output", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "input", + type: "string", + }, + ], + name: "trim", + outputs: [ + { + internalType: "string", + name: "output", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string[]", + name: "commandInput", + type: "string[]", + }, + ], + name: "tryFfi", + outputs: [ + { + components: [ + { + internalType: "int32", + name: "exitCode", + type: "int32", + }, + { + internalType: "bytes", + name: "stdout", + type: "bytes", + }, + { + internalType: "bytes", + name: "stderr", + type: "bytes", + }, + ], + internalType: "struct VmSafe.FfiResult", + name: "result", + type: "tuple", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "unixTime", + outputs: [ + { + internalType: "uint256", + name: "milliseconds", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + { + internalType: "string", + name: "data", + type: "string", + }, + ], + name: "writeFile", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "writeFileBinary", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "path", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + ], + name: "writeJson", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "path", + type: "string", + }, + ], + name: "writeJson", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + { + internalType: "string", + name: "data", + type: "string", + }, + ], + name: "writeLine", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "path", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + ], + name: "writeToml", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "path", + type: "string", + }, + ], + name: "writeToml", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +export class VmSafe__factory { + static readonly abi = _abi; + static createInterface(): VmSafeInterface { + return new Interface(_abi) as VmSafeInterface; + } + static connect(address: string, runner?: ContractRunner | null): VmSafe { + return new Contract(address, _abi, runner) as unknown as VmSafe; + } +} diff --git a/typechain-types/factories/src/Upgrades.sol/Vm__factory.ts b/typechain-types/factories/src/Upgrades.sol/Vm__factory.ts new file mode 100644 index 0000000..4d870e2 --- /dev/null +++ b/typechain-types/factories/src/Upgrades.sol/Vm__factory.ts @@ -0,0 +1,9124 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { Vm, VmInterface } from "../../../src/Upgrades.sol/Vm"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "target", + type: "address", + }, + ], + name: "accesses", + outputs: [ + { + internalType: "bytes32[]", + name: "readSlots", + type: "bytes32[]", + }, + { + internalType: "bytes32[]", + name: "writeSlots", + type: "bytes32[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "activeFork", + outputs: [ + { + internalType: "uint256", + name: "forkId", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + name: "addr", + outputs: [ + { + internalType: "address", + name: "keyAddr", + type: "address", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "allowCheatcodes", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "maxDelta", + type: "uint256", + }, + ], + name: "assertApproxEqAbs", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "maxDelta", + type: "uint256", + }, + ], + name: "assertApproxEqAbs", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "maxDelta", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertApproxEqAbs", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "maxDelta", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertApproxEqAbs", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "maxDelta", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertApproxEqAbsDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "maxDelta", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertApproxEqAbsDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "maxDelta", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertApproxEqAbsDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "maxDelta", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertApproxEqAbsDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "maxPercentDelta", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertApproxEqRel", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "maxPercentDelta", + type: "uint256", + }, + ], + name: "assertApproxEqRel", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "maxPercentDelta", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertApproxEqRel", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "maxPercentDelta", + type: "uint256", + }, + ], + name: "assertApproxEqRel", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "maxPercentDelta", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertApproxEqRelDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "maxPercentDelta", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertApproxEqRelDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "maxPercentDelta", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertApproxEqRelDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "maxPercentDelta", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertApproxEqRelDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32[]", + name: "left", + type: "bytes32[]", + }, + { + internalType: "bytes32[]", + name: "right", + type: "bytes32[]", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256[]", + name: "left", + type: "int256[]", + }, + { + internalType: "int256[]", + name: "right", + type: "int256[]", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "left", + type: "address", + }, + { + internalType: "address", + name: "right", + type: "address", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "left", + type: "string", + }, + { + internalType: "string", + name: "right", + type: "string", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address[]", + name: "left", + type: "address[]", + }, + { + internalType: "address[]", + name: "right", + type: "address[]", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address[]", + name: "left", + type: "address[]", + }, + { + internalType: "address[]", + name: "right", + type: "address[]", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bool", + name: "left", + type: "bool", + }, + { + internalType: "bool", + name: "right", + type: "bool", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "left", + type: "address", + }, + { + internalType: "address", + name: "right", + type: "address", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256[]", + name: "left", + type: "uint256[]", + }, + { + internalType: "uint256[]", + name: "right", + type: "uint256[]", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bool[]", + name: "left", + type: "bool[]", + }, + { + internalType: "bool[]", + name: "right", + type: "bool[]", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256[]", + name: "left", + type: "int256[]", + }, + { + internalType: "int256[]", + name: "right", + type: "int256[]", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "left", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "right", + type: "bytes32", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256[]", + name: "left", + type: "uint256[]", + }, + { + internalType: "uint256[]", + name: "right", + type: "uint256[]", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "left", + type: "bytes", + }, + { + internalType: "bytes", + name: "right", + type: "bytes", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "left", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "right", + type: "bytes32", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string[]", + name: "left", + type: "string[]", + }, + { + internalType: "string[]", + name: "right", + type: "string[]", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32[]", + name: "left", + type: "bytes32[]", + }, + { + internalType: "bytes32[]", + name: "right", + type: "bytes32[]", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "left", + type: "bytes", + }, + { + internalType: "bytes", + name: "right", + type: "bytes", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bool[]", + name: "left", + type: "bool[]", + }, + { + internalType: "bool[]", + name: "right", + type: "bool[]", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes[]", + name: "left", + type: "bytes[]", + }, + { + internalType: "bytes[]", + name: "right", + type: "bytes[]", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string[]", + name: "left", + type: "string[]", + }, + { + internalType: "string[]", + name: "right", + type: "string[]", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "left", + type: "string", + }, + { + internalType: "string", + name: "right", + type: "string", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes[]", + name: "left", + type: "bytes[]", + }, + { + internalType: "bytes[]", + name: "right", + type: "bytes[]", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bool", + name: "left", + type: "bool", + }, + { + internalType: "bool", + name: "right", + type: "bool", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + ], + name: "assertEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertEqDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertEqDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEqDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertEqDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bool", + name: "condition", + type: "bool", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertFalse", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bool", + name: "condition", + type: "bool", + }, + ], + name: "assertFalse", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + ], + name: "assertGe", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertGe", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + ], + name: "assertGe", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertGe", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertGeDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertGeDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertGeDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertGeDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + ], + name: "assertGt", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertGt", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + ], + name: "assertGt", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertGt", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertGtDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertGtDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertGtDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertGtDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertLe", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + ], + name: "assertLe", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + ], + name: "assertLe", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertLe", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertLeDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertLeDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertLeDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertLeDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + ], + name: "assertLt", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertLt", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertLt", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + ], + name: "assertLt", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertLtDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertLtDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertLtDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertLtDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32[]", + name: "left", + type: "bytes32[]", + }, + { + internalType: "bytes32[]", + name: "right", + type: "bytes32[]", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256[]", + name: "left", + type: "int256[]", + }, + { + internalType: "int256[]", + name: "right", + type: "int256[]", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bool", + name: "left", + type: "bool", + }, + { + internalType: "bool", + name: "right", + type: "bool", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes[]", + name: "left", + type: "bytes[]", + }, + { + internalType: "bytes[]", + name: "right", + type: "bytes[]", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bool", + name: "left", + type: "bool", + }, + { + internalType: "bool", + name: "right", + type: "bool", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bool[]", + name: "left", + type: "bool[]", + }, + { + internalType: "bool[]", + name: "right", + type: "bool[]", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "left", + type: "bytes", + }, + { + internalType: "bytes", + name: "right", + type: "bytes", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address[]", + name: "left", + type: "address[]", + }, + { + internalType: "address[]", + name: "right", + type: "address[]", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256[]", + name: "left", + type: "uint256[]", + }, + { + internalType: "uint256[]", + name: "right", + type: "uint256[]", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bool[]", + name: "left", + type: "bool[]", + }, + { + internalType: "bool[]", + name: "right", + type: "bool[]", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "left", + type: "string", + }, + { + internalType: "string", + name: "right", + type: "string", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address[]", + name: "left", + type: "address[]", + }, + { + internalType: "address[]", + name: "right", + type: "address[]", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "left", + type: "string", + }, + { + internalType: "string", + name: "right", + type: "string", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "left", + type: "address", + }, + { + internalType: "address", + name: "right", + type: "address", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "left", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "right", + type: "bytes32", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "left", + type: "bytes", + }, + { + internalType: "bytes", + name: "right", + type: "bytes", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256[]", + name: "left", + type: "uint256[]", + }, + { + internalType: "uint256[]", + name: "right", + type: "uint256[]", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "left", + type: "address", + }, + { + internalType: "address", + name: "right", + type: "address", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "left", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "right", + type: "bytes32", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string[]", + name: "left", + type: "string[]", + }, + { + internalType: "string[]", + name: "right", + type: "string[]", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32[]", + name: "left", + type: "bytes32[]", + }, + { + internalType: "bytes32[]", + name: "right", + type: "bytes32[]", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string[]", + name: "left", + type: "string[]", + }, + { + internalType: "string[]", + name: "right", + type: "string[]", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256[]", + name: "left", + type: "int256[]", + }, + { + internalType: "int256[]", + name: "right", + type: "int256[]", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes[]", + name: "left", + type: "bytes[]", + }, + { + internalType: "bytes[]", + name: "right", + type: "bytes[]", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + ], + name: "assertNotEq", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertNotEqDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "left", + type: "int256", + }, + { + internalType: "int256", + name: "right", + type: "int256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEqDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + ], + name: "assertNotEqDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "left", + type: "uint256", + }, + { + internalType: "uint256", + name: "right", + type: "uint256", + }, + { + internalType: "uint256", + name: "decimals", + type: "uint256", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertNotEqDecimal", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bool", + name: "condition", + type: "bool", + }, + ], + name: "assertTrue", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bool", + name: "condition", + type: "bool", + }, + { + internalType: "string", + name: "error", + type: "string", + }, + ], + name: "assertTrue", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bool", + name: "condition", + type: "bool", + }, + ], + name: "assume", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "newBlobBaseFee", + type: "uint256", + }, + ], + name: "blobBaseFee", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32[]", + name: "hashes", + type: "bytes32[]", + }, + ], + name: "blobhashes", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "char", + type: "string", + }, + ], + name: "breakpoint", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "char", + type: "string", + }, + { + internalType: "bool", + name: "value", + type: "bool", + }, + ], + name: "breakpoint", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "broadcast", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "signer", + type: "address", + }, + ], + name: "broadcast", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + name: "broadcast", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "broadcastRawTransaction", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "newChainId", + type: "uint256", + }, + ], + name: "chainId", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "clearMockedCalls", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + ], + name: "closeFile", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "newCoinbase", + type: "address", + }, + ], + name: "coinbase", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "salt", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "initCodeHash", + type: "bytes32", + }, + ], + name: "computeCreate2Address", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "salt", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "initCodeHash", + type: "bytes32", + }, + { + internalType: "address", + name: "deployer", + type: "address", + }, + ], + name: "computeCreate2Address", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "deployer", + type: "address", + }, + { + internalType: "uint256", + name: "nonce", + type: "uint256", + }, + ], + name: "computeCreateAddress", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "from", + type: "string", + }, + { + internalType: "string", + name: "to", + type: "string", + }, + ], + name: "copyFile", + outputs: [ + { + internalType: "uint64", + name: "copied", + type: "uint64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + { + internalType: "bool", + name: "recursive", + type: "bool", + }, + ], + name: "createDir", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "urlOrAlias", + type: "string", + }, + ], + name: "createFork", + outputs: [ + { + internalType: "uint256", + name: "forkId", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "urlOrAlias", + type: "string", + }, + { + internalType: "uint256", + name: "blockNumber", + type: "uint256", + }, + ], + name: "createFork", + outputs: [ + { + internalType: "uint256", + name: "forkId", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "urlOrAlias", + type: "string", + }, + { + internalType: "bytes32", + name: "txHash", + type: "bytes32", + }, + ], + name: "createFork", + outputs: [ + { + internalType: "uint256", + name: "forkId", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "urlOrAlias", + type: "string", + }, + { + internalType: "uint256", + name: "blockNumber", + type: "uint256", + }, + ], + name: "createSelectFork", + outputs: [ + { + internalType: "uint256", + name: "forkId", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "urlOrAlias", + type: "string", + }, + { + internalType: "bytes32", + name: "txHash", + type: "bytes32", + }, + ], + name: "createSelectFork", + outputs: [ + { + internalType: "uint256", + name: "forkId", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "urlOrAlias", + type: "string", + }, + ], + name: "createSelectFork", + outputs: [ + { + internalType: "uint256", + name: "forkId", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "walletLabel", + type: "string", + }, + ], + name: "createWallet", + outputs: [ + { + components: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + { + internalType: "uint256", + name: "publicKeyX", + type: "uint256", + }, + { + internalType: "uint256", + name: "publicKeyY", + type: "uint256", + }, + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + internalType: "struct VmSafe.Wallet", + name: "wallet", + type: "tuple", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + name: "createWallet", + outputs: [ + { + components: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + { + internalType: "uint256", + name: "publicKeyX", + type: "uint256", + }, + { + internalType: "uint256", + name: "publicKeyY", + type: "uint256", + }, + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + internalType: "struct VmSafe.Wallet", + name: "wallet", + type: "tuple", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + { + internalType: "string", + name: "walletLabel", + type: "string", + }, + ], + name: "createWallet", + outputs: [ + { + components: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + { + internalType: "uint256", + name: "publicKeyX", + type: "uint256", + }, + { + internalType: "uint256", + name: "publicKeyY", + type: "uint256", + }, + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + internalType: "struct VmSafe.Wallet", + name: "wallet", + type: "tuple", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + { + internalType: "uint256", + name: "newBalance", + type: "uint256", + }, + ], + name: "deal", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "snapshotId", + type: "uint256", + }, + ], + name: "deleteSnapshot", + outputs: [ + { + internalType: "bool", + name: "success", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "deleteSnapshots", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "artifactPath", + type: "string", + }, + { + internalType: "bytes", + name: "constructorArgs", + type: "bytes", + }, + ], + name: "deployCode", + outputs: [ + { + internalType: "address", + name: "deployedAddress", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "artifactPath", + type: "string", + }, + ], + name: "deployCode", + outputs: [ + { + internalType: "address", + name: "deployedAddress", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "mnemonic", + type: "string", + }, + { + internalType: "string", + name: "derivationPath", + type: "string", + }, + { + internalType: "uint32", + name: "index", + type: "uint32", + }, + { + internalType: "string", + name: "language", + type: "string", + }, + ], + name: "deriveKey", + outputs: [ + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "mnemonic", + type: "string", + }, + { + internalType: "uint32", + name: "index", + type: "uint32", + }, + { + internalType: "string", + name: "language", + type: "string", + }, + ], + name: "deriveKey", + outputs: [ + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "mnemonic", + type: "string", + }, + { + internalType: "uint32", + name: "index", + type: "uint32", + }, + ], + name: "deriveKey", + outputs: [ + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "mnemonic", + type: "string", + }, + { + internalType: "string", + name: "derivationPath", + type: "string", + }, + { + internalType: "uint32", + name: "index", + type: "uint32", + }, + ], + name: "deriveKey", + outputs: [ + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "newDifficulty", + type: "uint256", + }, + ], + name: "difficulty", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "pathToStateJson", + type: "string", + }, + ], + name: "dumpState", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + ], + name: "ensNamehash", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + ], + name: "envAddress", + outputs: [ + { + internalType: "address", + name: "value", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "delim", + type: "string", + }, + ], + name: "envAddress", + outputs: [ + { + internalType: "address[]", + name: "value", + type: "address[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + ], + name: "envBool", + outputs: [ + { + internalType: "bool", + name: "value", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "delim", + type: "string", + }, + ], + name: "envBool", + outputs: [ + { + internalType: "bool[]", + name: "value", + type: "bool[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + ], + name: "envBytes", + outputs: [ + { + internalType: "bytes", + name: "value", + type: "bytes", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "delim", + type: "string", + }, + ], + name: "envBytes", + outputs: [ + { + internalType: "bytes[]", + name: "value", + type: "bytes[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "delim", + type: "string", + }, + ], + name: "envBytes32", + outputs: [ + { + internalType: "bytes32[]", + name: "value", + type: "bytes32[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + ], + name: "envBytes32", + outputs: [ + { + internalType: "bytes32", + name: "value", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + ], + name: "envExists", + outputs: [ + { + internalType: "bool", + name: "result", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "delim", + type: "string", + }, + ], + name: "envInt", + outputs: [ + { + internalType: "int256[]", + name: "value", + type: "int256[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + ], + name: "envInt", + outputs: [ + { + internalType: "int256", + name: "value", + type: "int256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "delim", + type: "string", + }, + { + internalType: "bytes32[]", + name: "defaultValue", + type: "bytes32[]", + }, + ], + name: "envOr", + outputs: [ + { + internalType: "bytes32[]", + name: "value", + type: "bytes32[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "delim", + type: "string", + }, + { + internalType: "int256[]", + name: "defaultValue", + type: "int256[]", + }, + ], + name: "envOr", + outputs: [ + { + internalType: "int256[]", + name: "value", + type: "int256[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "bool", + name: "defaultValue", + type: "bool", + }, + ], + name: "envOr", + outputs: [ + { + internalType: "bool", + name: "value", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "address", + name: "defaultValue", + type: "address", + }, + ], + name: "envOr", + outputs: [ + { + internalType: "address", + name: "value", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "uint256", + name: "defaultValue", + type: "uint256", + }, + ], + name: "envOr", + outputs: [ + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "delim", + type: "string", + }, + { + internalType: "bytes[]", + name: "defaultValue", + type: "bytes[]", + }, + ], + name: "envOr", + outputs: [ + { + internalType: "bytes[]", + name: "value", + type: "bytes[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "delim", + type: "string", + }, + { + internalType: "uint256[]", + name: "defaultValue", + type: "uint256[]", + }, + ], + name: "envOr", + outputs: [ + { + internalType: "uint256[]", + name: "value", + type: "uint256[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "delim", + type: "string", + }, + { + internalType: "string[]", + name: "defaultValue", + type: "string[]", + }, + ], + name: "envOr", + outputs: [ + { + internalType: "string[]", + name: "value", + type: "string[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "bytes", + name: "defaultValue", + type: "bytes", + }, + ], + name: "envOr", + outputs: [ + { + internalType: "bytes", + name: "value", + type: "bytes", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "bytes32", + name: "defaultValue", + type: "bytes32", + }, + ], + name: "envOr", + outputs: [ + { + internalType: "bytes32", + name: "value", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "int256", + name: "defaultValue", + type: "int256", + }, + ], + name: "envOr", + outputs: [ + { + internalType: "int256", + name: "value", + type: "int256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "delim", + type: "string", + }, + { + internalType: "address[]", + name: "defaultValue", + type: "address[]", + }, + ], + name: "envOr", + outputs: [ + { + internalType: "address[]", + name: "value", + type: "address[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "defaultValue", + type: "string", + }, + ], + name: "envOr", + outputs: [ + { + internalType: "string", + name: "value", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "delim", + type: "string", + }, + { + internalType: "bool[]", + name: "defaultValue", + type: "bool[]", + }, + ], + name: "envOr", + outputs: [ + { + internalType: "bool[]", + name: "value", + type: "bool[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "delim", + type: "string", + }, + ], + name: "envString", + outputs: [ + { + internalType: "string[]", + name: "value", + type: "string[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + ], + name: "envString", + outputs: [ + { + internalType: "string", + name: "value", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + ], + name: "envUint", + outputs: [ + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "delim", + type: "string", + }, + ], + name: "envUint", + outputs: [ + { + internalType: "uint256[]", + name: "value", + type: "uint256[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "target", + type: "address", + }, + { + internalType: "bytes", + name: "newRuntimeBytecode", + type: "bytes", + }, + ], + name: "etch", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "fromBlock", + type: "uint256", + }, + { + internalType: "uint256", + name: "toBlock", + type: "uint256", + }, + { + internalType: "address", + name: "target", + type: "address", + }, + { + internalType: "bytes32[]", + name: "topics", + type: "bytes32[]", + }, + ], + name: "eth_getLogs", + outputs: [ + { + components: [ + { + internalType: "address", + name: "emitter", + type: "address", + }, + { + internalType: "bytes32[]", + name: "topics", + type: "bytes32[]", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + { + internalType: "bytes32", + name: "blockHash", + type: "bytes32", + }, + { + internalType: "uint64", + name: "blockNumber", + type: "uint64", + }, + { + internalType: "bytes32", + name: "transactionHash", + type: "bytes32", + }, + { + internalType: "uint64", + name: "transactionIndex", + type: "uint64", + }, + { + internalType: "uint256", + name: "logIndex", + type: "uint256", + }, + { + internalType: "bool", + name: "removed", + type: "bool", + }, + ], + internalType: "struct VmSafe.EthGetLogs[]", + name: "logs", + type: "tuple[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + ], + name: "exists", + outputs: [ + { + internalType: "bool", + name: "result", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "callee", + type: "address", + }, + { + internalType: "uint256", + name: "msgValue", + type: "uint256", + }, + { + internalType: "uint64", + name: "gas", + type: "uint64", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "expectCall", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "callee", + type: "address", + }, + { + internalType: "uint256", + name: "msgValue", + type: "uint256", + }, + { + internalType: "uint64", + name: "gas", + type: "uint64", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + { + internalType: "uint64", + name: "count", + type: "uint64", + }, + ], + name: "expectCall", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "callee", + type: "address", + }, + { + internalType: "uint256", + name: "msgValue", + type: "uint256", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + { + internalType: "uint64", + name: "count", + type: "uint64", + }, + ], + name: "expectCall", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "callee", + type: "address", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "expectCall", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "callee", + type: "address", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + { + internalType: "uint64", + name: "count", + type: "uint64", + }, + ], + name: "expectCall", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "callee", + type: "address", + }, + { + internalType: "uint256", + name: "msgValue", + type: "uint256", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "expectCall", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "callee", + type: "address", + }, + { + internalType: "uint256", + name: "msgValue", + type: "uint256", + }, + { + internalType: "uint64", + name: "minGas", + type: "uint64", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "expectCallMinGas", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "callee", + type: "address", + }, + { + internalType: "uint256", + name: "msgValue", + type: "uint256", + }, + { + internalType: "uint64", + name: "minGas", + type: "uint64", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + { + internalType: "uint64", + name: "count", + type: "uint64", + }, + ], + name: "expectCallMinGas", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "expectEmit", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bool", + name: "checkTopic1", + type: "bool", + }, + { + internalType: "bool", + name: "checkTopic2", + type: "bool", + }, + { + internalType: "bool", + name: "checkTopic3", + type: "bool", + }, + { + internalType: "bool", + name: "checkData", + type: "bool", + }, + ], + name: "expectEmit", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bool", + name: "checkTopic1", + type: "bool", + }, + { + internalType: "bool", + name: "checkTopic2", + type: "bool", + }, + { + internalType: "bool", + name: "checkTopic3", + type: "bool", + }, + { + internalType: "bool", + name: "checkData", + type: "bool", + }, + { + internalType: "address", + name: "emitter", + type: "address", + }, + ], + name: "expectEmit", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "emitter", + type: "address", + }, + ], + name: "expectEmit", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "expectEmitAnonymous", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "emitter", + type: "address", + }, + ], + name: "expectEmitAnonymous", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bool", + name: "checkTopic0", + type: "bool", + }, + { + internalType: "bool", + name: "checkTopic1", + type: "bool", + }, + { + internalType: "bool", + name: "checkTopic2", + type: "bool", + }, + { + internalType: "bool", + name: "checkTopic3", + type: "bool", + }, + { + internalType: "bool", + name: "checkData", + type: "bool", + }, + { + internalType: "address", + name: "emitter", + type: "address", + }, + ], + name: "expectEmitAnonymous", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bool", + name: "checkTopic0", + type: "bool", + }, + { + internalType: "bool", + name: "checkTopic1", + type: "bool", + }, + { + internalType: "bool", + name: "checkTopic2", + type: "bool", + }, + { + internalType: "bool", + name: "checkTopic3", + type: "bool", + }, + { + internalType: "bool", + name: "checkData", + type: "bool", + }, + ], + name: "expectEmitAnonymous", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes4", + name: "revertData", + type: "bytes4", + }, + ], + name: "expectRevert", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "revertData", + type: "bytes", + }, + ], + name: "expectRevert", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "expectRevert", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint64", + name: "min", + type: "uint64", + }, + { + internalType: "uint64", + name: "max", + type: "uint64", + }, + ], + name: "expectSafeMemory", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint64", + name: "min", + type: "uint64", + }, + { + internalType: "uint64", + name: "max", + type: "uint64", + }, + ], + name: "expectSafeMemoryCall", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "newBasefee", + type: "uint256", + }, + ], + name: "fee", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string[]", + name: "commandInput", + type: "string[]", + }, + ], + name: "ffi", + outputs: [ + { + internalType: "bytes", + name: "result", + type: "bytes", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + ], + name: "fsMetadata", + outputs: [ + { + components: [ + { + internalType: "bool", + name: "isDir", + type: "bool", + }, + { + internalType: "bool", + name: "isSymlink", + type: "bool", + }, + { + internalType: "uint256", + name: "length", + type: "uint256", + }, + { + internalType: "bool", + name: "readOnly", + type: "bool", + }, + { + internalType: "uint256", + name: "modified", + type: "uint256", + }, + { + internalType: "uint256", + name: "accessed", + type: "uint256", + }, + { + internalType: "uint256", + name: "created", + type: "uint256", + }, + ], + internalType: "struct VmSafe.FsMetadata", + name: "metadata", + type: "tuple", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "getBlobBaseFee", + outputs: [ + { + internalType: "uint256", + name: "blobBaseFee", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "getBlobhashes", + outputs: [ + { + internalType: "bytes32[]", + name: "hashes", + type: "bytes32[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "getBlockNumber", + outputs: [ + { + internalType: "uint256", + name: "height", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "getBlockTimestamp", + outputs: [ + { + internalType: "uint256", + name: "timestamp", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "artifactPath", + type: "string", + }, + ], + name: "getCode", + outputs: [ + { + internalType: "bytes", + name: "creationBytecode", + type: "bytes", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "artifactPath", + type: "string", + }, + ], + name: "getDeployedCode", + outputs: [ + { + internalType: "bytes", + name: "runtimeBytecode", + type: "bytes", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "getFoundryVersion", + outputs: [ + { + internalType: "string", + name: "version", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "getLabel", + outputs: [ + { + internalType: "string", + name: "currentLabel", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "target", + type: "address", + }, + { + internalType: "bytes32", + name: "elementSlot", + type: "bytes32", + }, + ], + name: "getMappingKeyAndParentOf", + outputs: [ + { + internalType: "bool", + name: "found", + type: "bool", + }, + { + internalType: "bytes32", + name: "key", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "parent", + type: "bytes32", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "target", + type: "address", + }, + { + internalType: "bytes32", + name: "mappingSlot", + type: "bytes32", + }, + ], + name: "getMappingLength", + outputs: [ + { + internalType: "uint256", + name: "length", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "target", + type: "address", + }, + { + internalType: "bytes32", + name: "mappingSlot", + type: "bytes32", + }, + { + internalType: "uint256", + name: "idx", + type: "uint256", + }, + ], + name: "getMappingSlotAt", + outputs: [ + { + internalType: "bytes32", + name: "value", + type: "bytes32", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "getNonce", + outputs: [ + { + internalType: "uint64", + name: "nonce", + type: "uint64", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + { + internalType: "uint256", + name: "publicKeyX", + type: "uint256", + }, + { + internalType: "uint256", + name: "publicKeyY", + type: "uint256", + }, + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + internalType: "struct VmSafe.Wallet", + name: "wallet", + type: "tuple", + }, + ], + name: "getNonce", + outputs: [ + { + internalType: "uint64", + name: "nonce", + type: "uint64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "getRecordedLogs", + outputs: [ + { + components: [ + { + internalType: "bytes32[]", + name: "topics", + type: "bytes32[]", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + { + internalType: "address", + name: "emitter", + type: "address", + }, + ], + internalType: "struct VmSafe.Log[]", + name: "logs", + type: "tuple[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "input", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "indexOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "enum VmSafe.ForgeContext", + name: "context", + type: "uint8", + }, + ], + name: "isContext", + outputs: [ + { + internalType: "bool", + name: "result", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + ], + name: "isDir", + outputs: [ + { + internalType: "bool", + name: "result", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + ], + name: "isFile", + outputs: [ + { + internalType: "bool", + name: "result", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "isPersistent", + outputs: [ + { + internalType: "bool", + name: "persistent", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "keyExists", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "keyExistsJson", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "keyExistsToml", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + { + internalType: "string", + name: "newLabel", + type: "string", + }, + ], + name: "label", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "lastCallGas", + outputs: [ + { + components: [ + { + internalType: "uint64", + name: "gasLimit", + type: "uint64", + }, + { + internalType: "uint64", + name: "gasTotalUsed", + type: "uint64", + }, + { + internalType: "uint64", + name: "gasMemoryUsed", + type: "uint64", + }, + { + internalType: "int64", + name: "gasRefunded", + type: "int64", + }, + { + internalType: "uint64", + name: "gasRemaining", + type: "uint64", + }, + ], + internalType: "struct VmSafe.Gas", + name: "gas", + type: "tuple", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "target", + type: "address", + }, + { + internalType: "bytes32", + name: "slot", + type: "bytes32", + }, + ], + name: "load", + outputs: [ + { + internalType: "bytes32", + name: "data", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "pathToAllocsJson", + type: "string", + }, + ], + name: "loadAllocs", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address[]", + name: "accounts", + type: "address[]", + }, + ], + name: "makePersistent", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account0", + type: "address", + }, + { + internalType: "address", + name: "account1", + type: "address", + }, + ], + name: "makePersistent", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "makePersistent", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account0", + type: "address", + }, + { + internalType: "address", + name: "account1", + type: "address", + }, + { + internalType: "address", + name: "account2", + type: "address", + }, + ], + name: "makePersistent", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "callee", + type: "address", + }, + { + internalType: "uint256", + name: "msgValue", + type: "uint256", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + { + internalType: "bytes", + name: "returnData", + type: "bytes", + }, + ], + name: "mockCall", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "callee", + type: "address", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + { + internalType: "bytes", + name: "returnData", + type: "bytes", + }, + ], + name: "mockCall", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "callee", + type: "address", + }, + { + internalType: "uint256", + name: "msgValue", + type: "uint256", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + { + internalType: "bytes", + name: "revertData", + type: "bytes", + }, + ], + name: "mockCallRevert", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "callee", + type: "address", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + { + internalType: "bytes", + name: "revertData", + type: "bytes", + }, + ], + name: "mockCallRevert", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "stringifiedValue", + type: "string", + }, + ], + name: "parseAddress", + outputs: [ + { + internalType: "address", + name: "parsedValue", + type: "address", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "stringifiedValue", + type: "string", + }, + ], + name: "parseBool", + outputs: [ + { + internalType: "bool", + name: "parsedValue", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "stringifiedValue", + type: "string", + }, + ], + name: "parseBytes", + outputs: [ + { + internalType: "bytes", + name: "parsedValue", + type: "bytes", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "stringifiedValue", + type: "string", + }, + ], + name: "parseBytes32", + outputs: [ + { + internalType: "bytes32", + name: "parsedValue", + type: "bytes32", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "stringifiedValue", + type: "string", + }, + ], + name: "parseInt", + outputs: [ + { + internalType: "int256", + name: "parsedValue", + type: "int256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + name: "parseJson", + outputs: [ + { + internalType: "bytes", + name: "abiEncodedData", + type: "bytes", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJson", + outputs: [ + { + internalType: "bytes", + name: "abiEncodedData", + type: "bytes", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJsonAddress", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJsonAddressArray", + outputs: [ + { + internalType: "address[]", + name: "", + type: "address[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJsonBool", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJsonBoolArray", + outputs: [ + { + internalType: "bool[]", + name: "", + type: "bool[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJsonBytes", + outputs: [ + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJsonBytes32", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJsonBytes32Array", + outputs: [ + { + internalType: "bytes32[]", + name: "", + type: "bytes32[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJsonBytesArray", + outputs: [ + { + internalType: "bytes[]", + name: "", + type: "bytes[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJsonInt", + outputs: [ + { + internalType: "int256", + name: "", + type: "int256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJsonIntArray", + outputs: [ + { + internalType: "int256[]", + name: "", + type: "int256[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJsonKeys", + outputs: [ + { + internalType: "string[]", + name: "keys", + type: "string[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJsonString", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJsonStringArray", + outputs: [ + { + internalType: "string[]", + name: "", + type: "string[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "typeDescription", + type: "string", + }, + ], + name: "parseJsonType", + outputs: [ + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + { + internalType: "string", + name: "typeDescription", + type: "string", + }, + ], + name: "parseJsonType", + outputs: [ + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + { + internalType: "string", + name: "typeDescription", + type: "string", + }, + ], + name: "parseJsonTypeArray", + outputs: [ + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJsonUint", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseJsonUintArray", + outputs: [ + { + internalType: "uint256[]", + name: "", + type: "uint256[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseToml", + outputs: [ + { + internalType: "bytes", + name: "abiEncodedData", + type: "bytes", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + ], + name: "parseToml", + outputs: [ + { + internalType: "bytes", + name: "abiEncodedData", + type: "bytes", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseTomlAddress", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseTomlAddressArray", + outputs: [ + { + internalType: "address[]", + name: "", + type: "address[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseTomlBool", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseTomlBoolArray", + outputs: [ + { + internalType: "bool[]", + name: "", + type: "bool[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseTomlBytes", + outputs: [ + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseTomlBytes32", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseTomlBytes32Array", + outputs: [ + { + internalType: "bytes32[]", + name: "", + type: "bytes32[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseTomlBytesArray", + outputs: [ + { + internalType: "bytes[]", + name: "", + type: "bytes[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseTomlInt", + outputs: [ + { + internalType: "int256", + name: "", + type: "int256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseTomlIntArray", + outputs: [ + { + internalType: "int256[]", + name: "", + type: "int256[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseTomlKeys", + outputs: [ + { + internalType: "string[]", + name: "keys", + type: "string[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseTomlString", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseTomlStringArray", + outputs: [ + { + internalType: "string[]", + name: "", + type: "string[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseTomlUint", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "toml", + type: "string", + }, + { + internalType: "string", + name: "key", + type: "string", + }, + ], + name: "parseTomlUintArray", + outputs: [ + { + internalType: "uint256[]", + name: "", + type: "uint256[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "stringifiedValue", + type: "string", + }, + ], + name: "parseUint", + outputs: [ + { + internalType: "uint256", + name: "parsedValue", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [], + name: "pauseGasMetering", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "msgSender", + type: "address", + }, + { + internalType: "address", + name: "txOrigin", + type: "address", + }, + ], + name: "prank", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "msgSender", + type: "address", + }, + ], + name: "prank", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "newPrevrandao", + type: "bytes32", + }, + ], + name: "prevrandao", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "newPrevrandao", + type: "uint256", + }, + ], + name: "prevrandao", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "projectRoot", + outputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "promptText", + type: "string", + }, + ], + name: "prompt", + outputs: [ + { + internalType: "string", + name: "input", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "promptText", + type: "string", + }, + ], + name: "promptAddress", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "promptText", + type: "string", + }, + ], + name: "promptSecret", + outputs: [ + { + internalType: "string", + name: "input", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "promptText", + type: "string", + }, + ], + name: "promptSecretUint", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "promptText", + type: "string", + }, + ], + name: "promptUint", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "randomAddress", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "randomUint", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "min", + type: "uint256", + }, + { + internalType: "uint256", + name: "max", + type: "uint256", + }, + ], + name: "randomUint", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "readCallers", + outputs: [ + { + internalType: "enum VmSafe.CallerMode", + name: "callerMode", + type: "uint8", + }, + { + internalType: "address", + name: "msgSender", + type: "address", + }, + { + internalType: "address", + name: "txOrigin", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + { + internalType: "uint64", + name: "maxDepth", + type: "uint64", + }, + ], + name: "readDir", + outputs: [ + { + components: [ + { + internalType: "string", + name: "errorMessage", + type: "string", + }, + { + internalType: "string", + name: "path", + type: "string", + }, + { + internalType: "uint64", + name: "depth", + type: "uint64", + }, + { + internalType: "bool", + name: "isDir", + type: "bool", + }, + { + internalType: "bool", + name: "isSymlink", + type: "bool", + }, + ], + internalType: "struct VmSafe.DirEntry[]", + name: "entries", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + { + internalType: "uint64", + name: "maxDepth", + type: "uint64", + }, + { + internalType: "bool", + name: "followLinks", + type: "bool", + }, + ], + name: "readDir", + outputs: [ + { + components: [ + { + internalType: "string", + name: "errorMessage", + type: "string", + }, + { + internalType: "string", + name: "path", + type: "string", + }, + { + internalType: "uint64", + name: "depth", + type: "uint64", + }, + { + internalType: "bool", + name: "isDir", + type: "bool", + }, + { + internalType: "bool", + name: "isSymlink", + type: "bool", + }, + ], + internalType: "struct VmSafe.DirEntry[]", + name: "entries", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + ], + name: "readDir", + outputs: [ + { + components: [ + { + internalType: "string", + name: "errorMessage", + type: "string", + }, + { + internalType: "string", + name: "path", + type: "string", + }, + { + internalType: "uint64", + name: "depth", + type: "uint64", + }, + { + internalType: "bool", + name: "isDir", + type: "bool", + }, + { + internalType: "bool", + name: "isSymlink", + type: "bool", + }, + ], + internalType: "struct VmSafe.DirEntry[]", + name: "entries", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + ], + name: "readFile", + outputs: [ + { + internalType: "string", + name: "data", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + ], + name: "readFileBinary", + outputs: [ + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + ], + name: "readLine", + outputs: [ + { + internalType: "string", + name: "line", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "linkPath", + type: "string", + }, + ], + name: "readLink", + outputs: [ + { + internalType: "string", + name: "targetPath", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "record", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "recordLogs", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + name: "rememberKey", + outputs: [ + { + internalType: "address", + name: "keyAddr", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + { + internalType: "bool", + name: "recursive", + type: "bool", + }, + ], + name: "removeDir", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + ], + name: "removeFile", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "input", + type: "string", + }, + { + internalType: "string", + name: "from", + type: "string", + }, + { + internalType: "string", + name: "to", + type: "string", + }, + ], + name: "replace", + outputs: [ + { + internalType: "string", + name: "output", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "resetNonce", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "resumeGasMetering", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "snapshotId", + type: "uint256", + }, + ], + name: "revertTo", + outputs: [ + { + internalType: "bool", + name: "success", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "snapshotId", + type: "uint256", + }, + ], + name: "revertToAndDelete", + outputs: [ + { + internalType: "bool", + name: "success", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address[]", + name: "accounts", + type: "address[]", + }, + ], + name: "revokePersistent", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "revokePersistent", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "newHeight", + type: "uint256", + }, + ], + name: "roll", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "txHash", + type: "bytes32", + }, + ], + name: "rollFork", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "forkId", + type: "uint256", + }, + { + internalType: "uint256", + name: "blockNumber", + type: "uint256", + }, + ], + name: "rollFork", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "blockNumber", + type: "uint256", + }, + ], + name: "rollFork", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "forkId", + type: "uint256", + }, + { + internalType: "bytes32", + name: "txHash", + type: "bytes32", + }, + ], + name: "rollFork", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "urlOrAlias", + type: "string", + }, + { + internalType: "string", + name: "method", + type: "string", + }, + { + internalType: "string", + name: "params", + type: "string", + }, + ], + name: "rpc", + outputs: [ + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "method", + type: "string", + }, + { + internalType: "string", + name: "params", + type: "string", + }, + ], + name: "rpc", + outputs: [ + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "rpcAlias", + type: "string", + }, + ], + name: "rpcUrl", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "rpcUrlStructs", + outputs: [ + { + components: [ + { + internalType: "string", + name: "key", + type: "string", + }, + { + internalType: "string", + name: "url", + type: "string", + }, + ], + internalType: "struct VmSafe.Rpc[]", + name: "urls", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "rpcUrls", + outputs: [ + { + internalType: "string[2][]", + name: "urls", + type: "string[2][]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "forkId", + type: "uint256", + }, + ], + name: "selectFork", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "address[]", + name: "values", + type: "address[]", + }, + ], + name: "serializeAddress", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "address", + name: "value", + type: "address", + }, + ], + name: "serializeAddress", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "bool[]", + name: "values", + type: "bool[]", + }, + ], + name: "serializeBool", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "bool", + name: "value", + type: "bool", + }, + ], + name: "serializeBool", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "bytes[]", + name: "values", + type: "bytes[]", + }, + ], + name: "serializeBytes", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "bytes", + name: "value", + type: "bytes", + }, + ], + name: "serializeBytes", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "bytes32[]", + name: "values", + type: "bytes32[]", + }, + ], + name: "serializeBytes32", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "bytes32", + name: "value", + type: "bytes32", + }, + ], + name: "serializeBytes32", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "int256", + name: "value", + type: "int256", + }, + ], + name: "serializeInt", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "int256[]", + name: "values", + type: "int256[]", + }, + ], + name: "serializeInt", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "value", + type: "string", + }, + ], + name: "serializeJson", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "typeDescription", + type: "string", + }, + { + internalType: "bytes", + name: "value", + type: "bytes", + }, + ], + name: "serializeJsonType", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "string", + name: "typeDescription", + type: "string", + }, + { + internalType: "bytes", + name: "value", + type: "bytes", + }, + ], + name: "serializeJsonType", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "string[]", + name: "values", + type: "string[]", + }, + ], + name: "serializeString", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "string", + name: "value", + type: "string", + }, + ], + name: "serializeString", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "serializeUint", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "uint256[]", + name: "values", + type: "uint256[]", + }, + ], + name: "serializeUint", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "objectKey", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "serializeUintToHex", + outputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "blockNumber", + type: "uint256", + }, + { + internalType: "bytes32", + name: "blockHash", + type: "bytes32", + }, + ], + name: "setBlockhash", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "value", + type: "string", + }, + ], + name: "setEnv", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + { + internalType: "uint64", + name: "newNonce", + type: "uint64", + }, + ], + name: "setNonce", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + { + internalType: "uint64", + name: "newNonce", + type: "uint64", + }, + ], + name: "setNonceUnsafe", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "digest", + type: "bytes32", + }, + ], + name: "sign", + outputs: [ + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "signer", + type: "address", + }, + { + internalType: "bytes32", + name: "digest", + type: "bytes32", + }, + ], + name: "sign", + outputs: [ + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + { + internalType: "uint256", + name: "publicKeyX", + type: "uint256", + }, + { + internalType: "uint256", + name: "publicKeyY", + type: "uint256", + }, + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + internalType: "struct VmSafe.Wallet", + name: "wallet", + type: "tuple", + }, + { + internalType: "bytes32", + name: "digest", + type: "bytes32", + }, + ], + name: "sign", + outputs: [ + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + { + internalType: "bytes32", + name: "digest", + type: "bytes32", + }, + ], + name: "sign", + outputs: [ + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + { + internalType: "uint256", + name: "publicKeyX", + type: "uint256", + }, + { + internalType: "uint256", + name: "publicKeyY", + type: "uint256", + }, + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + internalType: "struct VmSafe.Wallet", + name: "wallet", + type: "tuple", + }, + { + internalType: "bytes32", + name: "digest", + type: "bytes32", + }, + ], + name: "signCompact", + outputs: [ + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "vs", + type: "bytes32", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "signer", + type: "address", + }, + { + internalType: "bytes32", + name: "digest", + type: "bytes32", + }, + ], + name: "signCompact", + outputs: [ + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "vs", + type: "bytes32", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "digest", + type: "bytes32", + }, + ], + name: "signCompact", + outputs: [ + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "vs", + type: "bytes32", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + { + internalType: "bytes32", + name: "digest", + type: "bytes32", + }, + ], + name: "signCompact", + outputs: [ + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "vs", + type: "bytes32", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + { + internalType: "bytes32", + name: "digest", + type: "bytes32", + }, + ], + name: "signP256", + outputs: [ + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bool", + name: "skipTest", + type: "bool", + }, + ], + name: "skip", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "duration", + type: "uint256", + }, + ], + name: "sleep", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "snapshot", + outputs: [ + { + internalType: "uint256", + name: "snapshotId", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "input", + type: "string", + }, + { + internalType: "string", + name: "delimiter", + type: "string", + }, + ], + name: "split", + outputs: [ + { + internalType: "string[]", + name: "outputs", + type: "string[]", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [], + name: "startBroadcast", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "signer", + type: "address", + }, + ], + name: "startBroadcast", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "privateKey", + type: "uint256", + }, + ], + name: "startBroadcast", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "startMappingRecording", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "msgSender", + type: "address", + }, + ], + name: "startPrank", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "msgSender", + type: "address", + }, + { + internalType: "address", + name: "txOrigin", + type: "address", + }, + ], + name: "startPrank", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "startStateDiffRecording", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "stopAndReturnStateDiff", + outputs: [ + { + components: [ + { + components: [ + { + internalType: "uint256", + name: "forkId", + type: "uint256", + }, + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + ], + internalType: "struct VmSafe.ChainInfo", + name: "chainInfo", + type: "tuple", + }, + { + internalType: "enum VmSafe.AccountAccessKind", + name: "kind", + type: "uint8", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + { + internalType: "address", + name: "accessor", + type: "address", + }, + { + internalType: "bool", + name: "initialized", + type: "bool", + }, + { + internalType: "uint256", + name: "oldBalance", + type: "uint256", + }, + { + internalType: "uint256", + name: "newBalance", + type: "uint256", + }, + { + internalType: "bytes", + name: "deployedCode", + type: "bytes", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + { + internalType: "bool", + name: "reverted", + type: "bool", + }, + { + components: [ + { + internalType: "address", + name: "account", + type: "address", + }, + { + internalType: "bytes32", + name: "slot", + type: "bytes32", + }, + { + internalType: "bool", + name: "isWrite", + type: "bool", + }, + { + internalType: "bytes32", + name: "previousValue", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "newValue", + type: "bytes32", + }, + { + internalType: "bool", + name: "reverted", + type: "bool", + }, + ], + internalType: "struct VmSafe.StorageAccess[]", + name: "storageAccesses", + type: "tuple[]", + }, + { + internalType: "uint64", + name: "depth", + type: "uint64", + }, + ], + internalType: "struct VmSafe.AccountAccess[]", + name: "accountAccesses", + type: "tuple[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "stopBroadcast", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "stopExpectSafeMemory", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "stopMappingRecording", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "stopPrank", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "target", + type: "address", + }, + { + internalType: "bytes32", + name: "slot", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "value", + type: "bytes32", + }, + ], + name: "store", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "data", + type: "string", + }, + ], + name: "toBase64", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "toBase64", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "data", + type: "string", + }, + ], + name: "toBase64URL", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "toBase64URL", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "input", + type: "string", + }, + ], + name: "toLowercase", + outputs: [ + { + internalType: "string", + name: "output", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "value", + type: "address", + }, + ], + name: "toString", + outputs: [ + { + internalType: "string", + name: "stringifiedValue", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "toString", + outputs: [ + { + internalType: "string", + name: "stringifiedValue", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "value", + type: "bytes", + }, + ], + name: "toString", + outputs: [ + { + internalType: "string", + name: "stringifiedValue", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bool", + name: "value", + type: "bool", + }, + ], + name: "toString", + outputs: [ + { + internalType: "string", + name: "stringifiedValue", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "value", + type: "int256", + }, + ], + name: "toString", + outputs: [ + { + internalType: "string", + name: "stringifiedValue", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "value", + type: "bytes32", + }, + ], + name: "toString", + outputs: [ + { + internalType: "string", + name: "stringifiedValue", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "input", + type: "string", + }, + ], + name: "toUppercase", + outputs: [ + { + internalType: "string", + name: "output", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "forkId", + type: "uint256", + }, + { + internalType: "bytes32", + name: "txHash", + type: "bytes32", + }, + ], + name: "transact", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "txHash", + type: "bytes32", + }, + ], + name: "transact", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "input", + type: "string", + }, + ], + name: "trim", + outputs: [ + { + internalType: "string", + name: "output", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "string[]", + name: "commandInput", + type: "string[]", + }, + ], + name: "tryFfi", + outputs: [ + { + components: [ + { + internalType: "int32", + name: "exitCode", + type: "int32", + }, + { + internalType: "bytes", + name: "stdout", + type: "bytes", + }, + { + internalType: "bytes", + name: "stderr", + type: "bytes", + }, + ], + internalType: "struct VmSafe.FfiResult", + name: "result", + type: "tuple", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "newGasPrice", + type: "uint256", + }, + ], + name: "txGasPrice", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "unixTime", + outputs: [ + { + internalType: "uint256", + name: "milliseconds", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "newTimestamp", + type: "uint256", + }, + ], + name: "warp", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + { + internalType: "string", + name: "data", + type: "string", + }, + ], + name: "writeFile", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "writeFileBinary", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "path", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + ], + name: "writeJson", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "path", + type: "string", + }, + ], + name: "writeJson", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "path", + type: "string", + }, + { + internalType: "string", + name: "data", + type: "string", + }, + ], + name: "writeLine", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "path", + type: "string", + }, + { + internalType: "string", + name: "valueKey", + type: "string", + }, + ], + name: "writeToml", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "json", + type: "string", + }, + { + internalType: "string", + name: "path", + type: "string", + }, + ], + name: "writeToml", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +export class Vm__factory { + static readonly abi = _abi; + static createInterface(): VmInterface { + return new Interface(_abi) as VmInterface; + } + static connect(address: string, runner?: ContractRunner | null): Vm { + return new Contract(address, _abi, runner) as unknown as Vm; + } +} diff --git a/typechain-types/factories/src/Upgrades.sol/index.ts b/typechain-types/factories/src/Upgrades.sol/index.ts new file mode 100644 index 0000000..dc4c114 --- /dev/null +++ b/typechain-types/factories/src/Upgrades.sol/index.ts @@ -0,0 +1,22 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { Address__factory } from "./Address__factory"; +export { BeaconProxy__factory } from "./BeaconProxy__factory"; +export { ERC1967Proxy__factory } from "./ERC1967Proxy__factory"; +export { ERC1967Utils__factory } from "./ERC1967Utils__factory"; +export { IBeacon__factory } from "./IBeacon__factory"; +export { IERC1967__factory } from "./IERC1967__factory"; +export { IProxyAdmin__factory } from "./IProxyAdmin__factory"; +export { ITransparentUpgradeableProxy__factory } from "./ITransparentUpgradeableProxy__factory"; +export { IUpgradeableBeacon__factory } from "./IUpgradeableBeacon__factory"; +export { IUpgradeableProxy__factory } from "./IUpgradeableProxy__factory"; +export { Math__factory } from "./Math__factory"; +export { Ownable__factory } from "./Ownable__factory"; +export { Proxy__factory } from "./Proxy__factory"; +export { ProxyAdmin__factory } from "./ProxyAdmin__factory"; +export { Strings__factory } from "./Strings__factory"; +export { TransparentUpgradeableProxy__factory } from "./TransparentUpgradeableProxy__factory"; +export { UpgradeableBeacon__factory } from "./UpgradeableBeacon__factory"; +export { Vm__factory } from "./Vm__factory"; +export { VmSafe__factory } from "./VmSafe__factory"; diff --git a/typechain-types/factories/src/index.ts b/typechain-types/factories/src/index.ts index 1c041bf..4fc7496 100644 --- a/typechain-types/factories/src/index.ts +++ b/typechain-types/factories/src/index.ts @@ -1,5 +1,6 @@ /* Autogenerated file. Do not edit manually. */ /* tslint:disable */ /* eslint-disable */ +export * as upgradesSol from "./Upgrades.sol"; export { OrganizationRegistry__factory } from "./OrganizationRegistry__factory"; export { ProcessRegistry__factory } from "./ProcessRegistry__factory"; diff --git a/typechain-types/hardhat.d.ts b/typechain-types/hardhat.d.ts index eab9ec1..d3bda9b 100644 --- a/typechain-types/hardhat.d.ts +++ b/typechain-types/hardhat.d.ts @@ -53,6 +53,82 @@ declare module "hardhat/types/runtime" { name: "ProcessRegistry", signerOrOptions?: ethers.Signer | FactoryOptions ): Promise; + getContractFactory( + name: "Address", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "BeaconProxy", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "ERC1967Proxy", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "ERC1967Utils", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IBeacon", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IERC1967", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IProxyAdmin", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "ITransparentUpgradeableProxy", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IUpgradeableBeacon", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IUpgradeableProxy", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "Math", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "Ownable", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "Proxy", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "ProxyAdmin", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "Strings", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "TransparentUpgradeableProxy", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "UpgradeableBeacon", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "Vm", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "VmSafe", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; getContractAt( name: "OwnableUpgradeable", @@ -104,6 +180,101 @@ declare module "hardhat/types/runtime" { address: string | ethers.Addressable, signer?: ethers.Signer ): Promise; + getContractAt( + name: "Address", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "BeaconProxy", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "ERC1967Proxy", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "ERC1967Utils", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IBeacon", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IERC1967", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IProxyAdmin", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "ITransparentUpgradeableProxy", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IUpgradeableBeacon", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IUpgradeableProxy", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "Math", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "Ownable", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "Proxy", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "ProxyAdmin", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "Strings", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "TransparentUpgradeableProxy", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "UpgradeableBeacon", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "Vm", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "VmSafe", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; deployContract( name: "OwnableUpgradeable", @@ -145,6 +316,82 @@ declare module "hardhat/types/runtime" { name: "ProcessRegistry", signerOrOptions?: ethers.Signer | DeployContractOptions ): Promise; + deployContract( + name: "Address", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "BeaconProxy", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ERC1967Proxy", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ERC1967Utils", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IBeacon", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IERC1967", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IProxyAdmin", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ITransparentUpgradeableProxy", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IUpgradeableBeacon", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IUpgradeableProxy", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "Math", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "Ownable", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "Proxy", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ProxyAdmin", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "Strings", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "TransparentUpgradeableProxy", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "UpgradeableBeacon", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "Vm", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "VmSafe", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; deployContract( name: "OwnableUpgradeable", @@ -196,6 +443,101 @@ declare module "hardhat/types/runtime" { args: any[], signerOrOptions?: ethers.Signer | DeployContractOptions ): Promise; + deployContract( + name: "Address", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "BeaconProxy", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ERC1967Proxy", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ERC1967Utils", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IBeacon", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IERC1967", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IProxyAdmin", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ITransparentUpgradeableProxy", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IUpgradeableBeacon", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IUpgradeableProxy", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "Math", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "Ownable", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "Proxy", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ProxyAdmin", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "Strings", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "TransparentUpgradeableProxy", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "UpgradeableBeacon", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "Vm", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "VmSafe", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; // default types getContractFactory( diff --git a/typechain-types/index.ts b/typechain-types/index.ts index 9942390..0abc0d9 100644 --- a/typechain-types/index.ts +++ b/typechain-types/index.ts @@ -26,3 +26,35 @@ export type { OrganizationRegistry } from "./src/OrganizationRegistry"; export { OrganizationRegistry__factory } from "./factories/src/OrganizationRegistry__factory"; export type { ProcessRegistry } from "./src/ProcessRegistry"; export { ProcessRegistry__factory } from "./factories/src/ProcessRegistry__factory"; +export type { BeaconProxy } from "./src/Upgrades.sol/BeaconProxy"; +export { BeaconProxy__factory } from "./factories/src/Upgrades.sol/BeaconProxy__factory"; +export type { ERC1967Proxy } from "./src/Upgrades.sol/ERC1967Proxy"; +export { ERC1967Proxy__factory } from "./factories/src/Upgrades.sol/ERC1967Proxy__factory"; +export type { IERC1967 } from "./src/Upgrades.sol/IERC1967"; +export { IERC1967__factory } from "./factories/src/Upgrades.sol/IERC1967__factory"; +export type { IProxyAdmin } from "./src/Upgrades.sol/IProxyAdmin"; +export { IProxyAdmin__factory } from "./factories/src/Upgrades.sol/IProxyAdmin__factory"; +export type { ITransparentUpgradeableProxy } from "./src/Upgrades.sol/ITransparentUpgradeableProxy"; +export { ITransparentUpgradeableProxy__factory } from "./factories/src/Upgrades.sol/ITransparentUpgradeableProxy__factory"; +export type { IUpgradeableBeacon } from "./src/Upgrades.sol/IUpgradeableBeacon"; +export { IUpgradeableBeacon__factory } from "./factories/src/Upgrades.sol/IUpgradeableBeacon__factory"; +export type { IUpgradeableProxy } from "./src/Upgrades.sol/IUpgradeableProxy"; +export { IUpgradeableProxy__factory } from "./factories/src/Upgrades.sol/IUpgradeableProxy__factory"; +export type { Math } from "./src/Upgrades.sol/Math"; +export { Math__factory } from "./factories/src/Upgrades.sol/Math__factory"; +export type { Ownable } from "./src/Upgrades.sol/Ownable"; +export { Ownable__factory } from "./factories/src/Upgrades.sol/Ownable__factory"; +export type { Proxy } from "./src/Upgrades.sol/Proxy"; +export { Proxy__factory } from "./factories/src/Upgrades.sol/Proxy__factory"; +export type { ProxyAdmin } from "./src/Upgrades.sol/ProxyAdmin"; +export { ProxyAdmin__factory } from "./factories/src/Upgrades.sol/ProxyAdmin__factory"; +export type { Strings } from "./src/Upgrades.sol/Strings"; +export { Strings__factory } from "./factories/src/Upgrades.sol/Strings__factory"; +export type { TransparentUpgradeableProxy } from "./src/Upgrades.sol/TransparentUpgradeableProxy"; +export { TransparentUpgradeableProxy__factory } from "./factories/src/Upgrades.sol/TransparentUpgradeableProxy__factory"; +export type { UpgradeableBeacon } from "./src/Upgrades.sol/UpgradeableBeacon"; +export { UpgradeableBeacon__factory } from "./factories/src/Upgrades.sol/UpgradeableBeacon__factory"; +export type { Vm } from "./src/Upgrades.sol/Vm"; +export { Vm__factory } from "./factories/src/Upgrades.sol/Vm__factory"; +export type { VmSafe } from "./src/Upgrades.sol/VmSafe"; +export { VmSafe__factory } from "./factories/src/Upgrades.sol/VmSafe__factory"; diff --git a/typechain-types/src/Upgrades.sol/Address.ts b/typechain-types/src/Upgrades.sol/Address.ts new file mode 100644 index 0000000..97f02f5 --- /dev/null +++ b/typechain-types/src/Upgrades.sol/Address.ts @@ -0,0 +1,69 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + FunctionFragment, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, +} from "../../common"; + +export interface AddressInterface extends Interface {} + +export interface Address extends BaseContract { + connect(runner?: ContractRunner | null): Address; + waitForDeployment(): Promise; + + interface: AddressInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + filters: {}; +} diff --git a/typechain-types/src/Upgrades.sol/BeaconProxy.ts b/typechain-types/src/Upgrades.sol/BeaconProxy.ts new file mode 100644 index 0000000..ba8cb33 --- /dev/null +++ b/typechain-types/src/Upgrades.sol/BeaconProxy.ts @@ -0,0 +1,105 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + FunctionFragment, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, +} from "../../common"; + +export interface BeaconProxyInterface extends Interface { + getEvent(nameOrSignatureOrTopic: "BeaconUpgraded"): EventFragment; +} + +export namespace BeaconUpgradedEvent { + export type InputTuple = [beacon: AddressLike]; + export type OutputTuple = [beacon: string]; + export interface OutputObject { + beacon: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface BeaconProxy extends BaseContract { + connect(runner?: ContractRunner | null): BeaconProxy; + waitForDeployment(): Promise; + + interface: BeaconProxyInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + getEvent( + key: "BeaconUpgraded" + ): TypedContractEvent< + BeaconUpgradedEvent.InputTuple, + BeaconUpgradedEvent.OutputTuple, + BeaconUpgradedEvent.OutputObject + >; + + filters: { + "BeaconUpgraded(address)": TypedContractEvent< + BeaconUpgradedEvent.InputTuple, + BeaconUpgradedEvent.OutputTuple, + BeaconUpgradedEvent.OutputObject + >; + BeaconUpgraded: TypedContractEvent< + BeaconUpgradedEvent.InputTuple, + BeaconUpgradedEvent.OutputTuple, + BeaconUpgradedEvent.OutputObject + >; + }; +} diff --git a/typechain-types/src/Upgrades.sol/ERC1967Proxy.ts b/typechain-types/src/Upgrades.sol/ERC1967Proxy.ts new file mode 100644 index 0000000..1115077 --- /dev/null +++ b/typechain-types/src/Upgrades.sol/ERC1967Proxy.ts @@ -0,0 +1,105 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + FunctionFragment, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, +} from "../../common"; + +export interface ERC1967ProxyInterface extends Interface { + getEvent(nameOrSignatureOrTopic: "Upgraded"): EventFragment; +} + +export namespace UpgradedEvent { + export type InputTuple = [implementation: AddressLike]; + export type OutputTuple = [implementation: string]; + export interface OutputObject { + implementation: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface ERC1967Proxy extends BaseContract { + connect(runner?: ContractRunner | null): ERC1967Proxy; + waitForDeployment(): Promise; + + interface: ERC1967ProxyInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + getEvent( + key: "Upgraded" + ): TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + + filters: { + "Upgraded(address)": TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + Upgraded: TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + }; +} diff --git a/typechain-types/src/Upgrades.sol/ERC1967Utils.ts b/typechain-types/src/Upgrades.sol/ERC1967Utils.ts new file mode 100644 index 0000000..84d42e3 --- /dev/null +++ b/typechain-types/src/Upgrades.sol/ERC1967Utils.ts @@ -0,0 +1,168 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + FunctionFragment, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, +} from "../../common"; + +export interface ERC1967UtilsInterface extends Interface { + getEvent( + nameOrSignatureOrTopic: "AdminChanged" | "BeaconUpgraded" | "Upgraded" + ): EventFragment; +} + +export namespace AdminChangedEvent { + export type InputTuple = [previousAdmin: AddressLike, newAdmin: AddressLike]; + export type OutputTuple = [previousAdmin: string, newAdmin: string]; + export interface OutputObject { + previousAdmin: string; + newAdmin: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace BeaconUpgradedEvent { + export type InputTuple = [beacon: AddressLike]; + export type OutputTuple = [beacon: string]; + export interface OutputObject { + beacon: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UpgradedEvent { + export type InputTuple = [implementation: AddressLike]; + export type OutputTuple = [implementation: string]; + export interface OutputObject { + implementation: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface ERC1967Utils extends BaseContract { + connect(runner?: ContractRunner | null): ERC1967Utils; + waitForDeployment(): Promise; + + interface: ERC1967UtilsInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + getEvent( + key: "AdminChanged" + ): TypedContractEvent< + AdminChangedEvent.InputTuple, + AdminChangedEvent.OutputTuple, + AdminChangedEvent.OutputObject + >; + getEvent( + key: "BeaconUpgraded" + ): TypedContractEvent< + BeaconUpgradedEvent.InputTuple, + BeaconUpgradedEvent.OutputTuple, + BeaconUpgradedEvent.OutputObject + >; + getEvent( + key: "Upgraded" + ): TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + + filters: { + "AdminChanged(address,address)": TypedContractEvent< + AdminChangedEvent.InputTuple, + AdminChangedEvent.OutputTuple, + AdminChangedEvent.OutputObject + >; + AdminChanged: TypedContractEvent< + AdminChangedEvent.InputTuple, + AdminChangedEvent.OutputTuple, + AdminChangedEvent.OutputObject + >; + + "BeaconUpgraded(address)": TypedContractEvent< + BeaconUpgradedEvent.InputTuple, + BeaconUpgradedEvent.OutputTuple, + BeaconUpgradedEvent.OutputObject + >; + BeaconUpgraded: TypedContractEvent< + BeaconUpgradedEvent.InputTuple, + BeaconUpgradedEvent.OutputTuple, + BeaconUpgradedEvent.OutputObject + >; + + "Upgraded(address)": TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + Upgraded: TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + }; +} diff --git a/typechain-types/src/Upgrades.sol/IBeacon.ts b/typechain-types/src/Upgrades.sol/IBeacon.ts new file mode 100644 index 0000000..62100df --- /dev/null +++ b/typechain-types/src/Upgrades.sol/IBeacon.ts @@ -0,0 +1,90 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BytesLike, + FunctionFragment, + Result, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../../common"; + +export interface IBeaconInterface extends Interface { + getFunction(nameOrSignature: "implementation"): FunctionFragment; + + encodeFunctionData( + functionFragment: "implementation", + values?: undefined + ): string; + + decodeFunctionResult( + functionFragment: "implementation", + data: BytesLike + ): Result; +} + +export interface IBeacon extends BaseContract { + connect(runner?: ContractRunner | null): IBeacon; + waitForDeployment(): Promise; + + interface: IBeaconInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + implementation: TypedContractMethod<[], [string], "view">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "implementation" + ): TypedContractMethod<[], [string], "view">; + + filters: {}; +} diff --git a/typechain-types/src/Upgrades.sol/IERC1967.ts b/typechain-types/src/Upgrades.sol/IERC1967.ts new file mode 100644 index 0000000..2c95811 --- /dev/null +++ b/typechain-types/src/Upgrades.sol/IERC1967.ts @@ -0,0 +1,168 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + FunctionFragment, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, +} from "../../common"; + +export interface IERC1967Interface extends Interface { + getEvent( + nameOrSignatureOrTopic: "AdminChanged" | "BeaconUpgraded" | "Upgraded" + ): EventFragment; +} + +export namespace AdminChangedEvent { + export type InputTuple = [previousAdmin: AddressLike, newAdmin: AddressLike]; + export type OutputTuple = [previousAdmin: string, newAdmin: string]; + export interface OutputObject { + previousAdmin: string; + newAdmin: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace BeaconUpgradedEvent { + export type InputTuple = [beacon: AddressLike]; + export type OutputTuple = [beacon: string]; + export interface OutputObject { + beacon: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UpgradedEvent { + export type InputTuple = [implementation: AddressLike]; + export type OutputTuple = [implementation: string]; + export interface OutputObject { + implementation: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface IERC1967 extends BaseContract { + connect(runner?: ContractRunner | null): IERC1967; + waitForDeployment(): Promise; + + interface: IERC1967Interface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + getEvent( + key: "AdminChanged" + ): TypedContractEvent< + AdminChangedEvent.InputTuple, + AdminChangedEvent.OutputTuple, + AdminChangedEvent.OutputObject + >; + getEvent( + key: "BeaconUpgraded" + ): TypedContractEvent< + BeaconUpgradedEvent.InputTuple, + BeaconUpgradedEvent.OutputTuple, + BeaconUpgradedEvent.OutputObject + >; + getEvent( + key: "Upgraded" + ): TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + + filters: { + "AdminChanged(address,address)": TypedContractEvent< + AdminChangedEvent.InputTuple, + AdminChangedEvent.OutputTuple, + AdminChangedEvent.OutputObject + >; + AdminChanged: TypedContractEvent< + AdminChangedEvent.InputTuple, + AdminChangedEvent.OutputTuple, + AdminChangedEvent.OutputObject + >; + + "BeaconUpgraded(address)": TypedContractEvent< + BeaconUpgradedEvent.InputTuple, + BeaconUpgradedEvent.OutputTuple, + BeaconUpgradedEvent.OutputObject + >; + BeaconUpgraded: TypedContractEvent< + BeaconUpgradedEvent.InputTuple, + BeaconUpgradedEvent.OutputTuple, + BeaconUpgradedEvent.OutputObject + >; + + "Upgraded(address)": TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + Upgraded: TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + }; +} diff --git a/typechain-types/src/Upgrades.sol/IProxyAdmin.ts b/typechain-types/src/Upgrades.sol/IProxyAdmin.ts new file mode 100644 index 0000000..44cb13f --- /dev/null +++ b/typechain-types/src/Upgrades.sol/IProxyAdmin.ts @@ -0,0 +1,117 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BytesLike, + FunctionFragment, + Result, + Interface, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../../common"; + +export interface IProxyAdminInterface extends Interface { + getFunction(nameOrSignature: "upgrade" | "upgradeAndCall"): FunctionFragment; + + encodeFunctionData( + functionFragment: "upgrade", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "upgradeAndCall", + values: [AddressLike, AddressLike, BytesLike] + ): string; + + decodeFunctionResult(functionFragment: "upgrade", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "upgradeAndCall", + data: BytesLike + ): Result; +} + +export interface IProxyAdmin extends BaseContract { + connect(runner?: ContractRunner | null): IProxyAdmin; + waitForDeployment(): Promise; + + interface: IProxyAdminInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + upgrade: TypedContractMethod< + [arg0: AddressLike, arg1: AddressLike], + [void], + "nonpayable" + >; + + upgradeAndCall: TypedContractMethod< + [arg0: AddressLike, arg1: AddressLike, arg2: BytesLike], + [void], + "payable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "upgrade" + ): TypedContractMethod< + [arg0: AddressLike, arg1: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "upgradeAndCall" + ): TypedContractMethod< + [arg0: AddressLike, arg1: AddressLike, arg2: BytesLike], + [void], + "payable" + >; + + filters: {}; +} diff --git a/typechain-types/src/Upgrades.sol/ITransparentUpgradeableProxy.ts b/typechain-types/src/Upgrades.sol/ITransparentUpgradeableProxy.ts new file mode 100644 index 0000000..4acef48 --- /dev/null +++ b/typechain-types/src/Upgrades.sol/ITransparentUpgradeableProxy.ts @@ -0,0 +1,197 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../common"; + +export interface ITransparentUpgradeableProxyInterface extends Interface { + getFunction(nameOrSignature: "upgradeToAndCall"): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: "AdminChanged" | "BeaconUpgraded" | "Upgraded" + ): EventFragment; + + encodeFunctionData( + functionFragment: "upgradeToAndCall", + values: [AddressLike, BytesLike] + ): string; + + decodeFunctionResult( + functionFragment: "upgradeToAndCall", + data: BytesLike + ): Result; +} + +export namespace AdminChangedEvent { + export type InputTuple = [previousAdmin: AddressLike, newAdmin: AddressLike]; + export type OutputTuple = [previousAdmin: string, newAdmin: string]; + export interface OutputObject { + previousAdmin: string; + newAdmin: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace BeaconUpgradedEvent { + export type InputTuple = [beacon: AddressLike]; + export type OutputTuple = [beacon: string]; + export interface OutputObject { + beacon: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UpgradedEvent { + export type InputTuple = [implementation: AddressLike]; + export type OutputTuple = [implementation: string]; + export interface OutputObject { + implementation: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface ITransparentUpgradeableProxy extends BaseContract { + connect(runner?: ContractRunner | null): ITransparentUpgradeableProxy; + waitForDeployment(): Promise; + + interface: ITransparentUpgradeableProxyInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + upgradeToAndCall: TypedContractMethod< + [arg0: AddressLike, arg1: BytesLike], + [void], + "payable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "upgradeToAndCall" + ): TypedContractMethod< + [arg0: AddressLike, arg1: BytesLike], + [void], + "payable" + >; + + getEvent( + key: "AdminChanged" + ): TypedContractEvent< + AdminChangedEvent.InputTuple, + AdminChangedEvent.OutputTuple, + AdminChangedEvent.OutputObject + >; + getEvent( + key: "BeaconUpgraded" + ): TypedContractEvent< + BeaconUpgradedEvent.InputTuple, + BeaconUpgradedEvent.OutputTuple, + BeaconUpgradedEvent.OutputObject + >; + getEvent( + key: "Upgraded" + ): TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + + filters: { + "AdminChanged(address,address)": TypedContractEvent< + AdminChangedEvent.InputTuple, + AdminChangedEvent.OutputTuple, + AdminChangedEvent.OutputObject + >; + AdminChanged: TypedContractEvent< + AdminChangedEvent.InputTuple, + AdminChangedEvent.OutputTuple, + AdminChangedEvent.OutputObject + >; + + "BeaconUpgraded(address)": TypedContractEvent< + BeaconUpgradedEvent.InputTuple, + BeaconUpgradedEvent.OutputTuple, + BeaconUpgradedEvent.OutputObject + >; + BeaconUpgraded: TypedContractEvent< + BeaconUpgradedEvent.InputTuple, + BeaconUpgradedEvent.OutputTuple, + BeaconUpgradedEvent.OutputObject + >; + + "Upgraded(address)": TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + Upgraded: TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + }; +} diff --git a/typechain-types/src/Upgrades.sol/IUpgradeableBeacon.ts b/typechain-types/src/Upgrades.sol/IUpgradeableBeacon.ts new file mode 100644 index 0000000..f057f0a --- /dev/null +++ b/typechain-types/src/Upgrades.sol/IUpgradeableBeacon.ts @@ -0,0 +1,88 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BytesLike, + FunctionFragment, + Result, + Interface, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../../common"; + +export interface IUpgradeableBeaconInterface extends Interface { + getFunction(nameOrSignature: "upgradeTo"): FunctionFragment; + + encodeFunctionData( + functionFragment: "upgradeTo", + values: [AddressLike] + ): string; + + decodeFunctionResult(functionFragment: "upgradeTo", data: BytesLike): Result; +} + +export interface IUpgradeableBeacon extends BaseContract { + connect(runner?: ContractRunner | null): IUpgradeableBeacon; + waitForDeployment(): Promise; + + interface: IUpgradeableBeaconInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + upgradeTo: TypedContractMethod<[arg0: AddressLike], [void], "nonpayable">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "upgradeTo" + ): TypedContractMethod<[arg0: AddressLike], [void], "nonpayable">; + + filters: {}; +} diff --git a/typechain-types/src/Upgrades.sol/IUpgradeableProxy.ts b/typechain-types/src/Upgrades.sol/IUpgradeableProxy.ts new file mode 100644 index 0000000..68d2dd1 --- /dev/null +++ b/typechain-types/src/Upgrades.sol/IUpgradeableProxy.ts @@ -0,0 +1,111 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BytesLike, + FunctionFragment, + Result, + Interface, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../../common"; + +export interface IUpgradeableProxyInterface extends Interface { + getFunction( + nameOrSignature: "upgradeTo" | "upgradeToAndCall" + ): FunctionFragment; + + encodeFunctionData( + functionFragment: "upgradeTo", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "upgradeToAndCall", + values: [AddressLike, BytesLike] + ): string; + + decodeFunctionResult(functionFragment: "upgradeTo", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "upgradeToAndCall", + data: BytesLike + ): Result; +} + +export interface IUpgradeableProxy extends BaseContract { + connect(runner?: ContractRunner | null): IUpgradeableProxy; + waitForDeployment(): Promise; + + interface: IUpgradeableProxyInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + upgradeTo: TypedContractMethod<[arg0: AddressLike], [void], "nonpayable">; + + upgradeToAndCall: TypedContractMethod< + [arg0: AddressLike, arg1: BytesLike], + [void], + "payable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "upgradeTo" + ): TypedContractMethod<[arg0: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "upgradeToAndCall" + ): TypedContractMethod< + [arg0: AddressLike, arg1: BytesLike], + [void], + "payable" + >; + + filters: {}; +} diff --git a/typechain-types/src/Upgrades.sol/Math.ts b/typechain-types/src/Upgrades.sol/Math.ts new file mode 100644 index 0000000..801e685 --- /dev/null +++ b/typechain-types/src/Upgrades.sol/Math.ts @@ -0,0 +1,69 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + FunctionFragment, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, +} from "../../common"; + +export interface MathInterface extends Interface {} + +export interface Math extends BaseContract { + connect(runner?: ContractRunner | null): Math; + waitForDeployment(): Promise; + + interface: MathInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + filters: {}; +} diff --git a/typechain-types/src/Upgrades.sol/Ownable.ts b/typechain-types/src/Upgrades.sol/Ownable.ts new file mode 100644 index 0000000..bbce3ac --- /dev/null +++ b/typechain-types/src/Upgrades.sol/Ownable.ts @@ -0,0 +1,153 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../common"; + +export interface OwnableInterface extends Interface { + getFunction( + nameOrSignature: "owner" | "renounceOwnership" | "transferOwnership" + ): FunctionFragment; + + getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment; + + encodeFunctionData(functionFragment: "owner", values?: undefined): string; + encodeFunctionData( + functionFragment: "renounceOwnership", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transferOwnership", + values: [AddressLike] + ): string; + + decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "renounceOwnership", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "transferOwnership", + data: BytesLike + ): Result; +} + +export namespace OwnershipTransferredEvent { + export type InputTuple = [previousOwner: AddressLike, newOwner: AddressLike]; + export type OutputTuple = [previousOwner: string, newOwner: string]; + export interface OutputObject { + previousOwner: string; + newOwner: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface Ownable extends BaseContract { + connect(runner?: ContractRunner | null): Ownable; + waitForDeployment(): Promise; + + interface: OwnableInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + owner: TypedContractMethod<[], [string], "view">; + + renounceOwnership: TypedContractMethod<[], [void], "nonpayable">; + + transferOwnership: TypedContractMethod< + [newOwner: AddressLike], + [void], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "owner" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "renounceOwnership" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "transferOwnership" + ): TypedContractMethod<[newOwner: AddressLike], [void], "nonpayable">; + + getEvent( + key: "OwnershipTransferred" + ): TypedContractEvent< + OwnershipTransferredEvent.InputTuple, + OwnershipTransferredEvent.OutputTuple, + OwnershipTransferredEvent.OutputObject + >; + + filters: { + "OwnershipTransferred(address,address)": TypedContractEvent< + OwnershipTransferredEvent.InputTuple, + OwnershipTransferredEvent.OutputTuple, + OwnershipTransferredEvent.OutputObject + >; + OwnershipTransferred: TypedContractEvent< + OwnershipTransferredEvent.InputTuple, + OwnershipTransferredEvent.OutputTuple, + OwnershipTransferredEvent.OutputObject + >; + }; +} diff --git a/typechain-types/src/Upgrades.sol/Proxy.ts b/typechain-types/src/Upgrades.sol/Proxy.ts new file mode 100644 index 0000000..aefa79a --- /dev/null +++ b/typechain-types/src/Upgrades.sol/Proxy.ts @@ -0,0 +1,69 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + FunctionFragment, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, +} from "../../common"; + +export interface ProxyInterface extends Interface {} + +export interface Proxy extends BaseContract { + connect(runner?: ContractRunner | null): Proxy; + waitForDeployment(): Promise; + + interface: ProxyInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + filters: {}; +} diff --git a/typechain-types/src/Upgrades.sol/ProxyAdmin.ts b/typechain-types/src/Upgrades.sol/ProxyAdmin.ts new file mode 100644 index 0000000..18b5703 --- /dev/null +++ b/typechain-types/src/Upgrades.sol/ProxyAdmin.ts @@ -0,0 +1,192 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../common"; + +export interface ProxyAdminInterface extends Interface { + getFunction( + nameOrSignature: + | "UPGRADE_INTERFACE_VERSION" + | "owner" + | "renounceOwnership" + | "transferOwnership" + | "upgradeAndCall" + ): FunctionFragment; + + getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment; + + encodeFunctionData( + functionFragment: "UPGRADE_INTERFACE_VERSION", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "owner", values?: undefined): string; + encodeFunctionData( + functionFragment: "renounceOwnership", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transferOwnership", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "upgradeAndCall", + values: [AddressLike, AddressLike, BytesLike] + ): string; + + decodeFunctionResult( + functionFragment: "UPGRADE_INTERFACE_VERSION", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "renounceOwnership", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "transferOwnership", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "upgradeAndCall", + data: BytesLike + ): Result; +} + +export namespace OwnershipTransferredEvent { + export type InputTuple = [previousOwner: AddressLike, newOwner: AddressLike]; + export type OutputTuple = [previousOwner: string, newOwner: string]; + export interface OutputObject { + previousOwner: string; + newOwner: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface ProxyAdmin extends BaseContract { + connect(runner?: ContractRunner | null): ProxyAdmin; + waitForDeployment(): Promise; + + interface: ProxyAdminInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + UPGRADE_INTERFACE_VERSION: TypedContractMethod<[], [string], "view">; + + owner: TypedContractMethod<[], [string], "view">; + + renounceOwnership: TypedContractMethod<[], [void], "nonpayable">; + + transferOwnership: TypedContractMethod< + [newOwner: AddressLike], + [void], + "nonpayable" + >; + + upgradeAndCall: TypedContractMethod< + [proxy: AddressLike, implementation: AddressLike, data: BytesLike], + [void], + "payable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "UPGRADE_INTERFACE_VERSION" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "owner" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "renounceOwnership" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "transferOwnership" + ): TypedContractMethod<[newOwner: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "upgradeAndCall" + ): TypedContractMethod< + [proxy: AddressLike, implementation: AddressLike, data: BytesLike], + [void], + "payable" + >; + + getEvent( + key: "OwnershipTransferred" + ): TypedContractEvent< + OwnershipTransferredEvent.InputTuple, + OwnershipTransferredEvent.OutputTuple, + OwnershipTransferredEvent.OutputObject + >; + + filters: { + "OwnershipTransferred(address,address)": TypedContractEvent< + OwnershipTransferredEvent.InputTuple, + OwnershipTransferredEvent.OutputTuple, + OwnershipTransferredEvent.OutputObject + >; + OwnershipTransferred: TypedContractEvent< + OwnershipTransferredEvent.InputTuple, + OwnershipTransferredEvent.OutputTuple, + OwnershipTransferredEvent.OutputObject + >; + }; +} diff --git a/typechain-types/src/Upgrades.sol/Strings.ts b/typechain-types/src/Upgrades.sol/Strings.ts new file mode 100644 index 0000000..fc553ed --- /dev/null +++ b/typechain-types/src/Upgrades.sol/Strings.ts @@ -0,0 +1,69 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + FunctionFragment, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, +} from "../../common"; + +export interface StringsInterface extends Interface {} + +export interface Strings extends BaseContract { + connect(runner?: ContractRunner | null): Strings; + waitForDeployment(): Promise; + + interface: StringsInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + filters: {}; +} diff --git a/typechain-types/src/Upgrades.sol/TransparentUpgradeableProxy.ts b/typechain-types/src/Upgrades.sol/TransparentUpgradeableProxy.ts new file mode 100644 index 0000000..305db7e --- /dev/null +++ b/typechain-types/src/Upgrades.sol/TransparentUpgradeableProxy.ts @@ -0,0 +1,136 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + FunctionFragment, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, +} from "../../common"; + +export interface TransparentUpgradeableProxyInterface extends Interface { + getEvent(nameOrSignatureOrTopic: "AdminChanged" | "Upgraded"): EventFragment; +} + +export namespace AdminChangedEvent { + export type InputTuple = [previousAdmin: AddressLike, newAdmin: AddressLike]; + export type OutputTuple = [previousAdmin: string, newAdmin: string]; + export interface OutputObject { + previousAdmin: string; + newAdmin: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UpgradedEvent { + export type InputTuple = [implementation: AddressLike]; + export type OutputTuple = [implementation: string]; + export interface OutputObject { + implementation: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface TransparentUpgradeableProxy extends BaseContract { + connect(runner?: ContractRunner | null): TransparentUpgradeableProxy; + waitForDeployment(): Promise; + + interface: TransparentUpgradeableProxyInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + getEvent( + key: "AdminChanged" + ): TypedContractEvent< + AdminChangedEvent.InputTuple, + AdminChangedEvent.OutputTuple, + AdminChangedEvent.OutputObject + >; + getEvent( + key: "Upgraded" + ): TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + + filters: { + "AdminChanged(address,address)": TypedContractEvent< + AdminChangedEvent.InputTuple, + AdminChangedEvent.OutputTuple, + AdminChangedEvent.OutputObject + >; + AdminChanged: TypedContractEvent< + AdminChangedEvent.InputTuple, + AdminChangedEvent.OutputTuple, + AdminChangedEvent.OutputObject + >; + + "Upgraded(address)": TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + Upgraded: TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + }; +} diff --git a/typechain-types/src/Upgrades.sol/UpgradeableBeacon.ts b/typechain-types/src/Upgrades.sol/UpgradeableBeacon.ts new file mode 100644 index 0000000..7de6bdd --- /dev/null +++ b/typechain-types/src/Upgrades.sol/UpgradeableBeacon.ts @@ -0,0 +1,221 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../common"; + +export interface UpgradeableBeaconInterface extends Interface { + getFunction( + nameOrSignature: + | "implementation" + | "owner" + | "renounceOwnership" + | "transferOwnership" + | "upgradeTo" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: "OwnershipTransferred" | "Upgraded" + ): EventFragment; + + encodeFunctionData( + functionFragment: "implementation", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "owner", values?: undefined): string; + encodeFunctionData( + functionFragment: "renounceOwnership", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transferOwnership", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "upgradeTo", + values: [AddressLike] + ): string; + + decodeFunctionResult( + functionFragment: "implementation", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "renounceOwnership", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "transferOwnership", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "upgradeTo", data: BytesLike): Result; +} + +export namespace OwnershipTransferredEvent { + export type InputTuple = [previousOwner: AddressLike, newOwner: AddressLike]; + export type OutputTuple = [previousOwner: string, newOwner: string]; + export interface OutputObject { + previousOwner: string; + newOwner: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UpgradedEvent { + export type InputTuple = [implementation: AddressLike]; + export type OutputTuple = [implementation: string]; + export interface OutputObject { + implementation: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface UpgradeableBeacon extends BaseContract { + connect(runner?: ContractRunner | null): UpgradeableBeacon; + waitForDeployment(): Promise; + + interface: UpgradeableBeaconInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + implementation: TypedContractMethod<[], [string], "view">; + + owner: TypedContractMethod<[], [string], "view">; + + renounceOwnership: TypedContractMethod<[], [void], "nonpayable">; + + transferOwnership: TypedContractMethod< + [newOwner: AddressLike], + [void], + "nonpayable" + >; + + upgradeTo: TypedContractMethod< + [newImplementation: AddressLike], + [void], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "implementation" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "owner" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "renounceOwnership" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "transferOwnership" + ): TypedContractMethod<[newOwner: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "upgradeTo" + ): TypedContractMethod< + [newImplementation: AddressLike], + [void], + "nonpayable" + >; + + getEvent( + key: "OwnershipTransferred" + ): TypedContractEvent< + OwnershipTransferredEvent.InputTuple, + OwnershipTransferredEvent.OutputTuple, + OwnershipTransferredEvent.OutputObject + >; + getEvent( + key: "Upgraded" + ): TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + + filters: { + "OwnershipTransferred(address,address)": TypedContractEvent< + OwnershipTransferredEvent.InputTuple, + OwnershipTransferredEvent.OutputTuple, + OwnershipTransferredEvent.OutputObject + >; + OwnershipTransferred: TypedContractEvent< + OwnershipTransferredEvent.InputTuple, + OwnershipTransferredEvent.OutputTuple, + OwnershipTransferredEvent.OutputObject + >; + + "Upgraded(address)": TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + Upgraded: TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + }; +} diff --git a/typechain-types/src/Upgrades.sol/Vm.ts b/typechain-types/src/Upgrades.sol/Vm.ts new file mode 100644 index 0000000..db988f2 --- /dev/null +++ b/typechain-types/src/Upgrades.sol/Vm.ts @@ -0,0 +1,8350 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../../common"; + +export declare namespace VmSafe { + export type WalletStruct = { + addr: AddressLike; + publicKeyX: BigNumberish; + publicKeyY: BigNumberish; + privateKey: BigNumberish; + }; + + export type WalletStructOutput = [ + addr: string, + publicKeyX: bigint, + publicKeyY: bigint, + privateKey: bigint + ] & { + addr: string; + publicKeyX: bigint; + publicKeyY: bigint; + privateKey: bigint; + }; + + export type EthGetLogsStruct = { + emitter: AddressLike; + topics: BytesLike[]; + data: BytesLike; + blockHash: BytesLike; + blockNumber: BigNumberish; + transactionHash: BytesLike; + transactionIndex: BigNumberish; + logIndex: BigNumberish; + removed: boolean; + }; + + export type EthGetLogsStructOutput = [ + emitter: string, + topics: string[], + data: string, + blockHash: string, + blockNumber: bigint, + transactionHash: string, + transactionIndex: bigint, + logIndex: bigint, + removed: boolean + ] & { + emitter: string; + topics: string[]; + data: string; + blockHash: string; + blockNumber: bigint; + transactionHash: string; + transactionIndex: bigint; + logIndex: bigint; + removed: boolean; + }; + + export type FsMetadataStruct = { + isDir: boolean; + isSymlink: boolean; + length: BigNumberish; + readOnly: boolean; + modified: BigNumberish; + accessed: BigNumberish; + created: BigNumberish; + }; + + export type FsMetadataStructOutput = [ + isDir: boolean, + isSymlink: boolean, + length: bigint, + readOnly: boolean, + modified: bigint, + accessed: bigint, + created: bigint + ] & { + isDir: boolean; + isSymlink: boolean; + length: bigint; + readOnly: boolean; + modified: bigint; + accessed: bigint; + created: bigint; + }; + + export type LogStruct = { + topics: BytesLike[]; + data: BytesLike; + emitter: AddressLike; + }; + + export type LogStructOutput = [ + topics: string[], + data: string, + emitter: string + ] & { topics: string[]; data: string; emitter: string }; + + export type GasStruct = { + gasLimit: BigNumberish; + gasTotalUsed: BigNumberish; + gasMemoryUsed: BigNumberish; + gasRefunded: BigNumberish; + gasRemaining: BigNumberish; + }; + + export type GasStructOutput = [ + gasLimit: bigint, + gasTotalUsed: bigint, + gasMemoryUsed: bigint, + gasRefunded: bigint, + gasRemaining: bigint + ] & { + gasLimit: bigint; + gasTotalUsed: bigint; + gasMemoryUsed: bigint; + gasRefunded: bigint; + gasRemaining: bigint; + }; + + export type DirEntryStruct = { + errorMessage: string; + path: string; + depth: BigNumberish; + isDir: boolean; + isSymlink: boolean; + }; + + export type DirEntryStructOutput = [ + errorMessage: string, + path: string, + depth: bigint, + isDir: boolean, + isSymlink: boolean + ] & { + errorMessage: string; + path: string; + depth: bigint; + isDir: boolean; + isSymlink: boolean; + }; + + export type RpcStruct = { key: string; url: string }; + + export type RpcStructOutput = [key: string, url: string] & { + key: string; + url: string; + }; + + export type ChainInfoStruct = { forkId: BigNumberish; chainId: BigNumberish }; + + export type ChainInfoStructOutput = [forkId: bigint, chainId: bigint] & { + forkId: bigint; + chainId: bigint; + }; + + export type StorageAccessStruct = { + account: AddressLike; + slot: BytesLike; + isWrite: boolean; + previousValue: BytesLike; + newValue: BytesLike; + reverted: boolean; + }; + + export type StorageAccessStructOutput = [ + account: string, + slot: string, + isWrite: boolean, + previousValue: string, + newValue: string, + reverted: boolean + ] & { + account: string; + slot: string; + isWrite: boolean; + previousValue: string; + newValue: string; + reverted: boolean; + }; + + export type AccountAccessStruct = { + chainInfo: VmSafe.ChainInfoStruct; + kind: BigNumberish; + account: AddressLike; + accessor: AddressLike; + initialized: boolean; + oldBalance: BigNumberish; + newBalance: BigNumberish; + deployedCode: BytesLike; + value: BigNumberish; + data: BytesLike; + reverted: boolean; + storageAccesses: VmSafe.StorageAccessStruct[]; + depth: BigNumberish; + }; + + export type AccountAccessStructOutput = [ + chainInfo: VmSafe.ChainInfoStructOutput, + kind: bigint, + account: string, + accessor: string, + initialized: boolean, + oldBalance: bigint, + newBalance: bigint, + deployedCode: string, + value: bigint, + data: string, + reverted: boolean, + storageAccesses: VmSafe.StorageAccessStructOutput[], + depth: bigint + ] & { + chainInfo: VmSafe.ChainInfoStructOutput; + kind: bigint; + account: string; + accessor: string; + initialized: boolean; + oldBalance: bigint; + newBalance: bigint; + deployedCode: string; + value: bigint; + data: string; + reverted: boolean; + storageAccesses: VmSafe.StorageAccessStructOutput[]; + depth: bigint; + }; + + export type FfiResultStruct = { + exitCode: BigNumberish; + stdout: BytesLike; + stderr: BytesLike; + }; + + export type FfiResultStructOutput = [ + exitCode: bigint, + stdout: string, + stderr: string + ] & { exitCode: bigint; stdout: string; stderr: string }; +} + +export interface VmInterface extends Interface { + getFunction( + nameOrSignature: + | "accesses" + | "activeFork" + | "addr" + | "allowCheatcodes" + | "assertApproxEqAbs(uint256,uint256,uint256)" + | "assertApproxEqAbs(int256,int256,uint256)" + | "assertApproxEqAbs(int256,int256,uint256,string)" + | "assertApproxEqAbs(uint256,uint256,uint256,string)" + | "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)" + | "assertApproxEqAbsDecimal(int256,int256,uint256,uint256)" + | "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)" + | "assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)" + | "assertApproxEqRel(uint256,uint256,uint256,string)" + | "assertApproxEqRel(uint256,uint256,uint256)" + | "assertApproxEqRel(int256,int256,uint256,string)" + | "assertApproxEqRel(int256,int256,uint256)" + | "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)" + | "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)" + | "assertApproxEqRelDecimal(int256,int256,uint256,uint256)" + | "assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)" + | "assertEq(bytes32[],bytes32[])" + | "assertEq(int256[],int256[],string)" + | "assertEq(address,address,string)" + | "assertEq(string,string,string)" + | "assertEq(address[],address[])" + | "assertEq(address[],address[],string)" + | "assertEq(bool,bool,string)" + | "assertEq(address,address)" + | "assertEq(uint256[],uint256[],string)" + | "assertEq(bool[],bool[])" + | "assertEq(int256[],int256[])" + | "assertEq(int256,int256,string)" + | "assertEq(bytes32,bytes32)" + | "assertEq(uint256,uint256,string)" + | "assertEq(uint256[],uint256[])" + | "assertEq(bytes,bytes)" + | "assertEq(uint256,uint256)" + | "assertEq(bytes32,bytes32,string)" + | "assertEq(string[],string[])" + | "assertEq(bytes32[],bytes32[],string)" + | "assertEq(bytes,bytes,string)" + | "assertEq(bool[],bool[],string)" + | "assertEq(bytes[],bytes[])" + | "assertEq(string[],string[],string)" + | "assertEq(string,string)" + | "assertEq(bytes[],bytes[],string)" + | "assertEq(bool,bool)" + | "assertEq(int256,int256)" + | "assertEqDecimal(uint256,uint256,uint256)" + | "assertEqDecimal(int256,int256,uint256)" + | "assertEqDecimal(int256,int256,uint256,string)" + | "assertEqDecimal(uint256,uint256,uint256,string)" + | "assertFalse(bool,string)" + | "assertFalse(bool)" + | "assertGe(int256,int256)" + | "assertGe(int256,int256,string)" + | "assertGe(uint256,uint256)" + | "assertGe(uint256,uint256,string)" + | "assertGeDecimal(uint256,uint256,uint256)" + | "assertGeDecimal(int256,int256,uint256,string)" + | "assertGeDecimal(uint256,uint256,uint256,string)" + | "assertGeDecimal(int256,int256,uint256)" + | "assertGt(int256,int256)" + | "assertGt(uint256,uint256,string)" + | "assertGt(uint256,uint256)" + | "assertGt(int256,int256,string)" + | "assertGtDecimal(int256,int256,uint256,string)" + | "assertGtDecimal(uint256,uint256,uint256,string)" + | "assertGtDecimal(int256,int256,uint256)" + | "assertGtDecimal(uint256,uint256,uint256)" + | "assertLe(int256,int256,string)" + | "assertLe(uint256,uint256)" + | "assertLe(int256,int256)" + | "assertLe(uint256,uint256,string)" + | "assertLeDecimal(int256,int256,uint256)" + | "assertLeDecimal(uint256,uint256,uint256,string)" + | "assertLeDecimal(int256,int256,uint256,string)" + | "assertLeDecimal(uint256,uint256,uint256)" + | "assertLt(int256,int256)" + | "assertLt(uint256,uint256,string)" + | "assertLt(int256,int256,string)" + | "assertLt(uint256,uint256)" + | "assertLtDecimal(uint256,uint256,uint256)" + | "assertLtDecimal(int256,int256,uint256,string)" + | "assertLtDecimal(uint256,uint256,uint256,string)" + | "assertLtDecimal(int256,int256,uint256)" + | "assertNotEq(bytes32[],bytes32[])" + | "assertNotEq(int256[],int256[])" + | "assertNotEq(bool,bool,string)" + | "assertNotEq(bytes[],bytes[],string)" + | "assertNotEq(bool,bool)" + | "assertNotEq(bool[],bool[])" + | "assertNotEq(bytes,bytes)" + | "assertNotEq(address[],address[])" + | "assertNotEq(int256,int256,string)" + | "assertNotEq(uint256[],uint256[])" + | "assertNotEq(bool[],bool[],string)" + | "assertNotEq(string,string)" + | "assertNotEq(address[],address[],string)" + | "assertNotEq(string,string,string)" + | "assertNotEq(address,address,string)" + | "assertNotEq(bytes32,bytes32)" + | "assertNotEq(bytes,bytes,string)" + | "assertNotEq(uint256,uint256,string)" + | "assertNotEq(uint256[],uint256[],string)" + | "assertNotEq(address,address)" + | "assertNotEq(bytes32,bytes32,string)" + | "assertNotEq(string[],string[],string)" + | "assertNotEq(uint256,uint256)" + | "assertNotEq(bytes32[],bytes32[],string)" + | "assertNotEq(string[],string[])" + | "assertNotEq(int256[],int256[],string)" + | "assertNotEq(bytes[],bytes[])" + | "assertNotEq(int256,int256)" + | "assertNotEqDecimal(int256,int256,uint256)" + | "assertNotEqDecimal(int256,int256,uint256,string)" + | "assertNotEqDecimal(uint256,uint256,uint256)" + | "assertNotEqDecimal(uint256,uint256,uint256,string)" + | "assertTrue(bool)" + | "assertTrue(bool,string)" + | "assume" + | "blobBaseFee" + | "blobhashes" + | "breakpoint(string)" + | "breakpoint(string,bool)" + | "broadcast()" + | "broadcast(address)" + | "broadcast(uint256)" + | "broadcastRawTransaction" + | "chainId" + | "clearMockedCalls" + | "closeFile" + | "coinbase" + | "computeCreate2Address(bytes32,bytes32)" + | "computeCreate2Address(bytes32,bytes32,address)" + | "computeCreateAddress" + | "copyFile" + | "createDir" + | "createFork(string)" + | "createFork(string,uint256)" + | "createFork(string,bytes32)" + | "createSelectFork(string,uint256)" + | "createSelectFork(string,bytes32)" + | "createSelectFork(string)" + | "createWallet(string)" + | "createWallet(uint256)" + | "createWallet(uint256,string)" + | "deal" + | "deleteSnapshot" + | "deleteSnapshots" + | "deployCode(string,bytes)" + | "deployCode(string)" + | "deriveKey(string,string,uint32,string)" + | "deriveKey(string,uint32,string)" + | "deriveKey(string,uint32)" + | "deriveKey(string,string,uint32)" + | "difficulty" + | "dumpState" + | "ensNamehash" + | "envAddress(string)" + | "envAddress(string,string)" + | "envBool(string)" + | "envBool(string,string)" + | "envBytes(string)" + | "envBytes(string,string)" + | "envBytes32(string,string)" + | "envBytes32(string)" + | "envExists" + | "envInt(string,string)" + | "envInt(string)" + | "envOr(string,string,bytes32[])" + | "envOr(string,string,int256[])" + | "envOr(string,bool)" + | "envOr(string,address)" + | "envOr(string,uint256)" + | "envOr(string,string,bytes[])" + | "envOr(string,string,uint256[])" + | "envOr(string,string,string[])" + | "envOr(string,bytes)" + | "envOr(string,bytes32)" + | "envOr(string,int256)" + | "envOr(string,string,address[])" + | "envOr(string,string)" + | "envOr(string,string,bool[])" + | "envString(string,string)" + | "envString(string)" + | "envUint(string)" + | "envUint(string,string)" + | "etch" + | "eth_getLogs" + | "exists" + | "expectCall(address,uint256,uint64,bytes)" + | "expectCall(address,uint256,uint64,bytes,uint64)" + | "expectCall(address,uint256,bytes,uint64)" + | "expectCall(address,bytes)" + | "expectCall(address,bytes,uint64)" + | "expectCall(address,uint256,bytes)" + | "expectCallMinGas(address,uint256,uint64,bytes)" + | "expectCallMinGas(address,uint256,uint64,bytes,uint64)" + | "expectEmit()" + | "expectEmit(bool,bool,bool,bool)" + | "expectEmit(bool,bool,bool,bool,address)" + | "expectEmit(address)" + | "expectEmitAnonymous()" + | "expectEmitAnonymous(address)" + | "expectEmitAnonymous(bool,bool,bool,bool,bool,address)" + | "expectEmitAnonymous(bool,bool,bool,bool,bool)" + | "expectRevert(bytes4)" + | "expectRevert(bytes)" + | "expectRevert()" + | "expectSafeMemory" + | "expectSafeMemoryCall" + | "fee" + | "ffi" + | "fsMetadata" + | "getBlobBaseFee" + | "getBlobhashes" + | "getBlockNumber" + | "getBlockTimestamp" + | "getCode" + | "getDeployedCode" + | "getFoundryVersion" + | "getLabel" + | "getMappingKeyAndParentOf" + | "getMappingLength" + | "getMappingSlotAt" + | "getNonce(address)" + | "getNonce((address,uint256,uint256,uint256))" + | "getRecordedLogs" + | "indexOf" + | "isContext" + | "isDir" + | "isFile" + | "isPersistent" + | "keyExists" + | "keyExistsJson" + | "keyExistsToml" + | "label" + | "lastCallGas" + | "load" + | "loadAllocs" + | "makePersistent(address[])" + | "makePersistent(address,address)" + | "makePersistent(address)" + | "makePersistent(address,address,address)" + | "mockCall(address,uint256,bytes,bytes)" + | "mockCall(address,bytes,bytes)" + | "mockCallRevert(address,uint256,bytes,bytes)" + | "mockCallRevert(address,bytes,bytes)" + | "parseAddress" + | "parseBool" + | "parseBytes" + | "parseBytes32" + | "parseInt" + | "parseJson(string)" + | "parseJson(string,string)" + | "parseJsonAddress" + | "parseJsonAddressArray" + | "parseJsonBool" + | "parseJsonBoolArray" + | "parseJsonBytes" + | "parseJsonBytes32" + | "parseJsonBytes32Array" + | "parseJsonBytesArray" + | "parseJsonInt" + | "parseJsonIntArray" + | "parseJsonKeys" + | "parseJsonString" + | "parseJsonStringArray" + | "parseJsonType(string,string)" + | "parseJsonType(string,string,string)" + | "parseJsonTypeArray" + | "parseJsonUint" + | "parseJsonUintArray" + | "parseToml(string,string)" + | "parseToml(string)" + | "parseTomlAddress" + | "parseTomlAddressArray" + | "parseTomlBool" + | "parseTomlBoolArray" + | "parseTomlBytes" + | "parseTomlBytes32" + | "parseTomlBytes32Array" + | "parseTomlBytesArray" + | "parseTomlInt" + | "parseTomlIntArray" + | "parseTomlKeys" + | "parseTomlString" + | "parseTomlStringArray" + | "parseTomlUint" + | "parseTomlUintArray" + | "parseUint" + | "pauseGasMetering" + | "prank(address,address)" + | "prank(address)" + | "prevrandao(bytes32)" + | "prevrandao(uint256)" + | "projectRoot" + | "prompt" + | "promptAddress" + | "promptSecret" + | "promptSecretUint" + | "promptUint" + | "randomAddress" + | "randomUint()" + | "randomUint(uint256,uint256)" + | "readCallers" + | "readDir(string,uint64)" + | "readDir(string,uint64,bool)" + | "readDir(string)" + | "readFile" + | "readFileBinary" + | "readLine" + | "readLink" + | "record" + | "recordLogs" + | "rememberKey" + | "removeDir" + | "removeFile" + | "replace" + | "resetNonce" + | "resumeGasMetering" + | "revertTo" + | "revertToAndDelete" + | "revokePersistent(address[])" + | "revokePersistent(address)" + | "roll" + | "rollFork(bytes32)" + | "rollFork(uint256,uint256)" + | "rollFork(uint256)" + | "rollFork(uint256,bytes32)" + | "rpc(string,string,string)" + | "rpc(string,string)" + | "rpcUrl" + | "rpcUrlStructs" + | "rpcUrls" + | "selectFork" + | "serializeAddress(string,string,address[])" + | "serializeAddress(string,string,address)" + | "serializeBool(string,string,bool[])" + | "serializeBool(string,string,bool)" + | "serializeBytes(string,string,bytes[])" + | "serializeBytes(string,string,bytes)" + | "serializeBytes32(string,string,bytes32[])" + | "serializeBytes32(string,string,bytes32)" + | "serializeInt(string,string,int256)" + | "serializeInt(string,string,int256[])" + | "serializeJson" + | "serializeJsonType(string,bytes)" + | "serializeJsonType(string,string,string,bytes)" + | "serializeString(string,string,string[])" + | "serializeString(string,string,string)" + | "serializeUint(string,string,uint256)" + | "serializeUint(string,string,uint256[])" + | "serializeUintToHex" + | "setBlockhash" + | "setEnv" + | "setNonce" + | "setNonceUnsafe" + | "sign(bytes32)" + | "sign(address,bytes32)" + | "sign((address,uint256,uint256,uint256),bytes32)" + | "sign(uint256,bytes32)" + | "signCompact((address,uint256,uint256,uint256),bytes32)" + | "signCompact(address,bytes32)" + | "signCompact(bytes32)" + | "signCompact(uint256,bytes32)" + | "signP256" + | "skip" + | "sleep" + | "snapshot" + | "split" + | "startBroadcast()" + | "startBroadcast(address)" + | "startBroadcast(uint256)" + | "startMappingRecording" + | "startPrank(address)" + | "startPrank(address,address)" + | "startStateDiffRecording" + | "stopAndReturnStateDiff" + | "stopBroadcast" + | "stopExpectSafeMemory" + | "stopMappingRecording" + | "stopPrank" + | "store" + | "toBase64(string)" + | "toBase64(bytes)" + | "toBase64URL(string)" + | "toBase64URL(bytes)" + | "toLowercase" + | "toString(address)" + | "toString(uint256)" + | "toString(bytes)" + | "toString(bool)" + | "toString(int256)" + | "toString(bytes32)" + | "toUppercase" + | "transact(uint256,bytes32)" + | "transact(bytes32)" + | "trim" + | "tryFfi" + | "txGasPrice" + | "unixTime" + | "warp" + | "writeFile" + | "writeFileBinary" + | "writeJson(string,string,string)" + | "writeJson(string,string)" + | "writeLine" + | "writeToml(string,string,string)" + | "writeToml(string,string)" + ): FunctionFragment; + + encodeFunctionData( + functionFragment: "accesses", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "activeFork", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "addr", values: [BigNumberish]): string; + encodeFunctionData( + functionFragment: "allowCheatcodes", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqAbs(uint256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqAbs(int256,int256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqAbs(int256,int256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqAbs(uint256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqAbsDecimal(int256,int256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqRel(uint256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqRel(uint256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqRel(int256,int256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqRel(int256,int256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqRelDecimal(int256,int256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bytes32[],bytes32[])", + values: [BytesLike[], BytesLike[]] + ): string; + encodeFunctionData( + functionFragment: "assertEq(int256[],int256[],string)", + values: [BigNumberish[], BigNumberish[], string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(address,address,string)", + values: [AddressLike, AddressLike, string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(string,string,string)", + values: [string, string, string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(address[],address[])", + values: [AddressLike[], AddressLike[]] + ): string; + encodeFunctionData( + functionFragment: "assertEq(address[],address[],string)", + values: [AddressLike[], AddressLike[], string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bool,bool,string)", + values: [boolean, boolean, string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(address,address)", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "assertEq(uint256[],uint256[],string)", + values: [BigNumberish[], BigNumberish[], string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bool[],bool[])", + values: [boolean[], boolean[]] + ): string; + encodeFunctionData( + functionFragment: "assertEq(int256[],int256[])", + values: [BigNumberish[], BigNumberish[]] + ): string; + encodeFunctionData( + functionFragment: "assertEq(int256,int256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bytes32,bytes32)", + values: [BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "assertEq(uint256,uint256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(uint256[],uint256[])", + values: [BigNumberish[], BigNumberish[]] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bytes,bytes)", + values: [BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "assertEq(uint256,uint256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bytes32,bytes32,string)", + values: [BytesLike, BytesLike, string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(string[],string[])", + values: [string[], string[]] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bytes32[],bytes32[],string)", + values: [BytesLike[], BytesLike[], string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bytes,bytes,string)", + values: [BytesLike, BytesLike, string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bool[],bool[],string)", + values: [boolean[], boolean[], string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bytes[],bytes[])", + values: [BytesLike[], BytesLike[]] + ): string; + encodeFunctionData( + functionFragment: "assertEq(string[],string[],string)", + values: [string[], string[], string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bytes[],bytes[],string)", + values: [BytesLike[], BytesLike[], string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bool,bool)", + values: [boolean, boolean] + ): string; + encodeFunctionData( + functionFragment: "assertEq(int256,int256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertEqDecimal(uint256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertEqDecimal(int256,int256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertEqDecimal(int256,int256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertEqDecimal(uint256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertFalse(bool,string)", + values: [boolean, string] + ): string; + encodeFunctionData( + functionFragment: "assertFalse(bool)", + values: [boolean] + ): string; + encodeFunctionData( + functionFragment: "assertGe(int256,int256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertGe(int256,int256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertGe(uint256,uint256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertGe(uint256,uint256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertGeDecimal(uint256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertGeDecimal(int256,int256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertGeDecimal(uint256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertGeDecimal(int256,int256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertGt(int256,int256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertGt(uint256,uint256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertGt(uint256,uint256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertGt(int256,int256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertGtDecimal(int256,int256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertGtDecimal(uint256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertGtDecimal(int256,int256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertGtDecimal(uint256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertLe(int256,int256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertLe(uint256,uint256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertLe(int256,int256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertLe(uint256,uint256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertLeDecimal(int256,int256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertLeDecimal(uint256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertLeDecimal(int256,int256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertLeDecimal(uint256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertLt(int256,int256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertLt(uint256,uint256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertLt(int256,int256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertLt(uint256,uint256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertLtDecimal(uint256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertLtDecimal(int256,int256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertLtDecimal(uint256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertLtDecimal(int256,int256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bytes32[],bytes32[])", + values: [BytesLike[], BytesLike[]] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(int256[],int256[])", + values: [BigNumberish[], BigNumberish[]] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bool,bool,string)", + values: [boolean, boolean, string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bytes[],bytes[],string)", + values: [BytesLike[], BytesLike[], string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bool,bool)", + values: [boolean, boolean] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bool[],bool[])", + values: [boolean[], boolean[]] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bytes,bytes)", + values: [BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(address[],address[])", + values: [AddressLike[], AddressLike[]] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(int256,int256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(uint256[],uint256[])", + values: [BigNumberish[], BigNumberish[]] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bool[],bool[],string)", + values: [boolean[], boolean[], string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(address[],address[],string)", + values: [AddressLike[], AddressLike[], string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(string,string,string)", + values: [string, string, string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(address,address,string)", + values: [AddressLike, AddressLike, string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bytes32,bytes32)", + values: [BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bytes,bytes,string)", + values: [BytesLike, BytesLike, string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(uint256,uint256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(uint256[],uint256[],string)", + values: [BigNumberish[], BigNumberish[], string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(address,address)", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bytes32,bytes32,string)", + values: [BytesLike, BytesLike, string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(string[],string[],string)", + values: [string[], string[], string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(uint256,uint256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bytes32[],bytes32[],string)", + values: [BytesLike[], BytesLike[], string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(string[],string[])", + values: [string[], string[]] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(int256[],int256[],string)", + values: [BigNumberish[], BigNumberish[], string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bytes[],bytes[])", + values: [BytesLike[], BytesLike[]] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(int256,int256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertNotEqDecimal(int256,int256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertNotEqDecimal(int256,int256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEqDecimal(uint256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertNotEqDecimal(uint256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertTrue(bool)", + values: [boolean] + ): string; + encodeFunctionData( + functionFragment: "assertTrue(bool,string)", + values: [boolean, string] + ): string; + encodeFunctionData(functionFragment: "assume", values: [boolean]): string; + encodeFunctionData( + functionFragment: "blobBaseFee", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "blobhashes", + values: [BytesLike[]] + ): string; + encodeFunctionData( + functionFragment: "breakpoint(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "breakpoint(string,bool)", + values: [string, boolean] + ): string; + encodeFunctionData( + functionFragment: "broadcast()", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "broadcast(address)", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "broadcast(uint256)", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "broadcastRawTransaction", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "chainId", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "clearMockedCalls", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "closeFile", values: [string]): string; + encodeFunctionData( + functionFragment: "coinbase", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "computeCreate2Address(bytes32,bytes32)", + values: [BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "computeCreate2Address(bytes32,bytes32,address)", + values: [BytesLike, BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "computeCreateAddress", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "copyFile", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "createDir", + values: [string, boolean] + ): string; + encodeFunctionData( + functionFragment: "createFork(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "createFork(string,uint256)", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "createFork(string,bytes32)", + values: [string, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "createSelectFork(string,uint256)", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "createSelectFork(string,bytes32)", + values: [string, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "createSelectFork(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "createWallet(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "createWallet(uint256)", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "createWallet(uint256,string)", + values: [BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "deal", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "deleteSnapshot", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "deleteSnapshots", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "deployCode(string,bytes)", + values: [string, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "deployCode(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "deriveKey(string,string,uint32,string)", + values: [string, string, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "deriveKey(string,uint32,string)", + values: [string, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "deriveKey(string,uint32)", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "deriveKey(string,string,uint32)", + values: [string, string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "difficulty", + values: [BigNumberish] + ): string; + encodeFunctionData(functionFragment: "dumpState", values: [string]): string; + encodeFunctionData(functionFragment: "ensNamehash", values: [string]): string; + encodeFunctionData( + functionFragment: "envAddress(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "envAddress(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "envBool(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "envBool(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "envBytes(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "envBytes(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "envBytes32(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "envBytes32(string)", + values: [string] + ): string; + encodeFunctionData(functionFragment: "envExists", values: [string]): string; + encodeFunctionData( + functionFragment: "envInt(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "envInt(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,string,bytes32[])", + values: [string, string, BytesLike[]] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,string,int256[])", + values: [string, string, BigNumberish[]] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,bool)", + values: [string, boolean] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,address)", + values: [string, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,uint256)", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,string,bytes[])", + values: [string, string, BytesLike[]] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,string,uint256[])", + values: [string, string, BigNumberish[]] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,string,string[])", + values: [string, string, string[]] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,bytes)", + values: [string, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,bytes32)", + values: [string, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,int256)", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,string,address[])", + values: [string, string, AddressLike[]] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,string,bool[])", + values: [string, string, boolean[]] + ): string; + encodeFunctionData( + functionFragment: "envString(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "envString(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "envUint(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "envUint(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "etch", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "eth_getLogs", + values: [BigNumberish, BigNumberish, AddressLike, BytesLike[]] + ): string; + encodeFunctionData(functionFragment: "exists", values: [string]): string; + encodeFunctionData( + functionFragment: "expectCall(address,uint256,uint64,bytes)", + values: [AddressLike, BigNumberish, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "expectCall(address,uint256,uint64,bytes,uint64)", + values: [AddressLike, BigNumberish, BigNumberish, BytesLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "expectCall(address,uint256,bytes,uint64)", + values: [AddressLike, BigNumberish, BytesLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "expectCall(address,bytes)", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "expectCall(address,bytes,uint64)", + values: [AddressLike, BytesLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "expectCall(address,uint256,bytes)", + values: [AddressLike, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "expectCallMinGas(address,uint256,uint64,bytes)", + values: [AddressLike, BigNumberish, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "expectCallMinGas(address,uint256,uint64,bytes,uint64)", + values: [AddressLike, BigNumberish, BigNumberish, BytesLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "expectEmit()", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "expectEmit(bool,bool,bool,bool)", + values: [boolean, boolean, boolean, boolean] + ): string; + encodeFunctionData( + functionFragment: "expectEmit(bool,bool,bool,bool,address)", + values: [boolean, boolean, boolean, boolean, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "expectEmit(address)", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "expectEmitAnonymous()", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "expectEmitAnonymous(address)", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "expectEmitAnonymous(bool,bool,bool,bool,bool,address)", + values: [boolean, boolean, boolean, boolean, boolean, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "expectEmitAnonymous(bool,bool,bool,bool,bool)", + values: [boolean, boolean, boolean, boolean, boolean] + ): string; + encodeFunctionData( + functionFragment: "expectRevert(bytes4)", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "expectRevert(bytes)", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "expectRevert()", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "expectSafeMemory", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "expectSafeMemoryCall", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "fee", values: [BigNumberish]): string; + encodeFunctionData(functionFragment: "ffi", values: [string[]]): string; + encodeFunctionData(functionFragment: "fsMetadata", values: [string]): string; + encodeFunctionData( + functionFragment: "getBlobBaseFee", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getBlobhashes", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getBlockNumber", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getBlockTimestamp", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "getCode", values: [string]): string; + encodeFunctionData( + functionFragment: "getDeployedCode", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "getFoundryVersion", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getLabel", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "getMappingKeyAndParentOf", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "getMappingLength", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "getMappingSlotAt", + values: [AddressLike, BytesLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "getNonce(address)", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "getNonce((address,uint256,uint256,uint256))", + values: [VmSafe.WalletStruct] + ): string; + encodeFunctionData( + functionFragment: "getRecordedLogs", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "indexOf", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "isContext", + values: [BigNumberish] + ): string; + encodeFunctionData(functionFragment: "isDir", values: [string]): string; + encodeFunctionData(functionFragment: "isFile", values: [string]): string; + encodeFunctionData( + functionFragment: "isPersistent", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "keyExists", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "keyExistsJson", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "keyExistsToml", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "label", + values: [AddressLike, string] + ): string; + encodeFunctionData( + functionFragment: "lastCallGas", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "load", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData(functionFragment: "loadAllocs", values: [string]): string; + encodeFunctionData( + functionFragment: "makePersistent(address[])", + values: [AddressLike[]] + ): string; + encodeFunctionData( + functionFragment: "makePersistent(address,address)", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "makePersistent(address)", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "makePersistent(address,address,address)", + values: [AddressLike, AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "mockCall(address,uint256,bytes,bytes)", + values: [AddressLike, BigNumberish, BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "mockCall(address,bytes,bytes)", + values: [AddressLike, BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "mockCallRevert(address,uint256,bytes,bytes)", + values: [AddressLike, BigNumberish, BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "mockCallRevert(address,bytes,bytes)", + values: [AddressLike, BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "parseAddress", + values: [string] + ): string; + encodeFunctionData(functionFragment: "parseBool", values: [string]): string; + encodeFunctionData(functionFragment: "parseBytes", values: [string]): string; + encodeFunctionData( + functionFragment: "parseBytes32", + values: [string] + ): string; + encodeFunctionData(functionFragment: "parseInt", values: [string]): string; + encodeFunctionData( + functionFragment: "parseJson(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "parseJson(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonAddress", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonAddressArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonBool", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonBoolArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonBytes", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonBytes32", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonBytes32Array", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonBytesArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonInt", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonIntArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonKeys", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonString", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonStringArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonType(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonType(string,string,string)", + values: [string, string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonTypeArray", + values: [string, string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonUint", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonUintArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseToml(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseToml(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlAddress", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlAddressArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlBool", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlBoolArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlBytes", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlBytes32", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlBytes32Array", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlBytesArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlInt", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlIntArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlKeys", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlString", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlStringArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlUint", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlUintArray", + values: [string, string] + ): string; + encodeFunctionData(functionFragment: "parseUint", values: [string]): string; + encodeFunctionData( + functionFragment: "pauseGasMetering", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "prank(address,address)", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "prank(address)", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "prevrandao(bytes32)", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "prevrandao(uint256)", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "projectRoot", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "prompt", values: [string]): string; + encodeFunctionData( + functionFragment: "promptAddress", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "promptSecret", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "promptSecretUint", + values: [string] + ): string; + encodeFunctionData(functionFragment: "promptUint", values: [string]): string; + encodeFunctionData( + functionFragment: "randomAddress", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "randomUint()", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "randomUint(uint256,uint256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "readCallers", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "readDir(string,uint64)", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "readDir(string,uint64,bool)", + values: [string, BigNumberish, boolean] + ): string; + encodeFunctionData( + functionFragment: "readDir(string)", + values: [string] + ): string; + encodeFunctionData(functionFragment: "readFile", values: [string]): string; + encodeFunctionData( + functionFragment: "readFileBinary", + values: [string] + ): string; + encodeFunctionData(functionFragment: "readLine", values: [string]): string; + encodeFunctionData(functionFragment: "readLink", values: [string]): string; + encodeFunctionData(functionFragment: "record", values?: undefined): string; + encodeFunctionData( + functionFragment: "recordLogs", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "rememberKey", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "removeDir", + values: [string, boolean] + ): string; + encodeFunctionData(functionFragment: "removeFile", values: [string]): string; + encodeFunctionData( + functionFragment: "replace", + values: [string, string, string] + ): string; + encodeFunctionData( + functionFragment: "resetNonce", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "resumeGasMetering", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "revertTo", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "revertToAndDelete", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "revokePersistent(address[])", + values: [AddressLike[]] + ): string; + encodeFunctionData( + functionFragment: "revokePersistent(address)", + values: [AddressLike] + ): string; + encodeFunctionData(functionFragment: "roll", values: [BigNumberish]): string; + encodeFunctionData( + functionFragment: "rollFork(bytes32)", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "rollFork(uint256,uint256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "rollFork(uint256)", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "rollFork(uint256,bytes32)", + values: [BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "rpc(string,string,string)", + values: [string, string, string] + ): string; + encodeFunctionData( + functionFragment: "rpc(string,string)", + values: [string, string] + ): string; + encodeFunctionData(functionFragment: "rpcUrl", values: [string]): string; + encodeFunctionData( + functionFragment: "rpcUrlStructs", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "rpcUrls", values?: undefined): string; + encodeFunctionData( + functionFragment: "selectFork", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "serializeAddress(string,string,address[])", + values: [string, string, AddressLike[]] + ): string; + encodeFunctionData( + functionFragment: "serializeAddress(string,string,address)", + values: [string, string, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "serializeBool(string,string,bool[])", + values: [string, string, boolean[]] + ): string; + encodeFunctionData( + functionFragment: "serializeBool(string,string,bool)", + values: [string, string, boolean] + ): string; + encodeFunctionData( + functionFragment: "serializeBytes(string,string,bytes[])", + values: [string, string, BytesLike[]] + ): string; + encodeFunctionData( + functionFragment: "serializeBytes(string,string,bytes)", + values: [string, string, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "serializeBytes32(string,string,bytes32[])", + values: [string, string, BytesLike[]] + ): string; + encodeFunctionData( + functionFragment: "serializeBytes32(string,string,bytes32)", + values: [string, string, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "serializeInt(string,string,int256)", + values: [string, string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "serializeInt(string,string,int256[])", + values: [string, string, BigNumberish[]] + ): string; + encodeFunctionData( + functionFragment: "serializeJson", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "serializeJsonType(string,bytes)", + values: [string, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "serializeJsonType(string,string,string,bytes)", + values: [string, string, string, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "serializeString(string,string,string[])", + values: [string, string, string[]] + ): string; + encodeFunctionData( + functionFragment: "serializeString(string,string,string)", + values: [string, string, string] + ): string; + encodeFunctionData( + functionFragment: "serializeUint(string,string,uint256)", + values: [string, string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "serializeUint(string,string,uint256[])", + values: [string, string, BigNumberish[]] + ): string; + encodeFunctionData( + functionFragment: "serializeUintToHex", + values: [string, string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "setBlockhash", + values: [BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "setEnv", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "setNonce", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "setNonceUnsafe", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "sign(bytes32)", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "sign(address,bytes32)", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "sign((address,uint256,uint256,uint256),bytes32)", + values: [VmSafe.WalletStruct, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "sign(uint256,bytes32)", + values: [BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "signCompact((address,uint256,uint256,uint256),bytes32)", + values: [VmSafe.WalletStruct, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "signCompact(address,bytes32)", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "signCompact(bytes32)", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "signCompact(uint256,bytes32)", + values: [BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "signP256", + values: [BigNumberish, BytesLike] + ): string; + encodeFunctionData(functionFragment: "skip", values: [boolean]): string; + encodeFunctionData(functionFragment: "sleep", values: [BigNumberish]): string; + encodeFunctionData(functionFragment: "snapshot", values?: undefined): string; + encodeFunctionData( + functionFragment: "split", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "startBroadcast()", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "startBroadcast(address)", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "startBroadcast(uint256)", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "startMappingRecording", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "startPrank(address)", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "startPrank(address,address)", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "startStateDiffRecording", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "stopAndReturnStateDiff", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "stopBroadcast", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "stopExpectSafeMemory", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "stopMappingRecording", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "stopPrank", values?: undefined): string; + encodeFunctionData( + functionFragment: "store", + values: [AddressLike, BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "toBase64(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "toBase64(bytes)", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "toBase64URL(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "toBase64URL(bytes)", + values: [BytesLike] + ): string; + encodeFunctionData(functionFragment: "toLowercase", values: [string]): string; + encodeFunctionData( + functionFragment: "toString(address)", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "toString(uint256)", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "toString(bytes)", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "toString(bool)", + values: [boolean] + ): string; + encodeFunctionData( + functionFragment: "toString(int256)", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "toString(bytes32)", + values: [BytesLike] + ): string; + encodeFunctionData(functionFragment: "toUppercase", values: [string]): string; + encodeFunctionData( + functionFragment: "transact(uint256,bytes32)", + values: [BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "transact(bytes32)", + values: [BytesLike] + ): string; + encodeFunctionData(functionFragment: "trim", values: [string]): string; + encodeFunctionData(functionFragment: "tryFfi", values: [string[]]): string; + encodeFunctionData( + functionFragment: "txGasPrice", + values: [BigNumberish] + ): string; + encodeFunctionData(functionFragment: "unixTime", values?: undefined): string; + encodeFunctionData(functionFragment: "warp", values: [BigNumberish]): string; + encodeFunctionData( + functionFragment: "writeFile", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "writeFileBinary", + values: [string, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "writeJson(string,string,string)", + values: [string, string, string] + ): string; + encodeFunctionData( + functionFragment: "writeJson(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "writeLine", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "writeToml(string,string,string)", + values: [string, string, string] + ): string; + encodeFunctionData( + functionFragment: "writeToml(string,string)", + values: [string, string] + ): string; + + decodeFunctionResult(functionFragment: "accesses", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "activeFork", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "addr", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "allowCheatcodes", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqAbs(uint256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqAbs(int256,int256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqAbs(int256,int256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqAbs(uint256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqAbsDecimal(int256,int256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqRel(uint256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqRel(uint256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqRel(int256,int256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqRel(int256,int256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqRelDecimal(int256,int256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bytes32[],bytes32[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(int256[],int256[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(address,address,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(string,string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(address[],address[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(address[],address[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bool,bool,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(address,address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(uint256[],uint256[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bool[],bool[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(int256[],int256[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(int256,int256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bytes32,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(uint256[],uint256[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bytes,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bytes32,bytes32,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(string[],string[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bytes32[],bytes32[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bytes,bytes,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bool[],bool[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bytes[],bytes[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(string[],string[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bytes[],bytes[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bool,bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(int256,int256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEqDecimal(uint256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEqDecimal(int256,int256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEqDecimal(int256,int256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEqDecimal(uint256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertFalse(bool,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertFalse(bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGe(int256,int256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGe(int256,int256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGe(uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGe(uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGeDecimal(uint256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGeDecimal(int256,int256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGeDecimal(uint256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGeDecimal(int256,int256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGt(int256,int256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGt(uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGt(uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGt(int256,int256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGtDecimal(int256,int256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGtDecimal(uint256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGtDecimal(int256,int256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGtDecimal(uint256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLe(int256,int256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLe(uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLe(int256,int256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLe(uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLeDecimal(int256,int256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLeDecimal(uint256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLeDecimal(int256,int256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLeDecimal(uint256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLt(int256,int256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLt(uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLt(int256,int256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLt(uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLtDecimal(uint256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLtDecimal(int256,int256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLtDecimal(uint256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLtDecimal(int256,int256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bytes32[],bytes32[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(int256[],int256[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bool,bool,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bytes[],bytes[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bool,bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bool[],bool[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bytes,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(address[],address[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(int256,int256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(uint256[],uint256[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bool[],bool[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(address[],address[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(string,string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(address,address,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bytes32,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bytes,bytes,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(uint256[],uint256[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(address,address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bytes32,bytes32,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(string[],string[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bytes32[],bytes32[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(string[],string[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(int256[],int256[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bytes[],bytes[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(int256,int256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEqDecimal(int256,int256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEqDecimal(int256,int256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEqDecimal(uint256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEqDecimal(uint256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertTrue(bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertTrue(bool,string)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "assume", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "blobBaseFee", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "blobhashes", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "breakpoint(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "breakpoint(string,bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "broadcast()", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "broadcast(address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "broadcast(uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "broadcastRawTransaction", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "chainId", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "clearMockedCalls", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "closeFile", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "coinbase", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "computeCreate2Address(bytes32,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "computeCreate2Address(bytes32,bytes32,address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "computeCreateAddress", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "copyFile", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "createDir", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "createFork(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "createFork(string,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "createFork(string,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "createSelectFork(string,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "createSelectFork(string,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "createSelectFork(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "createWallet(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "createWallet(uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "createWallet(uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "deal", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "deleteSnapshot", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "deleteSnapshots", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "deployCode(string,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "deployCode(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "deriveKey(string,string,uint32,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "deriveKey(string,uint32,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "deriveKey(string,uint32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "deriveKey(string,string,uint32)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "difficulty", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "dumpState", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "ensNamehash", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envAddress(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envAddress(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envBool(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envBool(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envBytes(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envBytes(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envBytes32(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envBytes32(string)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "envExists", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "envInt(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envInt(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,string,bytes32[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,string,int256[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,string,bytes[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,string,uint256[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,string,string[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,int256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,string,address[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,string,bool[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envString(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envString(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envUint(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envUint(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "etch", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "eth_getLogs", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "exists", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "expectCall(address,uint256,uint64,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectCall(address,uint256,uint64,bytes,uint64)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectCall(address,uint256,bytes,uint64)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectCall(address,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectCall(address,bytes,uint64)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectCall(address,uint256,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectCallMinGas(address,uint256,uint64,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectCallMinGas(address,uint256,uint64,bytes,uint64)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectEmit()", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectEmit(bool,bool,bool,bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectEmit(bool,bool,bool,bool,address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectEmit(address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectEmitAnonymous()", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectEmitAnonymous(address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectEmitAnonymous(bool,bool,bool,bool,bool,address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectEmitAnonymous(bool,bool,bool,bool,bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectRevert(bytes4)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectRevert(bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectRevert()", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectSafeMemory", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "expectSafeMemoryCall", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "fee", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "ffi", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "fsMetadata", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "getBlobBaseFee", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getBlobhashes", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getBlockNumber", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getBlockTimestamp", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "getCode", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "getDeployedCode", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getFoundryVersion", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "getLabel", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "getMappingKeyAndParentOf", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getMappingLength", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getMappingSlotAt", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getNonce(address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getNonce((address,uint256,uint256,uint256))", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getRecordedLogs", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "indexOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "isContext", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "isDir", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "isFile", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "isPersistent", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "keyExists", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "keyExistsJson", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "keyExistsToml", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "label", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "lastCallGas", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "load", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "loadAllocs", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "makePersistent(address[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "makePersistent(address,address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "makePersistent(address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "makePersistent(address,address,address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "mockCall(address,uint256,bytes,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "mockCall(address,bytes,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "mockCallRevert(address,uint256,bytes,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "mockCallRevert(address,bytes,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseAddress", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "parseBool", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "parseBytes", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "parseBytes32", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "parseInt", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "parseJson(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJson(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonAddress", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonAddressArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonBool", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonBoolArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonBytes", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonBytes32", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonBytes32Array", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonBytesArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonInt", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonIntArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonKeys", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonString", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonStringArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonType(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonType(string,string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonTypeArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonUint", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonUintArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseToml(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseToml(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlAddress", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlAddressArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlBool", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlBoolArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlBytes", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlBytes32", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlBytes32Array", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlBytesArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlInt", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlIntArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlKeys", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlString", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlStringArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlUint", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlUintArray", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "parseUint", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "pauseGasMetering", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "prank(address,address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "prank(address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "prevrandao(bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "prevrandao(uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "projectRoot", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "prompt", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "promptAddress", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "promptSecret", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "promptSecretUint", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "promptUint", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "randomAddress", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "randomUint()", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "randomUint(uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "readCallers", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "readDir(string,uint64)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "readDir(string,uint64,bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "readDir(string)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "readFile", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "readFileBinary", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "readLine", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "readLink", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "record", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "recordLogs", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "rememberKey", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "removeDir", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "removeFile", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "replace", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "resetNonce", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "resumeGasMetering", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "revertTo", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "revertToAndDelete", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "revokePersistent(address[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "revokePersistent(address)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "roll", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "rollFork(bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "rollFork(uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "rollFork(uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "rollFork(uint256,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "rpc(string,string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "rpc(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "rpcUrl", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "rpcUrlStructs", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "rpcUrls", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "selectFork", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "serializeAddress(string,string,address[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeAddress(string,string,address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeBool(string,string,bool[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeBool(string,string,bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeBytes(string,string,bytes[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeBytes(string,string,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeBytes32(string,string,bytes32[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeBytes32(string,string,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeInt(string,string,int256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeInt(string,string,int256[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeJson", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeJsonType(string,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeJsonType(string,string,string,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeString(string,string,string[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeString(string,string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeUint(string,string,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeUint(string,string,uint256[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeUintToHex", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setBlockhash", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "setEnv", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "setNonce", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "setNonceUnsafe", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "sign(bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "sign(address,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "sign((address,uint256,uint256,uint256),bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "sign(uint256,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "signCompact((address,uint256,uint256,uint256),bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "signCompact(address,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "signCompact(bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "signCompact(uint256,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "signP256", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "skip", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "sleep", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "snapshot", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "split", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "startBroadcast()", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "startBroadcast(address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "startBroadcast(uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "startMappingRecording", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "startPrank(address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "startPrank(address,address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "startStateDiffRecording", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "stopAndReturnStateDiff", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "stopBroadcast", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "stopExpectSafeMemory", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "stopMappingRecording", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "stopPrank", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "store", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "toBase64(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toBase64(bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toBase64URL(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toBase64URL(bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toLowercase", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toString(address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toString(uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toString(bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toString(bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toString(int256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toString(bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toUppercase", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "transact(uint256,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "transact(bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "trim", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "tryFfi", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "txGasPrice", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "unixTime", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "warp", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "writeFile", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "writeFileBinary", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "writeJson(string,string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "writeJson(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "writeLine", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "writeToml(string,string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "writeToml(string,string)", + data: BytesLike + ): Result; +} + +export interface Vm extends BaseContract { + connect(runner?: ContractRunner | null): Vm; + waitForDeployment(): Promise; + + interface: VmInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + accesses: TypedContractMethod< + [target: AddressLike], + [[string[], string[]] & { readSlots: string[]; writeSlots: string[] }], + "nonpayable" + >; + + activeFork: TypedContractMethod<[], [bigint], "view">; + + addr: TypedContractMethod<[privateKey: BigNumberish], [string], "view">; + + allowCheatcodes: TypedContractMethod< + [account: AddressLike], + [void], + "nonpayable" + >; + + "assertApproxEqAbs(uint256,uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, maxDelta: BigNumberish], + [void], + "view" + >; + + "assertApproxEqAbs(int256,int256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, maxDelta: BigNumberish], + [void], + "view" + >; + + "assertApproxEqAbs(int256,int256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertApproxEqAbs(uint256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + decimals: BigNumberish + ], + [void], + "view" + >; + + "assertApproxEqAbsDecimal(int256,int256,uint256,uint256)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + decimals: BigNumberish + ], + [void], + "view" + >; + + "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertApproxEqRel(uint256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertApproxEqRel(uint256,uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, maxPercentDelta: BigNumberish], + [void], + "view" + >; + + "assertApproxEqRel(int256,int256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertApproxEqRel(int256,int256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, maxPercentDelta: BigNumberish], + [void], + "view" + >; + + "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + decimals: BigNumberish + ], + [void], + "view" + >; + + "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertApproxEqRelDecimal(int256,int256,uint256,uint256)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + decimals: BigNumberish + ], + [void], + "view" + >; + + "assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertEq(bytes32[],bytes32[])": TypedContractMethod< + [left: BytesLike[], right: BytesLike[]], + [void], + "view" + >; + + "assertEq(int256[],int256[],string)": TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[], error: string], + [void], + "view" + >; + + "assertEq(address,address,string)": TypedContractMethod< + [left: AddressLike, right: AddressLike, error: string], + [void], + "view" + >; + + "assertEq(string,string,string)": TypedContractMethod< + [left: string, right: string, error: string], + [void], + "view" + >; + + "assertEq(address[],address[])": TypedContractMethod< + [left: AddressLike[], right: AddressLike[]], + [void], + "view" + >; + + "assertEq(address[],address[],string)": TypedContractMethod< + [left: AddressLike[], right: AddressLike[], error: string], + [void], + "view" + >; + + "assertEq(bool,bool,string)": TypedContractMethod< + [left: boolean, right: boolean, error: string], + [void], + "view" + >; + + "assertEq(address,address)": TypedContractMethod< + [left: AddressLike, right: AddressLike], + [void], + "view" + >; + + "assertEq(uint256[],uint256[],string)": TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[], error: string], + [void], + "view" + >; + + "assertEq(bool[],bool[])": TypedContractMethod< + [left: boolean[], right: boolean[]], + [void], + "view" + >; + + "assertEq(int256[],int256[])": TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[]], + [void], + "view" + >; + + "assertEq(int256,int256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertEq(bytes32,bytes32)": TypedContractMethod< + [left: BytesLike, right: BytesLike], + [void], + "view" + >; + + "assertEq(uint256,uint256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertEq(uint256[],uint256[])": TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[]], + [void], + "view" + >; + + "assertEq(bytes,bytes)": TypedContractMethod< + [left: BytesLike, right: BytesLike], + [void], + "view" + >; + + "assertEq(uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertEq(bytes32,bytes32,string)": TypedContractMethod< + [left: BytesLike, right: BytesLike, error: string], + [void], + "view" + >; + + "assertEq(string[],string[])": TypedContractMethod< + [left: string[], right: string[]], + [void], + "view" + >; + + "assertEq(bytes32[],bytes32[],string)": TypedContractMethod< + [left: BytesLike[], right: BytesLike[], error: string], + [void], + "view" + >; + + "assertEq(bytes,bytes,string)": TypedContractMethod< + [left: BytesLike, right: BytesLike, error: string], + [void], + "view" + >; + + "assertEq(bool[],bool[],string)": TypedContractMethod< + [left: boolean[], right: boolean[], error: string], + [void], + "view" + >; + + "assertEq(bytes[],bytes[])": TypedContractMethod< + [left: BytesLike[], right: BytesLike[]], + [void], + "view" + >; + + "assertEq(string[],string[],string)": TypedContractMethod< + [left: string[], right: string[], error: string], + [void], + "view" + >; + + "assertEq(string,string)": TypedContractMethod< + [left: string, right: string], + [void], + "view" + >; + + "assertEq(bytes[],bytes[],string)": TypedContractMethod< + [left: BytesLike[], right: BytesLike[], error: string], + [void], + "view" + >; + + "assertEq(bool,bool)": TypedContractMethod< + [left: boolean, right: boolean], + [void], + "view" + >; + + "assertEq(int256,int256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertEqDecimal(uint256,uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertEqDecimal(int256,int256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertEqDecimal(int256,int256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertEqDecimal(uint256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertFalse(bool,string)": TypedContractMethod< + [condition: boolean, error: string], + [void], + "view" + >; + + "assertFalse(bool)": TypedContractMethod< + [condition: boolean], + [void], + "view" + >; + + "assertGe(int256,int256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertGe(int256,int256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertGe(uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertGe(uint256,uint256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertGeDecimal(uint256,uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertGeDecimal(int256,int256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertGeDecimal(uint256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertGeDecimal(int256,int256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertGt(int256,int256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertGt(uint256,uint256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertGt(uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertGt(int256,int256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertGtDecimal(int256,int256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertGtDecimal(uint256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertGtDecimal(int256,int256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertGtDecimal(uint256,uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertLe(int256,int256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertLe(uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertLe(int256,int256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertLe(uint256,uint256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertLeDecimal(int256,int256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertLeDecimal(uint256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertLeDecimal(int256,int256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertLeDecimal(uint256,uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertLt(int256,int256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertLt(uint256,uint256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertLt(int256,int256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertLt(uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertLtDecimal(uint256,uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertLtDecimal(int256,int256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertLtDecimal(uint256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertLtDecimal(int256,int256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertNotEq(bytes32[],bytes32[])": TypedContractMethod< + [left: BytesLike[], right: BytesLike[]], + [void], + "view" + >; + + "assertNotEq(int256[],int256[])": TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[]], + [void], + "view" + >; + + "assertNotEq(bool,bool,string)": TypedContractMethod< + [left: boolean, right: boolean, error: string], + [void], + "view" + >; + + "assertNotEq(bytes[],bytes[],string)": TypedContractMethod< + [left: BytesLike[], right: BytesLike[], error: string], + [void], + "view" + >; + + "assertNotEq(bool,bool)": TypedContractMethod< + [left: boolean, right: boolean], + [void], + "view" + >; + + "assertNotEq(bool[],bool[])": TypedContractMethod< + [left: boolean[], right: boolean[]], + [void], + "view" + >; + + "assertNotEq(bytes,bytes)": TypedContractMethod< + [left: BytesLike, right: BytesLike], + [void], + "view" + >; + + "assertNotEq(address[],address[])": TypedContractMethod< + [left: AddressLike[], right: AddressLike[]], + [void], + "view" + >; + + "assertNotEq(int256,int256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertNotEq(uint256[],uint256[])": TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[]], + [void], + "view" + >; + + "assertNotEq(bool[],bool[],string)": TypedContractMethod< + [left: boolean[], right: boolean[], error: string], + [void], + "view" + >; + + "assertNotEq(string,string)": TypedContractMethod< + [left: string, right: string], + [void], + "view" + >; + + "assertNotEq(address[],address[],string)": TypedContractMethod< + [left: AddressLike[], right: AddressLike[], error: string], + [void], + "view" + >; + + "assertNotEq(string,string,string)": TypedContractMethod< + [left: string, right: string, error: string], + [void], + "view" + >; + + "assertNotEq(address,address,string)": TypedContractMethod< + [left: AddressLike, right: AddressLike, error: string], + [void], + "view" + >; + + "assertNotEq(bytes32,bytes32)": TypedContractMethod< + [left: BytesLike, right: BytesLike], + [void], + "view" + >; + + "assertNotEq(bytes,bytes,string)": TypedContractMethod< + [left: BytesLike, right: BytesLike, error: string], + [void], + "view" + >; + + "assertNotEq(uint256,uint256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertNotEq(uint256[],uint256[],string)": TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[], error: string], + [void], + "view" + >; + + "assertNotEq(address,address)": TypedContractMethod< + [left: AddressLike, right: AddressLike], + [void], + "view" + >; + + "assertNotEq(bytes32,bytes32,string)": TypedContractMethod< + [left: BytesLike, right: BytesLike, error: string], + [void], + "view" + >; + + "assertNotEq(string[],string[],string)": TypedContractMethod< + [left: string[], right: string[], error: string], + [void], + "view" + >; + + "assertNotEq(uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertNotEq(bytes32[],bytes32[],string)": TypedContractMethod< + [left: BytesLike[], right: BytesLike[], error: string], + [void], + "view" + >; + + "assertNotEq(string[],string[])": TypedContractMethod< + [left: string[], right: string[]], + [void], + "view" + >; + + "assertNotEq(int256[],int256[],string)": TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[], error: string], + [void], + "view" + >; + + "assertNotEq(bytes[],bytes[])": TypedContractMethod< + [left: BytesLike[], right: BytesLike[]], + [void], + "view" + >; + + "assertNotEq(int256,int256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertNotEqDecimal(int256,int256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertNotEqDecimal(int256,int256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertNotEqDecimal(uint256,uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertNotEqDecimal(uint256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertTrue(bool)": TypedContractMethod<[condition: boolean], [void], "view">; + + "assertTrue(bool,string)": TypedContractMethod< + [condition: boolean, error: string], + [void], + "view" + >; + + assume: TypedContractMethod<[condition: boolean], [void], "view">; + + blobBaseFee: TypedContractMethod< + [newBlobBaseFee: BigNumberish], + [void], + "nonpayable" + >; + + blobhashes: TypedContractMethod<[hashes: BytesLike[]], [void], "nonpayable">; + + "breakpoint(string)": TypedContractMethod< + [char: string], + [void], + "nonpayable" + >; + + "breakpoint(string,bool)": TypedContractMethod< + [char: string, value: boolean], + [void], + "nonpayable" + >; + + "broadcast()": TypedContractMethod<[], [void], "nonpayable">; + + "broadcast(address)": TypedContractMethod< + [signer: AddressLike], + [void], + "nonpayable" + >; + + "broadcast(uint256)": TypedContractMethod< + [privateKey: BigNumberish], + [void], + "nonpayable" + >; + + broadcastRawTransaction: TypedContractMethod< + [data: BytesLike], + [void], + "nonpayable" + >; + + chainId: TypedContractMethod< + [newChainId: BigNumberish], + [void], + "nonpayable" + >; + + clearMockedCalls: TypedContractMethod<[], [void], "nonpayable">; + + closeFile: TypedContractMethod<[path: string], [void], "nonpayable">; + + coinbase: TypedContractMethod< + [newCoinbase: AddressLike], + [void], + "nonpayable" + >; + + "computeCreate2Address(bytes32,bytes32)": TypedContractMethod< + [salt: BytesLike, initCodeHash: BytesLike], + [string], + "view" + >; + + "computeCreate2Address(bytes32,bytes32,address)": TypedContractMethod< + [salt: BytesLike, initCodeHash: BytesLike, deployer: AddressLike], + [string], + "view" + >; + + computeCreateAddress: TypedContractMethod< + [deployer: AddressLike, nonce: BigNumberish], + [string], + "view" + >; + + copyFile: TypedContractMethod< + [from: string, to: string], + [bigint], + "nonpayable" + >; + + createDir: TypedContractMethod< + [path: string, recursive: boolean], + [void], + "nonpayable" + >; + + "createFork(string)": TypedContractMethod< + [urlOrAlias: string], + [bigint], + "nonpayable" + >; + + "createFork(string,uint256)": TypedContractMethod< + [urlOrAlias: string, blockNumber: BigNumberish], + [bigint], + "nonpayable" + >; + + "createFork(string,bytes32)": TypedContractMethod< + [urlOrAlias: string, txHash: BytesLike], + [bigint], + "nonpayable" + >; + + "createSelectFork(string,uint256)": TypedContractMethod< + [urlOrAlias: string, blockNumber: BigNumberish], + [bigint], + "nonpayable" + >; + + "createSelectFork(string,bytes32)": TypedContractMethod< + [urlOrAlias: string, txHash: BytesLike], + [bigint], + "nonpayable" + >; + + "createSelectFork(string)": TypedContractMethod< + [urlOrAlias: string], + [bigint], + "nonpayable" + >; + + "createWallet(string)": TypedContractMethod< + [walletLabel: string], + [VmSafe.WalletStructOutput], + "nonpayable" + >; + + "createWallet(uint256)": TypedContractMethod< + [privateKey: BigNumberish], + [VmSafe.WalletStructOutput], + "nonpayable" + >; + + "createWallet(uint256,string)": TypedContractMethod< + [privateKey: BigNumberish, walletLabel: string], + [VmSafe.WalletStructOutput], + "nonpayable" + >; + + deal: TypedContractMethod< + [account: AddressLike, newBalance: BigNumberish], + [void], + "nonpayable" + >; + + deleteSnapshot: TypedContractMethod< + [snapshotId: BigNumberish], + [boolean], + "nonpayable" + >; + + deleteSnapshots: TypedContractMethod<[], [void], "nonpayable">; + + "deployCode(string,bytes)": TypedContractMethod< + [artifactPath: string, constructorArgs: BytesLike], + [string], + "nonpayable" + >; + + "deployCode(string)": TypedContractMethod< + [artifactPath: string], + [string], + "nonpayable" + >; + + "deriveKey(string,string,uint32,string)": TypedContractMethod< + [ + mnemonic: string, + derivationPath: string, + index: BigNumberish, + language: string + ], + [bigint], + "view" + >; + + "deriveKey(string,uint32,string)": TypedContractMethod< + [mnemonic: string, index: BigNumberish, language: string], + [bigint], + "view" + >; + + "deriveKey(string,uint32)": TypedContractMethod< + [mnemonic: string, index: BigNumberish], + [bigint], + "view" + >; + + "deriveKey(string,string,uint32)": TypedContractMethod< + [mnemonic: string, derivationPath: string, index: BigNumberish], + [bigint], + "view" + >; + + difficulty: TypedContractMethod< + [newDifficulty: BigNumberish], + [void], + "nonpayable" + >; + + dumpState: TypedContractMethod< + [pathToStateJson: string], + [void], + "nonpayable" + >; + + ensNamehash: TypedContractMethod<[name: string], [string], "view">; + + "envAddress(string)": TypedContractMethod<[name: string], [string], "view">; + + "envAddress(string,string)": TypedContractMethod< + [name: string, delim: string], + [string[]], + "view" + >; + + "envBool(string)": TypedContractMethod<[name: string], [boolean], "view">; + + "envBool(string,string)": TypedContractMethod< + [name: string, delim: string], + [boolean[]], + "view" + >; + + "envBytes(string)": TypedContractMethod<[name: string], [string], "view">; + + "envBytes(string,string)": TypedContractMethod< + [name: string, delim: string], + [string[]], + "view" + >; + + "envBytes32(string,string)": TypedContractMethod< + [name: string, delim: string], + [string[]], + "view" + >; + + "envBytes32(string)": TypedContractMethod<[name: string], [string], "view">; + + envExists: TypedContractMethod<[name: string], [boolean], "view">; + + "envInt(string,string)": TypedContractMethod< + [name: string, delim: string], + [bigint[]], + "view" + >; + + "envInt(string)": TypedContractMethod<[name: string], [bigint], "view">; + + "envOr(string,string,bytes32[])": TypedContractMethod< + [name: string, delim: string, defaultValue: BytesLike[]], + [string[]], + "view" + >; + + "envOr(string,string,int256[])": TypedContractMethod< + [name: string, delim: string, defaultValue: BigNumberish[]], + [bigint[]], + "view" + >; + + "envOr(string,bool)": TypedContractMethod< + [name: string, defaultValue: boolean], + [boolean], + "view" + >; + + "envOr(string,address)": TypedContractMethod< + [name: string, defaultValue: AddressLike], + [string], + "view" + >; + + "envOr(string,uint256)": TypedContractMethod< + [name: string, defaultValue: BigNumberish], + [bigint], + "view" + >; + + "envOr(string,string,bytes[])": TypedContractMethod< + [name: string, delim: string, defaultValue: BytesLike[]], + [string[]], + "view" + >; + + "envOr(string,string,uint256[])": TypedContractMethod< + [name: string, delim: string, defaultValue: BigNumberish[]], + [bigint[]], + "view" + >; + + "envOr(string,string,string[])": TypedContractMethod< + [name: string, delim: string, defaultValue: string[]], + [string[]], + "view" + >; + + "envOr(string,bytes)": TypedContractMethod< + [name: string, defaultValue: BytesLike], + [string], + "view" + >; + + "envOr(string,bytes32)": TypedContractMethod< + [name: string, defaultValue: BytesLike], + [string], + "view" + >; + + "envOr(string,int256)": TypedContractMethod< + [name: string, defaultValue: BigNumberish], + [bigint], + "view" + >; + + "envOr(string,string,address[])": TypedContractMethod< + [name: string, delim: string, defaultValue: AddressLike[]], + [string[]], + "view" + >; + + "envOr(string,string)": TypedContractMethod< + [name: string, defaultValue: string], + [string], + "view" + >; + + "envOr(string,string,bool[])": TypedContractMethod< + [name: string, delim: string, defaultValue: boolean[]], + [boolean[]], + "view" + >; + + "envString(string,string)": TypedContractMethod< + [name: string, delim: string], + [string[]], + "view" + >; + + "envString(string)": TypedContractMethod<[name: string], [string], "view">; + + "envUint(string)": TypedContractMethod<[name: string], [bigint], "view">; + + "envUint(string,string)": TypedContractMethod< + [name: string, delim: string], + [bigint[]], + "view" + >; + + etch: TypedContractMethod< + [target: AddressLike, newRuntimeBytecode: BytesLike], + [void], + "nonpayable" + >; + + eth_getLogs: TypedContractMethod< + [ + fromBlock: BigNumberish, + toBlock: BigNumberish, + target: AddressLike, + topics: BytesLike[] + ], + [VmSafe.EthGetLogsStructOutput[]], + "nonpayable" + >; + + exists: TypedContractMethod<[path: string], [boolean], "nonpayable">; + + "expectCall(address,uint256,uint64,bytes)": TypedContractMethod< + [ + callee: AddressLike, + msgValue: BigNumberish, + gas: BigNumberish, + data: BytesLike + ], + [void], + "nonpayable" + >; + + "expectCall(address,uint256,uint64,bytes,uint64)": TypedContractMethod< + [ + callee: AddressLike, + msgValue: BigNumberish, + gas: BigNumberish, + data: BytesLike, + count: BigNumberish + ], + [void], + "nonpayable" + >; + + "expectCall(address,uint256,bytes,uint64)": TypedContractMethod< + [ + callee: AddressLike, + msgValue: BigNumberish, + data: BytesLike, + count: BigNumberish + ], + [void], + "nonpayable" + >; + + "expectCall(address,bytes)": TypedContractMethod< + [callee: AddressLike, data: BytesLike], + [void], + "nonpayable" + >; + + "expectCall(address,bytes,uint64)": TypedContractMethod< + [callee: AddressLike, data: BytesLike, count: BigNumberish], + [void], + "nonpayable" + >; + + "expectCall(address,uint256,bytes)": TypedContractMethod< + [callee: AddressLike, msgValue: BigNumberish, data: BytesLike], + [void], + "nonpayable" + >; + + "expectCallMinGas(address,uint256,uint64,bytes)": TypedContractMethod< + [ + callee: AddressLike, + msgValue: BigNumberish, + minGas: BigNumberish, + data: BytesLike + ], + [void], + "nonpayable" + >; + + "expectCallMinGas(address,uint256,uint64,bytes,uint64)": TypedContractMethod< + [ + callee: AddressLike, + msgValue: BigNumberish, + minGas: BigNumberish, + data: BytesLike, + count: BigNumberish + ], + [void], + "nonpayable" + >; + + "expectEmit()": TypedContractMethod<[], [void], "nonpayable">; + + "expectEmit(bool,bool,bool,bool)": TypedContractMethod< + [ + checkTopic1: boolean, + checkTopic2: boolean, + checkTopic3: boolean, + checkData: boolean + ], + [void], + "nonpayable" + >; + + "expectEmit(bool,bool,bool,bool,address)": TypedContractMethod< + [ + checkTopic1: boolean, + checkTopic2: boolean, + checkTopic3: boolean, + checkData: boolean, + emitter: AddressLike + ], + [void], + "nonpayable" + >; + + "expectEmit(address)": TypedContractMethod< + [emitter: AddressLike], + [void], + "nonpayable" + >; + + "expectEmitAnonymous()": TypedContractMethod<[], [void], "nonpayable">; + + "expectEmitAnonymous(address)": TypedContractMethod< + [emitter: AddressLike], + [void], + "nonpayable" + >; + + "expectEmitAnonymous(bool,bool,bool,bool,bool,address)": TypedContractMethod< + [ + checkTopic0: boolean, + checkTopic1: boolean, + checkTopic2: boolean, + checkTopic3: boolean, + checkData: boolean, + emitter: AddressLike + ], + [void], + "nonpayable" + >; + + "expectEmitAnonymous(bool,bool,bool,bool,bool)": TypedContractMethod< + [ + checkTopic0: boolean, + checkTopic1: boolean, + checkTopic2: boolean, + checkTopic3: boolean, + checkData: boolean + ], + [void], + "nonpayable" + >; + + "expectRevert(bytes4)": TypedContractMethod< + [revertData: BytesLike], + [void], + "nonpayable" + >; + + "expectRevert(bytes)": TypedContractMethod< + [revertData: BytesLike], + [void], + "nonpayable" + >; + + "expectRevert()": TypedContractMethod<[], [void], "nonpayable">; + + expectSafeMemory: TypedContractMethod< + [min: BigNumberish, max: BigNumberish], + [void], + "nonpayable" + >; + + expectSafeMemoryCall: TypedContractMethod< + [min: BigNumberish, max: BigNumberish], + [void], + "nonpayable" + >; + + fee: TypedContractMethod<[newBasefee: BigNumberish], [void], "nonpayable">; + + ffi: TypedContractMethod<[commandInput: string[]], [string], "nonpayable">; + + fsMetadata: TypedContractMethod< + [path: string], + [VmSafe.FsMetadataStructOutput], + "view" + >; + + getBlobBaseFee: TypedContractMethod<[], [bigint], "view">; + + getBlobhashes: TypedContractMethod<[], [string[]], "view">; + + getBlockNumber: TypedContractMethod<[], [bigint], "view">; + + getBlockTimestamp: TypedContractMethod<[], [bigint], "view">; + + getCode: TypedContractMethod<[artifactPath: string], [string], "view">; + + getDeployedCode: TypedContractMethod< + [artifactPath: string], + [string], + "view" + >; + + getFoundryVersion: TypedContractMethod<[], [string], "view">; + + getLabel: TypedContractMethod<[account: AddressLike], [string], "view">; + + getMappingKeyAndParentOf: TypedContractMethod< + [target: AddressLike, elementSlot: BytesLike], + [ + [boolean, string, string] & { + found: boolean; + key: string; + parent: string; + } + ], + "nonpayable" + >; + + getMappingLength: TypedContractMethod< + [target: AddressLike, mappingSlot: BytesLike], + [bigint], + "nonpayable" + >; + + getMappingSlotAt: TypedContractMethod< + [target: AddressLike, mappingSlot: BytesLike, idx: BigNumberish], + [string], + "nonpayable" + >; + + "getNonce(address)": TypedContractMethod< + [account: AddressLike], + [bigint], + "view" + >; + + "getNonce((address,uint256,uint256,uint256))": TypedContractMethod< + [wallet: VmSafe.WalletStruct], + [bigint], + "nonpayable" + >; + + getRecordedLogs: TypedContractMethod< + [], + [VmSafe.LogStructOutput[]], + "nonpayable" + >; + + indexOf: TypedContractMethod<[input: string, key: string], [bigint], "view">; + + isContext: TypedContractMethod<[context: BigNumberish], [boolean], "view">; + + isDir: TypedContractMethod<[path: string], [boolean], "nonpayable">; + + isFile: TypedContractMethod<[path: string], [boolean], "nonpayable">; + + isPersistent: TypedContractMethod<[account: AddressLike], [boolean], "view">; + + keyExists: TypedContractMethod< + [json: string, key: string], + [boolean], + "view" + >; + + keyExistsJson: TypedContractMethod< + [json: string, key: string], + [boolean], + "view" + >; + + keyExistsToml: TypedContractMethod< + [toml: string, key: string], + [boolean], + "view" + >; + + label: TypedContractMethod< + [account: AddressLike, newLabel: string], + [void], + "nonpayable" + >; + + lastCallGas: TypedContractMethod<[], [VmSafe.GasStructOutput], "view">; + + load: TypedContractMethod< + [target: AddressLike, slot: BytesLike], + [string], + "view" + >; + + loadAllocs: TypedContractMethod< + [pathToAllocsJson: string], + [void], + "nonpayable" + >; + + "makePersistent(address[])": TypedContractMethod< + [accounts: AddressLike[]], + [void], + "nonpayable" + >; + + "makePersistent(address,address)": TypedContractMethod< + [account0: AddressLike, account1: AddressLike], + [void], + "nonpayable" + >; + + "makePersistent(address)": TypedContractMethod< + [account: AddressLike], + [void], + "nonpayable" + >; + + "makePersistent(address,address,address)": TypedContractMethod< + [account0: AddressLike, account1: AddressLike, account2: AddressLike], + [void], + "nonpayable" + >; + + "mockCall(address,uint256,bytes,bytes)": TypedContractMethod< + [ + callee: AddressLike, + msgValue: BigNumberish, + data: BytesLike, + returnData: BytesLike + ], + [void], + "nonpayable" + >; + + "mockCall(address,bytes,bytes)": TypedContractMethod< + [callee: AddressLike, data: BytesLike, returnData: BytesLike], + [void], + "nonpayable" + >; + + "mockCallRevert(address,uint256,bytes,bytes)": TypedContractMethod< + [ + callee: AddressLike, + msgValue: BigNumberish, + data: BytesLike, + revertData: BytesLike + ], + [void], + "nonpayable" + >; + + "mockCallRevert(address,bytes,bytes)": TypedContractMethod< + [callee: AddressLike, data: BytesLike, revertData: BytesLike], + [void], + "nonpayable" + >; + + parseAddress: TypedContractMethod< + [stringifiedValue: string], + [string], + "view" + >; + + parseBool: TypedContractMethod<[stringifiedValue: string], [boolean], "view">; + + parseBytes: TypedContractMethod<[stringifiedValue: string], [string], "view">; + + parseBytes32: TypedContractMethod< + [stringifiedValue: string], + [string], + "view" + >; + + parseInt: TypedContractMethod<[stringifiedValue: string], [bigint], "view">; + + "parseJson(string)": TypedContractMethod<[json: string], [string], "view">; + + "parseJson(string,string)": TypedContractMethod< + [json: string, key: string], + [string], + "view" + >; + + parseJsonAddress: TypedContractMethod< + [json: string, key: string], + [string], + "view" + >; + + parseJsonAddressArray: TypedContractMethod< + [json: string, key: string], + [string[]], + "view" + >; + + parseJsonBool: TypedContractMethod< + [json: string, key: string], + [boolean], + "view" + >; + + parseJsonBoolArray: TypedContractMethod< + [json: string, key: string], + [boolean[]], + "view" + >; + + parseJsonBytes: TypedContractMethod< + [json: string, key: string], + [string], + "view" + >; + + parseJsonBytes32: TypedContractMethod< + [json: string, key: string], + [string], + "view" + >; + + parseJsonBytes32Array: TypedContractMethod< + [json: string, key: string], + [string[]], + "view" + >; + + parseJsonBytesArray: TypedContractMethod< + [json: string, key: string], + [string[]], + "view" + >; + + parseJsonInt: TypedContractMethod< + [json: string, key: string], + [bigint], + "view" + >; + + parseJsonIntArray: TypedContractMethod< + [json: string, key: string], + [bigint[]], + "view" + >; + + parseJsonKeys: TypedContractMethod< + [json: string, key: string], + [string[]], + "view" + >; + + parseJsonString: TypedContractMethod< + [json: string, key: string], + [string], + "view" + >; + + parseJsonStringArray: TypedContractMethod< + [json: string, key: string], + [string[]], + "view" + >; + + "parseJsonType(string,string)": TypedContractMethod< + [json: string, typeDescription: string], + [string], + "view" + >; + + "parseJsonType(string,string,string)": TypedContractMethod< + [json: string, key: string, typeDescription: string], + [string], + "view" + >; + + parseJsonTypeArray: TypedContractMethod< + [json: string, key: string, typeDescription: string], + [string], + "view" + >; + + parseJsonUint: TypedContractMethod< + [json: string, key: string], + [bigint], + "view" + >; + + parseJsonUintArray: TypedContractMethod< + [json: string, key: string], + [bigint[]], + "view" + >; + + "parseToml(string,string)": TypedContractMethod< + [toml: string, key: string], + [string], + "view" + >; + + "parseToml(string)": TypedContractMethod<[toml: string], [string], "view">; + + parseTomlAddress: TypedContractMethod< + [toml: string, key: string], + [string], + "view" + >; + + parseTomlAddressArray: TypedContractMethod< + [toml: string, key: string], + [string[]], + "view" + >; + + parseTomlBool: TypedContractMethod< + [toml: string, key: string], + [boolean], + "view" + >; + + parseTomlBoolArray: TypedContractMethod< + [toml: string, key: string], + [boolean[]], + "view" + >; + + parseTomlBytes: TypedContractMethod< + [toml: string, key: string], + [string], + "view" + >; + + parseTomlBytes32: TypedContractMethod< + [toml: string, key: string], + [string], + "view" + >; + + parseTomlBytes32Array: TypedContractMethod< + [toml: string, key: string], + [string[]], + "view" + >; + + parseTomlBytesArray: TypedContractMethod< + [toml: string, key: string], + [string[]], + "view" + >; + + parseTomlInt: TypedContractMethod< + [toml: string, key: string], + [bigint], + "view" + >; + + parseTomlIntArray: TypedContractMethod< + [toml: string, key: string], + [bigint[]], + "view" + >; + + parseTomlKeys: TypedContractMethod< + [toml: string, key: string], + [string[]], + "view" + >; + + parseTomlString: TypedContractMethod< + [toml: string, key: string], + [string], + "view" + >; + + parseTomlStringArray: TypedContractMethod< + [toml: string, key: string], + [string[]], + "view" + >; + + parseTomlUint: TypedContractMethod< + [toml: string, key: string], + [bigint], + "view" + >; + + parseTomlUintArray: TypedContractMethod< + [toml: string, key: string], + [bigint[]], + "view" + >; + + parseUint: TypedContractMethod<[stringifiedValue: string], [bigint], "view">; + + pauseGasMetering: TypedContractMethod<[], [void], "nonpayable">; + + "prank(address,address)": TypedContractMethod< + [msgSender: AddressLike, txOrigin: AddressLike], + [void], + "nonpayable" + >; + + "prank(address)": TypedContractMethod< + [msgSender: AddressLike], + [void], + "nonpayable" + >; + + "prevrandao(bytes32)": TypedContractMethod< + [newPrevrandao: BytesLike], + [void], + "nonpayable" + >; + + "prevrandao(uint256)": TypedContractMethod< + [newPrevrandao: BigNumberish], + [void], + "nonpayable" + >; + + projectRoot: TypedContractMethod<[], [string], "view">; + + prompt: TypedContractMethod<[promptText: string], [string], "nonpayable">; + + promptAddress: TypedContractMethod< + [promptText: string], + [string], + "nonpayable" + >; + + promptSecret: TypedContractMethod< + [promptText: string], + [string], + "nonpayable" + >; + + promptSecretUint: TypedContractMethod< + [promptText: string], + [bigint], + "nonpayable" + >; + + promptUint: TypedContractMethod<[promptText: string], [bigint], "nonpayable">; + + randomAddress: TypedContractMethod<[], [string], "nonpayable">; + + "randomUint()": TypedContractMethod<[], [bigint], "nonpayable">; + + "randomUint(uint256,uint256)": TypedContractMethod< + [min: BigNumberish, max: BigNumberish], + [bigint], + "nonpayable" + >; + + readCallers: TypedContractMethod< + [], + [ + [bigint, string, string] & { + callerMode: bigint; + msgSender: string; + txOrigin: string; + } + ], + "nonpayable" + >; + + "readDir(string,uint64)": TypedContractMethod< + [path: string, maxDepth: BigNumberish], + [VmSafe.DirEntryStructOutput[]], + "view" + >; + + "readDir(string,uint64,bool)": TypedContractMethod< + [path: string, maxDepth: BigNumberish, followLinks: boolean], + [VmSafe.DirEntryStructOutput[]], + "view" + >; + + "readDir(string)": TypedContractMethod< + [path: string], + [VmSafe.DirEntryStructOutput[]], + "view" + >; + + readFile: TypedContractMethod<[path: string], [string], "view">; + + readFileBinary: TypedContractMethod<[path: string], [string], "view">; + + readLine: TypedContractMethod<[path: string], [string], "view">; + + readLink: TypedContractMethod<[linkPath: string], [string], "view">; + + record: TypedContractMethod<[], [void], "nonpayable">; + + recordLogs: TypedContractMethod<[], [void], "nonpayable">; + + rememberKey: TypedContractMethod< + [privateKey: BigNumberish], + [string], + "nonpayable" + >; + + removeDir: TypedContractMethod< + [path: string, recursive: boolean], + [void], + "nonpayable" + >; + + removeFile: TypedContractMethod<[path: string], [void], "nonpayable">; + + replace: TypedContractMethod< + [input: string, from: string, to: string], + [string], + "view" + >; + + resetNonce: TypedContractMethod<[account: AddressLike], [void], "nonpayable">; + + resumeGasMetering: TypedContractMethod<[], [void], "nonpayable">; + + revertTo: TypedContractMethod< + [snapshotId: BigNumberish], + [boolean], + "nonpayable" + >; + + revertToAndDelete: TypedContractMethod< + [snapshotId: BigNumberish], + [boolean], + "nonpayable" + >; + + "revokePersistent(address[])": TypedContractMethod< + [accounts: AddressLike[]], + [void], + "nonpayable" + >; + + "revokePersistent(address)": TypedContractMethod< + [account: AddressLike], + [void], + "nonpayable" + >; + + roll: TypedContractMethod<[newHeight: BigNumberish], [void], "nonpayable">; + + "rollFork(bytes32)": TypedContractMethod< + [txHash: BytesLike], + [void], + "nonpayable" + >; + + "rollFork(uint256,uint256)": TypedContractMethod< + [forkId: BigNumberish, blockNumber: BigNumberish], + [void], + "nonpayable" + >; + + "rollFork(uint256)": TypedContractMethod< + [blockNumber: BigNumberish], + [void], + "nonpayable" + >; + + "rollFork(uint256,bytes32)": TypedContractMethod< + [forkId: BigNumberish, txHash: BytesLike], + [void], + "nonpayable" + >; + + "rpc(string,string,string)": TypedContractMethod< + [urlOrAlias: string, method: string, params: string], + [string], + "nonpayable" + >; + + "rpc(string,string)": TypedContractMethod< + [method: string, params: string], + [string], + "nonpayable" + >; + + rpcUrl: TypedContractMethod<[rpcAlias: string], [string], "view">; + + rpcUrlStructs: TypedContractMethod<[], [VmSafe.RpcStructOutput[]], "view">; + + rpcUrls: TypedContractMethod<[], [[string, string][]], "view">; + + selectFork: TypedContractMethod<[forkId: BigNumberish], [void], "nonpayable">; + + "serializeAddress(string,string,address[])": TypedContractMethod< + [objectKey: string, valueKey: string, values: AddressLike[]], + [string], + "nonpayable" + >; + + "serializeAddress(string,string,address)": TypedContractMethod< + [objectKey: string, valueKey: string, value: AddressLike], + [string], + "nonpayable" + >; + + "serializeBool(string,string,bool[])": TypedContractMethod< + [objectKey: string, valueKey: string, values: boolean[]], + [string], + "nonpayable" + >; + + "serializeBool(string,string,bool)": TypedContractMethod< + [objectKey: string, valueKey: string, value: boolean], + [string], + "nonpayable" + >; + + "serializeBytes(string,string,bytes[])": TypedContractMethod< + [objectKey: string, valueKey: string, values: BytesLike[]], + [string], + "nonpayable" + >; + + "serializeBytes(string,string,bytes)": TypedContractMethod< + [objectKey: string, valueKey: string, value: BytesLike], + [string], + "nonpayable" + >; + + "serializeBytes32(string,string,bytes32[])": TypedContractMethod< + [objectKey: string, valueKey: string, values: BytesLike[]], + [string], + "nonpayable" + >; + + "serializeBytes32(string,string,bytes32)": TypedContractMethod< + [objectKey: string, valueKey: string, value: BytesLike], + [string], + "nonpayable" + >; + + "serializeInt(string,string,int256)": TypedContractMethod< + [objectKey: string, valueKey: string, value: BigNumberish], + [string], + "nonpayable" + >; + + "serializeInt(string,string,int256[])": TypedContractMethod< + [objectKey: string, valueKey: string, values: BigNumberish[]], + [string], + "nonpayable" + >; + + serializeJson: TypedContractMethod< + [objectKey: string, value: string], + [string], + "nonpayable" + >; + + "serializeJsonType(string,bytes)": TypedContractMethod< + [typeDescription: string, value: BytesLike], + [string], + "view" + >; + + "serializeJsonType(string,string,string,bytes)": TypedContractMethod< + [ + objectKey: string, + valueKey: string, + typeDescription: string, + value: BytesLike + ], + [string], + "nonpayable" + >; + + "serializeString(string,string,string[])": TypedContractMethod< + [objectKey: string, valueKey: string, values: string[]], + [string], + "nonpayable" + >; + + "serializeString(string,string,string)": TypedContractMethod< + [objectKey: string, valueKey: string, value: string], + [string], + "nonpayable" + >; + + "serializeUint(string,string,uint256)": TypedContractMethod< + [objectKey: string, valueKey: string, value: BigNumberish], + [string], + "nonpayable" + >; + + "serializeUint(string,string,uint256[])": TypedContractMethod< + [objectKey: string, valueKey: string, values: BigNumberish[]], + [string], + "nonpayable" + >; + + serializeUintToHex: TypedContractMethod< + [objectKey: string, valueKey: string, value: BigNumberish], + [string], + "nonpayable" + >; + + setBlockhash: TypedContractMethod< + [blockNumber: BigNumberish, blockHash: BytesLike], + [void], + "nonpayable" + >; + + setEnv: TypedContractMethod< + [name: string, value: string], + [void], + "nonpayable" + >; + + setNonce: TypedContractMethod< + [account: AddressLike, newNonce: BigNumberish], + [void], + "nonpayable" + >; + + setNonceUnsafe: TypedContractMethod< + [account: AddressLike, newNonce: BigNumberish], + [void], + "nonpayable" + >; + + "sign(bytes32)": TypedContractMethod< + [digest: BytesLike], + [[bigint, string, string] & { v: bigint; r: string; s: string }], + "view" + >; + + "sign(address,bytes32)": TypedContractMethod< + [signer: AddressLike, digest: BytesLike], + [[bigint, string, string] & { v: bigint; r: string; s: string }], + "view" + >; + + "sign((address,uint256,uint256,uint256),bytes32)": TypedContractMethod< + [wallet: VmSafe.WalletStruct, digest: BytesLike], + [[bigint, string, string] & { v: bigint; r: string; s: string }], + "nonpayable" + >; + + "sign(uint256,bytes32)": TypedContractMethod< + [privateKey: BigNumberish, digest: BytesLike], + [[bigint, string, string] & { v: bigint; r: string; s: string }], + "view" + >; + + "signCompact((address,uint256,uint256,uint256),bytes32)": TypedContractMethod< + [wallet: VmSafe.WalletStruct, digest: BytesLike], + [[string, string] & { r: string; vs: string }], + "nonpayable" + >; + + "signCompact(address,bytes32)": TypedContractMethod< + [signer: AddressLike, digest: BytesLike], + [[string, string] & { r: string; vs: string }], + "view" + >; + + "signCompact(bytes32)": TypedContractMethod< + [digest: BytesLike], + [[string, string] & { r: string; vs: string }], + "view" + >; + + "signCompact(uint256,bytes32)": TypedContractMethod< + [privateKey: BigNumberish, digest: BytesLike], + [[string, string] & { r: string; vs: string }], + "view" + >; + + signP256: TypedContractMethod< + [privateKey: BigNumberish, digest: BytesLike], + [[string, string] & { r: string; s: string }], + "view" + >; + + skip: TypedContractMethod<[skipTest: boolean], [void], "nonpayable">; + + sleep: TypedContractMethod<[duration: BigNumberish], [void], "nonpayable">; + + snapshot: TypedContractMethod<[], [bigint], "nonpayable">; + + split: TypedContractMethod< + [input: string, delimiter: string], + [string[]], + "view" + >; + + "startBroadcast()": TypedContractMethod<[], [void], "nonpayable">; + + "startBroadcast(address)": TypedContractMethod< + [signer: AddressLike], + [void], + "nonpayable" + >; + + "startBroadcast(uint256)": TypedContractMethod< + [privateKey: BigNumberish], + [void], + "nonpayable" + >; + + startMappingRecording: TypedContractMethod<[], [void], "nonpayable">; + + "startPrank(address)": TypedContractMethod< + [msgSender: AddressLike], + [void], + "nonpayable" + >; + + "startPrank(address,address)": TypedContractMethod< + [msgSender: AddressLike, txOrigin: AddressLike], + [void], + "nonpayable" + >; + + startStateDiffRecording: TypedContractMethod<[], [void], "nonpayable">; + + stopAndReturnStateDiff: TypedContractMethod< + [], + [VmSafe.AccountAccessStructOutput[]], + "nonpayable" + >; + + stopBroadcast: TypedContractMethod<[], [void], "nonpayable">; + + stopExpectSafeMemory: TypedContractMethod<[], [void], "nonpayable">; + + stopMappingRecording: TypedContractMethod<[], [void], "nonpayable">; + + stopPrank: TypedContractMethod<[], [void], "nonpayable">; + + store: TypedContractMethod< + [target: AddressLike, slot: BytesLike, value: BytesLike], + [void], + "nonpayable" + >; + + "toBase64(string)": TypedContractMethod<[data: string], [string], "view">; + + "toBase64(bytes)": TypedContractMethod<[data: BytesLike], [string], "view">; + + "toBase64URL(string)": TypedContractMethod<[data: string], [string], "view">; + + "toBase64URL(bytes)": TypedContractMethod< + [data: BytesLike], + [string], + "view" + >; + + toLowercase: TypedContractMethod<[input: string], [string], "view">; + + "toString(address)": TypedContractMethod< + [value: AddressLike], + [string], + "view" + >; + + "toString(uint256)": TypedContractMethod< + [value: BigNumberish], + [string], + "view" + >; + + "toString(bytes)": TypedContractMethod<[value: BytesLike], [string], "view">; + + "toString(bool)": TypedContractMethod<[value: boolean], [string], "view">; + + "toString(int256)": TypedContractMethod< + [value: BigNumberish], + [string], + "view" + >; + + "toString(bytes32)": TypedContractMethod< + [value: BytesLike], + [string], + "view" + >; + + toUppercase: TypedContractMethod<[input: string], [string], "view">; + + "transact(uint256,bytes32)": TypedContractMethod< + [forkId: BigNumberish, txHash: BytesLike], + [void], + "nonpayable" + >; + + "transact(bytes32)": TypedContractMethod< + [txHash: BytesLike], + [void], + "nonpayable" + >; + + trim: TypedContractMethod<[input: string], [string], "view">; + + tryFfi: TypedContractMethod< + [commandInput: string[]], + [VmSafe.FfiResultStructOutput], + "nonpayable" + >; + + txGasPrice: TypedContractMethod< + [newGasPrice: BigNumberish], + [void], + "nonpayable" + >; + + unixTime: TypedContractMethod<[], [bigint], "nonpayable">; + + warp: TypedContractMethod<[newTimestamp: BigNumberish], [void], "nonpayable">; + + writeFile: TypedContractMethod< + [path: string, data: string], + [void], + "nonpayable" + >; + + writeFileBinary: TypedContractMethod< + [path: string, data: BytesLike], + [void], + "nonpayable" + >; + + "writeJson(string,string,string)": TypedContractMethod< + [json: string, path: string, valueKey: string], + [void], + "nonpayable" + >; + + "writeJson(string,string)": TypedContractMethod< + [json: string, path: string], + [void], + "nonpayable" + >; + + writeLine: TypedContractMethod< + [path: string, data: string], + [void], + "nonpayable" + >; + + "writeToml(string,string,string)": TypedContractMethod< + [json: string, path: string, valueKey: string], + [void], + "nonpayable" + >; + + "writeToml(string,string)": TypedContractMethod< + [json: string, path: string], + [void], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "accesses" + ): TypedContractMethod< + [target: AddressLike], + [[string[], string[]] & { readSlots: string[]; writeSlots: string[] }], + "nonpayable" + >; + getFunction( + nameOrSignature: "activeFork" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "addr" + ): TypedContractMethod<[privateKey: BigNumberish], [string], "view">; + getFunction( + nameOrSignature: "allowCheatcodes" + ): TypedContractMethod<[account: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "assertApproxEqAbs(uint256,uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, maxDelta: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqAbs(int256,int256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, maxDelta: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqAbs(int256,int256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqAbs(uint256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + decimals: BigNumberish + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqAbsDecimal(int256,int256,uint256,uint256)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + decimals: BigNumberish + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqRel(uint256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqRel(uint256,uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, maxPercentDelta: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqRel(int256,int256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqRel(int256,int256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, maxPercentDelta: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + decimals: BigNumberish + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqRelDecimal(int256,int256,uint256,uint256)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + decimals: BigNumberish + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(bytes32[],bytes32[])" + ): TypedContractMethod< + [left: BytesLike[], right: BytesLike[]], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(int256[],int256[],string)" + ): TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(address,address,string)" + ): TypedContractMethod< + [left: AddressLike, right: AddressLike, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(string,string,string)" + ): TypedContractMethod< + [left: string, right: string, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(address[],address[])" + ): TypedContractMethod< + [left: AddressLike[], right: AddressLike[]], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(address[],address[],string)" + ): TypedContractMethod< + [left: AddressLike[], right: AddressLike[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(bool,bool,string)" + ): TypedContractMethod< + [left: boolean, right: boolean, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(address,address)" + ): TypedContractMethod< + [left: AddressLike, right: AddressLike], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(uint256[],uint256[],string)" + ): TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(bool[],bool[])" + ): TypedContractMethod<[left: boolean[], right: boolean[]], [void], "view">; + getFunction( + nameOrSignature: "assertEq(int256[],int256[])" + ): TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[]], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(int256,int256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(bytes32,bytes32)" + ): TypedContractMethod<[left: BytesLike, right: BytesLike], [void], "view">; + getFunction( + nameOrSignature: "assertEq(uint256,uint256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(uint256[],uint256[])" + ): TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[]], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(bytes,bytes)" + ): TypedContractMethod<[left: BytesLike, right: BytesLike], [void], "view">; + getFunction( + nameOrSignature: "assertEq(uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(bytes32,bytes32,string)" + ): TypedContractMethod< + [left: BytesLike, right: BytesLike, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(string[],string[])" + ): TypedContractMethod<[left: string[], right: string[]], [void], "view">; + getFunction( + nameOrSignature: "assertEq(bytes32[],bytes32[],string)" + ): TypedContractMethod< + [left: BytesLike[], right: BytesLike[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(bytes,bytes,string)" + ): TypedContractMethod< + [left: BytesLike, right: BytesLike, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(bool[],bool[],string)" + ): TypedContractMethod< + [left: boolean[], right: boolean[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(bytes[],bytes[])" + ): TypedContractMethod< + [left: BytesLike[], right: BytesLike[]], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(string[],string[],string)" + ): TypedContractMethod< + [left: string[], right: string[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(string,string)" + ): TypedContractMethod<[left: string, right: string], [void], "view">; + getFunction( + nameOrSignature: "assertEq(bytes[],bytes[],string)" + ): TypedContractMethod< + [left: BytesLike[], right: BytesLike[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(bool,bool)" + ): TypedContractMethod<[left: boolean, right: boolean], [void], "view">; + getFunction( + nameOrSignature: "assertEq(int256,int256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEqDecimal(uint256,uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEqDecimal(int256,int256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEqDecimal(int256,int256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEqDecimal(uint256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertFalse(bool,string)" + ): TypedContractMethod<[condition: boolean, error: string], [void], "view">; + getFunction( + nameOrSignature: "assertFalse(bool)" + ): TypedContractMethod<[condition: boolean], [void], "view">; + getFunction( + nameOrSignature: "assertGe(int256,int256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGe(int256,int256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGe(uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGe(uint256,uint256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGeDecimal(uint256,uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGeDecimal(int256,int256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGeDecimal(uint256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGeDecimal(int256,int256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGt(int256,int256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGt(uint256,uint256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGt(uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGt(int256,int256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGtDecimal(int256,int256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGtDecimal(uint256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGtDecimal(int256,int256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGtDecimal(uint256,uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLe(int256,int256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLe(uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLe(int256,int256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLe(uint256,uint256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLeDecimal(int256,int256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLeDecimal(uint256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLeDecimal(int256,int256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLeDecimal(uint256,uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLt(int256,int256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLt(uint256,uint256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLt(int256,int256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLt(uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLtDecimal(uint256,uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLtDecimal(int256,int256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLtDecimal(uint256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLtDecimal(int256,int256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(bytes32[],bytes32[])" + ): TypedContractMethod< + [left: BytesLike[], right: BytesLike[]], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(int256[],int256[])" + ): TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[]], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(bool,bool,string)" + ): TypedContractMethod< + [left: boolean, right: boolean, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(bytes[],bytes[],string)" + ): TypedContractMethod< + [left: BytesLike[], right: BytesLike[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(bool,bool)" + ): TypedContractMethod<[left: boolean, right: boolean], [void], "view">; + getFunction( + nameOrSignature: "assertNotEq(bool[],bool[])" + ): TypedContractMethod<[left: boolean[], right: boolean[]], [void], "view">; + getFunction( + nameOrSignature: "assertNotEq(bytes,bytes)" + ): TypedContractMethod<[left: BytesLike, right: BytesLike], [void], "view">; + getFunction( + nameOrSignature: "assertNotEq(address[],address[])" + ): TypedContractMethod< + [left: AddressLike[], right: AddressLike[]], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(int256,int256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(uint256[],uint256[])" + ): TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[]], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(bool[],bool[],string)" + ): TypedContractMethod< + [left: boolean[], right: boolean[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(string,string)" + ): TypedContractMethod<[left: string, right: string], [void], "view">; + getFunction( + nameOrSignature: "assertNotEq(address[],address[],string)" + ): TypedContractMethod< + [left: AddressLike[], right: AddressLike[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(string,string,string)" + ): TypedContractMethod< + [left: string, right: string, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(address,address,string)" + ): TypedContractMethod< + [left: AddressLike, right: AddressLike, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(bytes32,bytes32)" + ): TypedContractMethod<[left: BytesLike, right: BytesLike], [void], "view">; + getFunction( + nameOrSignature: "assertNotEq(bytes,bytes,string)" + ): TypedContractMethod< + [left: BytesLike, right: BytesLike, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(uint256,uint256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(uint256[],uint256[],string)" + ): TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(address,address)" + ): TypedContractMethod< + [left: AddressLike, right: AddressLike], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(bytes32,bytes32,string)" + ): TypedContractMethod< + [left: BytesLike, right: BytesLike, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(string[],string[],string)" + ): TypedContractMethod< + [left: string[], right: string[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(bytes32[],bytes32[],string)" + ): TypedContractMethod< + [left: BytesLike[], right: BytesLike[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(string[],string[])" + ): TypedContractMethod<[left: string[], right: string[]], [void], "view">; + getFunction( + nameOrSignature: "assertNotEq(int256[],int256[],string)" + ): TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(bytes[],bytes[])" + ): TypedContractMethod< + [left: BytesLike[], right: BytesLike[]], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(int256,int256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEqDecimal(int256,int256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEqDecimal(int256,int256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEqDecimal(uint256,uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEqDecimal(uint256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertTrue(bool)" + ): TypedContractMethod<[condition: boolean], [void], "view">; + getFunction( + nameOrSignature: "assertTrue(bool,string)" + ): TypedContractMethod<[condition: boolean, error: string], [void], "view">; + getFunction( + nameOrSignature: "assume" + ): TypedContractMethod<[condition: boolean], [void], "view">; + getFunction( + nameOrSignature: "blobBaseFee" + ): TypedContractMethod<[newBlobBaseFee: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "blobhashes" + ): TypedContractMethod<[hashes: BytesLike[]], [void], "nonpayable">; + getFunction( + nameOrSignature: "breakpoint(string)" + ): TypedContractMethod<[char: string], [void], "nonpayable">; + getFunction( + nameOrSignature: "breakpoint(string,bool)" + ): TypedContractMethod<[char: string, value: boolean], [void], "nonpayable">; + getFunction( + nameOrSignature: "broadcast()" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "broadcast(address)" + ): TypedContractMethod<[signer: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "broadcast(uint256)" + ): TypedContractMethod<[privateKey: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "broadcastRawTransaction" + ): TypedContractMethod<[data: BytesLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "chainId" + ): TypedContractMethod<[newChainId: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "clearMockedCalls" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "closeFile" + ): TypedContractMethod<[path: string], [void], "nonpayable">; + getFunction( + nameOrSignature: "coinbase" + ): TypedContractMethod<[newCoinbase: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "computeCreate2Address(bytes32,bytes32)" + ): TypedContractMethod< + [salt: BytesLike, initCodeHash: BytesLike], + [string], + "view" + >; + getFunction( + nameOrSignature: "computeCreate2Address(bytes32,bytes32,address)" + ): TypedContractMethod< + [salt: BytesLike, initCodeHash: BytesLike, deployer: AddressLike], + [string], + "view" + >; + getFunction( + nameOrSignature: "computeCreateAddress" + ): TypedContractMethod< + [deployer: AddressLike, nonce: BigNumberish], + [string], + "view" + >; + getFunction( + nameOrSignature: "copyFile" + ): TypedContractMethod<[from: string, to: string], [bigint], "nonpayable">; + getFunction( + nameOrSignature: "createDir" + ): TypedContractMethod< + [path: string, recursive: boolean], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "createFork(string)" + ): TypedContractMethod<[urlOrAlias: string], [bigint], "nonpayable">; + getFunction( + nameOrSignature: "createFork(string,uint256)" + ): TypedContractMethod< + [urlOrAlias: string, blockNumber: BigNumberish], + [bigint], + "nonpayable" + >; + getFunction( + nameOrSignature: "createFork(string,bytes32)" + ): TypedContractMethod< + [urlOrAlias: string, txHash: BytesLike], + [bigint], + "nonpayable" + >; + getFunction( + nameOrSignature: "createSelectFork(string,uint256)" + ): TypedContractMethod< + [urlOrAlias: string, blockNumber: BigNumberish], + [bigint], + "nonpayable" + >; + getFunction( + nameOrSignature: "createSelectFork(string,bytes32)" + ): TypedContractMethod< + [urlOrAlias: string, txHash: BytesLike], + [bigint], + "nonpayable" + >; + getFunction( + nameOrSignature: "createSelectFork(string)" + ): TypedContractMethod<[urlOrAlias: string], [bigint], "nonpayable">; + getFunction( + nameOrSignature: "createWallet(string)" + ): TypedContractMethod< + [walletLabel: string], + [VmSafe.WalletStructOutput], + "nonpayable" + >; + getFunction( + nameOrSignature: "createWallet(uint256)" + ): TypedContractMethod< + [privateKey: BigNumberish], + [VmSafe.WalletStructOutput], + "nonpayable" + >; + getFunction( + nameOrSignature: "createWallet(uint256,string)" + ): TypedContractMethod< + [privateKey: BigNumberish, walletLabel: string], + [VmSafe.WalletStructOutput], + "nonpayable" + >; + getFunction( + nameOrSignature: "deal" + ): TypedContractMethod< + [account: AddressLike, newBalance: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "deleteSnapshot" + ): TypedContractMethod<[snapshotId: BigNumberish], [boolean], "nonpayable">; + getFunction( + nameOrSignature: "deleteSnapshots" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "deployCode(string,bytes)" + ): TypedContractMethod< + [artifactPath: string, constructorArgs: BytesLike], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "deployCode(string)" + ): TypedContractMethod<[artifactPath: string], [string], "nonpayable">; + getFunction( + nameOrSignature: "deriveKey(string,string,uint32,string)" + ): TypedContractMethod< + [ + mnemonic: string, + derivationPath: string, + index: BigNumberish, + language: string + ], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "deriveKey(string,uint32,string)" + ): TypedContractMethod< + [mnemonic: string, index: BigNumberish, language: string], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "deriveKey(string,uint32)" + ): TypedContractMethod< + [mnemonic: string, index: BigNumberish], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "deriveKey(string,string,uint32)" + ): TypedContractMethod< + [mnemonic: string, derivationPath: string, index: BigNumberish], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "difficulty" + ): TypedContractMethod<[newDifficulty: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "dumpState" + ): TypedContractMethod<[pathToStateJson: string], [void], "nonpayable">; + getFunction( + nameOrSignature: "ensNamehash" + ): TypedContractMethod<[name: string], [string], "view">; + getFunction( + nameOrSignature: "envAddress(string)" + ): TypedContractMethod<[name: string], [string], "view">; + getFunction( + nameOrSignature: "envAddress(string,string)" + ): TypedContractMethod<[name: string, delim: string], [string[]], "view">; + getFunction( + nameOrSignature: "envBool(string)" + ): TypedContractMethod<[name: string], [boolean], "view">; + getFunction( + nameOrSignature: "envBool(string,string)" + ): TypedContractMethod<[name: string, delim: string], [boolean[]], "view">; + getFunction( + nameOrSignature: "envBytes(string)" + ): TypedContractMethod<[name: string], [string], "view">; + getFunction( + nameOrSignature: "envBytes(string,string)" + ): TypedContractMethod<[name: string, delim: string], [string[]], "view">; + getFunction( + nameOrSignature: "envBytes32(string,string)" + ): TypedContractMethod<[name: string, delim: string], [string[]], "view">; + getFunction( + nameOrSignature: "envBytes32(string)" + ): TypedContractMethod<[name: string], [string], "view">; + getFunction( + nameOrSignature: "envExists" + ): TypedContractMethod<[name: string], [boolean], "view">; + getFunction( + nameOrSignature: "envInt(string,string)" + ): TypedContractMethod<[name: string, delim: string], [bigint[]], "view">; + getFunction( + nameOrSignature: "envInt(string)" + ): TypedContractMethod<[name: string], [bigint], "view">; + getFunction( + nameOrSignature: "envOr(string,string,bytes32[])" + ): TypedContractMethod< + [name: string, delim: string, defaultValue: BytesLike[]], + [string[]], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,string,int256[])" + ): TypedContractMethod< + [name: string, delim: string, defaultValue: BigNumberish[]], + [bigint[]], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,bool)" + ): TypedContractMethod< + [name: string, defaultValue: boolean], + [boolean], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,address)" + ): TypedContractMethod< + [name: string, defaultValue: AddressLike], + [string], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,uint256)" + ): TypedContractMethod< + [name: string, defaultValue: BigNumberish], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,string,bytes[])" + ): TypedContractMethod< + [name: string, delim: string, defaultValue: BytesLike[]], + [string[]], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,string,uint256[])" + ): TypedContractMethod< + [name: string, delim: string, defaultValue: BigNumberish[]], + [bigint[]], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,string,string[])" + ): TypedContractMethod< + [name: string, delim: string, defaultValue: string[]], + [string[]], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,bytes)" + ): TypedContractMethod< + [name: string, defaultValue: BytesLike], + [string], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,bytes32)" + ): TypedContractMethod< + [name: string, defaultValue: BytesLike], + [string], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,int256)" + ): TypedContractMethod< + [name: string, defaultValue: BigNumberish], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,string,address[])" + ): TypedContractMethod< + [name: string, delim: string, defaultValue: AddressLike[]], + [string[]], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,string)" + ): TypedContractMethod< + [name: string, defaultValue: string], + [string], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,string,bool[])" + ): TypedContractMethod< + [name: string, delim: string, defaultValue: boolean[]], + [boolean[]], + "view" + >; + getFunction( + nameOrSignature: "envString(string,string)" + ): TypedContractMethod<[name: string, delim: string], [string[]], "view">; + getFunction( + nameOrSignature: "envString(string)" + ): TypedContractMethod<[name: string], [string], "view">; + getFunction( + nameOrSignature: "envUint(string)" + ): TypedContractMethod<[name: string], [bigint], "view">; + getFunction( + nameOrSignature: "envUint(string,string)" + ): TypedContractMethod<[name: string, delim: string], [bigint[]], "view">; + getFunction( + nameOrSignature: "etch" + ): TypedContractMethod< + [target: AddressLike, newRuntimeBytecode: BytesLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "eth_getLogs" + ): TypedContractMethod< + [ + fromBlock: BigNumberish, + toBlock: BigNumberish, + target: AddressLike, + topics: BytesLike[] + ], + [VmSafe.EthGetLogsStructOutput[]], + "nonpayable" + >; + getFunction( + nameOrSignature: "exists" + ): TypedContractMethod<[path: string], [boolean], "nonpayable">; + getFunction( + nameOrSignature: "expectCall(address,uint256,uint64,bytes)" + ): TypedContractMethod< + [ + callee: AddressLike, + msgValue: BigNumberish, + gas: BigNumberish, + data: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "expectCall(address,uint256,uint64,bytes,uint64)" + ): TypedContractMethod< + [ + callee: AddressLike, + msgValue: BigNumberish, + gas: BigNumberish, + data: BytesLike, + count: BigNumberish + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "expectCall(address,uint256,bytes,uint64)" + ): TypedContractMethod< + [ + callee: AddressLike, + msgValue: BigNumberish, + data: BytesLike, + count: BigNumberish + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "expectCall(address,bytes)" + ): TypedContractMethod< + [callee: AddressLike, data: BytesLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "expectCall(address,bytes,uint64)" + ): TypedContractMethod< + [callee: AddressLike, data: BytesLike, count: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "expectCall(address,uint256,bytes)" + ): TypedContractMethod< + [callee: AddressLike, msgValue: BigNumberish, data: BytesLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "expectCallMinGas(address,uint256,uint64,bytes)" + ): TypedContractMethod< + [ + callee: AddressLike, + msgValue: BigNumberish, + minGas: BigNumberish, + data: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "expectCallMinGas(address,uint256,uint64,bytes,uint64)" + ): TypedContractMethod< + [ + callee: AddressLike, + msgValue: BigNumberish, + minGas: BigNumberish, + data: BytesLike, + count: BigNumberish + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "expectEmit()" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "expectEmit(bool,bool,bool,bool)" + ): TypedContractMethod< + [ + checkTopic1: boolean, + checkTopic2: boolean, + checkTopic3: boolean, + checkData: boolean + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "expectEmit(bool,bool,bool,bool,address)" + ): TypedContractMethod< + [ + checkTopic1: boolean, + checkTopic2: boolean, + checkTopic3: boolean, + checkData: boolean, + emitter: AddressLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "expectEmit(address)" + ): TypedContractMethod<[emitter: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "expectEmitAnonymous()" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "expectEmitAnonymous(address)" + ): TypedContractMethod<[emitter: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "expectEmitAnonymous(bool,bool,bool,bool,bool,address)" + ): TypedContractMethod< + [ + checkTopic0: boolean, + checkTopic1: boolean, + checkTopic2: boolean, + checkTopic3: boolean, + checkData: boolean, + emitter: AddressLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "expectEmitAnonymous(bool,bool,bool,bool,bool)" + ): TypedContractMethod< + [ + checkTopic0: boolean, + checkTopic1: boolean, + checkTopic2: boolean, + checkTopic3: boolean, + checkData: boolean + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "expectRevert(bytes4)" + ): TypedContractMethod<[revertData: BytesLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "expectRevert(bytes)" + ): TypedContractMethod<[revertData: BytesLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "expectRevert()" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "expectSafeMemory" + ): TypedContractMethod< + [min: BigNumberish, max: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "expectSafeMemoryCall" + ): TypedContractMethod< + [min: BigNumberish, max: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "fee" + ): TypedContractMethod<[newBasefee: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "ffi" + ): TypedContractMethod<[commandInput: string[]], [string], "nonpayable">; + getFunction( + nameOrSignature: "fsMetadata" + ): TypedContractMethod< + [path: string], + [VmSafe.FsMetadataStructOutput], + "view" + >; + getFunction( + nameOrSignature: "getBlobBaseFee" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "getBlobhashes" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "getBlockNumber" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "getBlockTimestamp" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "getCode" + ): TypedContractMethod<[artifactPath: string], [string], "view">; + getFunction( + nameOrSignature: "getDeployedCode" + ): TypedContractMethod<[artifactPath: string], [string], "view">; + getFunction( + nameOrSignature: "getFoundryVersion" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "getLabel" + ): TypedContractMethod<[account: AddressLike], [string], "view">; + getFunction( + nameOrSignature: "getMappingKeyAndParentOf" + ): TypedContractMethod< + [target: AddressLike, elementSlot: BytesLike], + [ + [boolean, string, string] & { + found: boolean; + key: string; + parent: string; + } + ], + "nonpayable" + >; + getFunction( + nameOrSignature: "getMappingLength" + ): TypedContractMethod< + [target: AddressLike, mappingSlot: BytesLike], + [bigint], + "nonpayable" + >; + getFunction( + nameOrSignature: "getMappingSlotAt" + ): TypedContractMethod< + [target: AddressLike, mappingSlot: BytesLike, idx: BigNumberish], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "getNonce(address)" + ): TypedContractMethod<[account: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "getNonce((address,uint256,uint256,uint256))" + ): TypedContractMethod<[wallet: VmSafe.WalletStruct], [bigint], "nonpayable">; + getFunction( + nameOrSignature: "getRecordedLogs" + ): TypedContractMethod<[], [VmSafe.LogStructOutput[]], "nonpayable">; + getFunction( + nameOrSignature: "indexOf" + ): TypedContractMethod<[input: string, key: string], [bigint], "view">; + getFunction( + nameOrSignature: "isContext" + ): TypedContractMethod<[context: BigNumberish], [boolean], "view">; + getFunction( + nameOrSignature: "isDir" + ): TypedContractMethod<[path: string], [boolean], "nonpayable">; + getFunction( + nameOrSignature: "isFile" + ): TypedContractMethod<[path: string], [boolean], "nonpayable">; + getFunction( + nameOrSignature: "isPersistent" + ): TypedContractMethod<[account: AddressLike], [boolean], "view">; + getFunction( + nameOrSignature: "keyExists" + ): TypedContractMethod<[json: string, key: string], [boolean], "view">; + getFunction( + nameOrSignature: "keyExistsJson" + ): TypedContractMethod<[json: string, key: string], [boolean], "view">; + getFunction( + nameOrSignature: "keyExistsToml" + ): TypedContractMethod<[toml: string, key: string], [boolean], "view">; + getFunction( + nameOrSignature: "label" + ): TypedContractMethod< + [account: AddressLike, newLabel: string], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "lastCallGas" + ): TypedContractMethod<[], [VmSafe.GasStructOutput], "view">; + getFunction( + nameOrSignature: "load" + ): TypedContractMethod< + [target: AddressLike, slot: BytesLike], + [string], + "view" + >; + getFunction( + nameOrSignature: "loadAllocs" + ): TypedContractMethod<[pathToAllocsJson: string], [void], "nonpayable">; + getFunction( + nameOrSignature: "makePersistent(address[])" + ): TypedContractMethod<[accounts: AddressLike[]], [void], "nonpayable">; + getFunction( + nameOrSignature: "makePersistent(address,address)" + ): TypedContractMethod< + [account0: AddressLike, account1: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "makePersistent(address)" + ): TypedContractMethod<[account: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "makePersistent(address,address,address)" + ): TypedContractMethod< + [account0: AddressLike, account1: AddressLike, account2: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "mockCall(address,uint256,bytes,bytes)" + ): TypedContractMethod< + [ + callee: AddressLike, + msgValue: BigNumberish, + data: BytesLike, + returnData: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "mockCall(address,bytes,bytes)" + ): TypedContractMethod< + [callee: AddressLike, data: BytesLike, returnData: BytesLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "mockCallRevert(address,uint256,bytes,bytes)" + ): TypedContractMethod< + [ + callee: AddressLike, + msgValue: BigNumberish, + data: BytesLike, + revertData: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "mockCallRevert(address,bytes,bytes)" + ): TypedContractMethod< + [callee: AddressLike, data: BytesLike, revertData: BytesLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "parseAddress" + ): TypedContractMethod<[stringifiedValue: string], [string], "view">; + getFunction( + nameOrSignature: "parseBool" + ): TypedContractMethod<[stringifiedValue: string], [boolean], "view">; + getFunction( + nameOrSignature: "parseBytes" + ): TypedContractMethod<[stringifiedValue: string], [string], "view">; + getFunction( + nameOrSignature: "parseBytes32" + ): TypedContractMethod<[stringifiedValue: string], [string], "view">; + getFunction( + nameOrSignature: "parseInt" + ): TypedContractMethod<[stringifiedValue: string], [bigint], "view">; + getFunction( + nameOrSignature: "parseJson(string)" + ): TypedContractMethod<[json: string], [string], "view">; + getFunction( + nameOrSignature: "parseJson(string,string)" + ): TypedContractMethod<[json: string, key: string], [string], "view">; + getFunction( + nameOrSignature: "parseJsonAddress" + ): TypedContractMethod<[json: string, key: string], [string], "view">; + getFunction( + nameOrSignature: "parseJsonAddressArray" + ): TypedContractMethod<[json: string, key: string], [string[]], "view">; + getFunction( + nameOrSignature: "parseJsonBool" + ): TypedContractMethod<[json: string, key: string], [boolean], "view">; + getFunction( + nameOrSignature: "parseJsonBoolArray" + ): TypedContractMethod<[json: string, key: string], [boolean[]], "view">; + getFunction( + nameOrSignature: "parseJsonBytes" + ): TypedContractMethod<[json: string, key: string], [string], "view">; + getFunction( + nameOrSignature: "parseJsonBytes32" + ): TypedContractMethod<[json: string, key: string], [string], "view">; + getFunction( + nameOrSignature: "parseJsonBytes32Array" + ): TypedContractMethod<[json: string, key: string], [string[]], "view">; + getFunction( + nameOrSignature: "parseJsonBytesArray" + ): TypedContractMethod<[json: string, key: string], [string[]], "view">; + getFunction( + nameOrSignature: "parseJsonInt" + ): TypedContractMethod<[json: string, key: string], [bigint], "view">; + getFunction( + nameOrSignature: "parseJsonIntArray" + ): TypedContractMethod<[json: string, key: string], [bigint[]], "view">; + getFunction( + nameOrSignature: "parseJsonKeys" + ): TypedContractMethod<[json: string, key: string], [string[]], "view">; + getFunction( + nameOrSignature: "parseJsonString" + ): TypedContractMethod<[json: string, key: string], [string], "view">; + getFunction( + nameOrSignature: "parseJsonStringArray" + ): TypedContractMethod<[json: string, key: string], [string[]], "view">; + getFunction( + nameOrSignature: "parseJsonType(string,string)" + ): TypedContractMethod< + [json: string, typeDescription: string], + [string], + "view" + >; + getFunction( + nameOrSignature: "parseJsonType(string,string,string)" + ): TypedContractMethod< + [json: string, key: string, typeDescription: string], + [string], + "view" + >; + getFunction( + nameOrSignature: "parseJsonTypeArray" + ): TypedContractMethod< + [json: string, key: string, typeDescription: string], + [string], + "view" + >; + getFunction( + nameOrSignature: "parseJsonUint" + ): TypedContractMethod<[json: string, key: string], [bigint], "view">; + getFunction( + nameOrSignature: "parseJsonUintArray" + ): TypedContractMethod<[json: string, key: string], [bigint[]], "view">; + getFunction( + nameOrSignature: "parseToml(string,string)" + ): TypedContractMethod<[toml: string, key: string], [string], "view">; + getFunction( + nameOrSignature: "parseToml(string)" + ): TypedContractMethod<[toml: string], [string], "view">; + getFunction( + nameOrSignature: "parseTomlAddress" + ): TypedContractMethod<[toml: string, key: string], [string], "view">; + getFunction( + nameOrSignature: "parseTomlAddressArray" + ): TypedContractMethod<[toml: string, key: string], [string[]], "view">; + getFunction( + nameOrSignature: "parseTomlBool" + ): TypedContractMethod<[toml: string, key: string], [boolean], "view">; + getFunction( + nameOrSignature: "parseTomlBoolArray" + ): TypedContractMethod<[toml: string, key: string], [boolean[]], "view">; + getFunction( + nameOrSignature: "parseTomlBytes" + ): TypedContractMethod<[toml: string, key: string], [string], "view">; + getFunction( + nameOrSignature: "parseTomlBytes32" + ): TypedContractMethod<[toml: string, key: string], [string], "view">; + getFunction( + nameOrSignature: "parseTomlBytes32Array" + ): TypedContractMethod<[toml: string, key: string], [string[]], "view">; + getFunction( + nameOrSignature: "parseTomlBytesArray" + ): TypedContractMethod<[toml: string, key: string], [string[]], "view">; + getFunction( + nameOrSignature: "parseTomlInt" + ): TypedContractMethod<[toml: string, key: string], [bigint], "view">; + getFunction( + nameOrSignature: "parseTomlIntArray" + ): TypedContractMethod<[toml: string, key: string], [bigint[]], "view">; + getFunction( + nameOrSignature: "parseTomlKeys" + ): TypedContractMethod<[toml: string, key: string], [string[]], "view">; + getFunction( + nameOrSignature: "parseTomlString" + ): TypedContractMethod<[toml: string, key: string], [string], "view">; + getFunction( + nameOrSignature: "parseTomlStringArray" + ): TypedContractMethod<[toml: string, key: string], [string[]], "view">; + getFunction( + nameOrSignature: "parseTomlUint" + ): TypedContractMethod<[toml: string, key: string], [bigint], "view">; + getFunction( + nameOrSignature: "parseTomlUintArray" + ): TypedContractMethod<[toml: string, key: string], [bigint[]], "view">; + getFunction( + nameOrSignature: "parseUint" + ): TypedContractMethod<[stringifiedValue: string], [bigint], "view">; + getFunction( + nameOrSignature: "pauseGasMetering" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "prank(address,address)" + ): TypedContractMethod< + [msgSender: AddressLike, txOrigin: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "prank(address)" + ): TypedContractMethod<[msgSender: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "prevrandao(bytes32)" + ): TypedContractMethod<[newPrevrandao: BytesLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "prevrandao(uint256)" + ): TypedContractMethod<[newPrevrandao: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "projectRoot" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "prompt" + ): TypedContractMethod<[promptText: string], [string], "nonpayable">; + getFunction( + nameOrSignature: "promptAddress" + ): TypedContractMethod<[promptText: string], [string], "nonpayable">; + getFunction( + nameOrSignature: "promptSecret" + ): TypedContractMethod<[promptText: string], [string], "nonpayable">; + getFunction( + nameOrSignature: "promptSecretUint" + ): TypedContractMethod<[promptText: string], [bigint], "nonpayable">; + getFunction( + nameOrSignature: "promptUint" + ): TypedContractMethod<[promptText: string], [bigint], "nonpayable">; + getFunction( + nameOrSignature: "randomAddress" + ): TypedContractMethod<[], [string], "nonpayable">; + getFunction( + nameOrSignature: "randomUint()" + ): TypedContractMethod<[], [bigint], "nonpayable">; + getFunction( + nameOrSignature: "randomUint(uint256,uint256)" + ): TypedContractMethod< + [min: BigNumberish, max: BigNumberish], + [bigint], + "nonpayable" + >; + getFunction( + nameOrSignature: "readCallers" + ): TypedContractMethod< + [], + [ + [bigint, string, string] & { + callerMode: bigint; + msgSender: string; + txOrigin: string; + } + ], + "nonpayable" + >; + getFunction( + nameOrSignature: "readDir(string,uint64)" + ): TypedContractMethod< + [path: string, maxDepth: BigNumberish], + [VmSafe.DirEntryStructOutput[]], + "view" + >; + getFunction( + nameOrSignature: "readDir(string,uint64,bool)" + ): TypedContractMethod< + [path: string, maxDepth: BigNumberish, followLinks: boolean], + [VmSafe.DirEntryStructOutput[]], + "view" + >; + getFunction( + nameOrSignature: "readDir(string)" + ): TypedContractMethod< + [path: string], + [VmSafe.DirEntryStructOutput[]], + "view" + >; + getFunction( + nameOrSignature: "readFile" + ): TypedContractMethod<[path: string], [string], "view">; + getFunction( + nameOrSignature: "readFileBinary" + ): TypedContractMethod<[path: string], [string], "view">; + getFunction( + nameOrSignature: "readLine" + ): TypedContractMethod<[path: string], [string], "view">; + getFunction( + nameOrSignature: "readLink" + ): TypedContractMethod<[linkPath: string], [string], "view">; + getFunction( + nameOrSignature: "record" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "recordLogs" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "rememberKey" + ): TypedContractMethod<[privateKey: BigNumberish], [string], "nonpayable">; + getFunction( + nameOrSignature: "removeDir" + ): TypedContractMethod< + [path: string, recursive: boolean], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "removeFile" + ): TypedContractMethod<[path: string], [void], "nonpayable">; + getFunction( + nameOrSignature: "replace" + ): TypedContractMethod< + [input: string, from: string, to: string], + [string], + "view" + >; + getFunction( + nameOrSignature: "resetNonce" + ): TypedContractMethod<[account: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "resumeGasMetering" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "revertTo" + ): TypedContractMethod<[snapshotId: BigNumberish], [boolean], "nonpayable">; + getFunction( + nameOrSignature: "revertToAndDelete" + ): TypedContractMethod<[snapshotId: BigNumberish], [boolean], "nonpayable">; + getFunction( + nameOrSignature: "revokePersistent(address[])" + ): TypedContractMethod<[accounts: AddressLike[]], [void], "nonpayable">; + getFunction( + nameOrSignature: "revokePersistent(address)" + ): TypedContractMethod<[account: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "roll" + ): TypedContractMethod<[newHeight: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "rollFork(bytes32)" + ): TypedContractMethod<[txHash: BytesLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "rollFork(uint256,uint256)" + ): TypedContractMethod< + [forkId: BigNumberish, blockNumber: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "rollFork(uint256)" + ): TypedContractMethod<[blockNumber: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "rollFork(uint256,bytes32)" + ): TypedContractMethod< + [forkId: BigNumberish, txHash: BytesLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "rpc(string,string,string)" + ): TypedContractMethod< + [urlOrAlias: string, method: string, params: string], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "rpc(string,string)" + ): TypedContractMethod< + [method: string, params: string], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "rpcUrl" + ): TypedContractMethod<[rpcAlias: string], [string], "view">; + getFunction( + nameOrSignature: "rpcUrlStructs" + ): TypedContractMethod<[], [VmSafe.RpcStructOutput[]], "view">; + getFunction( + nameOrSignature: "rpcUrls" + ): TypedContractMethod<[], [[string, string][]], "view">; + getFunction( + nameOrSignature: "selectFork" + ): TypedContractMethod<[forkId: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "serializeAddress(string,string,address[])" + ): TypedContractMethod< + [objectKey: string, valueKey: string, values: AddressLike[]], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeAddress(string,string,address)" + ): TypedContractMethod< + [objectKey: string, valueKey: string, value: AddressLike], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeBool(string,string,bool[])" + ): TypedContractMethod< + [objectKey: string, valueKey: string, values: boolean[]], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeBool(string,string,bool)" + ): TypedContractMethod< + [objectKey: string, valueKey: string, value: boolean], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeBytes(string,string,bytes[])" + ): TypedContractMethod< + [objectKey: string, valueKey: string, values: BytesLike[]], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeBytes(string,string,bytes)" + ): TypedContractMethod< + [objectKey: string, valueKey: string, value: BytesLike], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeBytes32(string,string,bytes32[])" + ): TypedContractMethod< + [objectKey: string, valueKey: string, values: BytesLike[]], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeBytes32(string,string,bytes32)" + ): TypedContractMethod< + [objectKey: string, valueKey: string, value: BytesLike], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeInt(string,string,int256)" + ): TypedContractMethod< + [objectKey: string, valueKey: string, value: BigNumberish], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeInt(string,string,int256[])" + ): TypedContractMethod< + [objectKey: string, valueKey: string, values: BigNumberish[]], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeJson" + ): TypedContractMethod< + [objectKey: string, value: string], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeJsonType(string,bytes)" + ): TypedContractMethod< + [typeDescription: string, value: BytesLike], + [string], + "view" + >; + getFunction( + nameOrSignature: "serializeJsonType(string,string,string,bytes)" + ): TypedContractMethod< + [ + objectKey: string, + valueKey: string, + typeDescription: string, + value: BytesLike + ], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeString(string,string,string[])" + ): TypedContractMethod< + [objectKey: string, valueKey: string, values: string[]], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeString(string,string,string)" + ): TypedContractMethod< + [objectKey: string, valueKey: string, value: string], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeUint(string,string,uint256)" + ): TypedContractMethod< + [objectKey: string, valueKey: string, value: BigNumberish], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeUint(string,string,uint256[])" + ): TypedContractMethod< + [objectKey: string, valueKey: string, values: BigNumberish[]], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeUintToHex" + ): TypedContractMethod< + [objectKey: string, valueKey: string, value: BigNumberish], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "setBlockhash" + ): TypedContractMethod< + [blockNumber: BigNumberish, blockHash: BytesLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "setEnv" + ): TypedContractMethod<[name: string, value: string], [void], "nonpayable">; + getFunction( + nameOrSignature: "setNonce" + ): TypedContractMethod< + [account: AddressLike, newNonce: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "setNonceUnsafe" + ): TypedContractMethod< + [account: AddressLike, newNonce: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "sign(bytes32)" + ): TypedContractMethod< + [digest: BytesLike], + [[bigint, string, string] & { v: bigint; r: string; s: string }], + "view" + >; + getFunction( + nameOrSignature: "sign(address,bytes32)" + ): TypedContractMethod< + [signer: AddressLike, digest: BytesLike], + [[bigint, string, string] & { v: bigint; r: string; s: string }], + "view" + >; + getFunction( + nameOrSignature: "sign((address,uint256,uint256,uint256),bytes32)" + ): TypedContractMethod< + [wallet: VmSafe.WalletStruct, digest: BytesLike], + [[bigint, string, string] & { v: bigint; r: string; s: string }], + "nonpayable" + >; + getFunction( + nameOrSignature: "sign(uint256,bytes32)" + ): TypedContractMethod< + [privateKey: BigNumberish, digest: BytesLike], + [[bigint, string, string] & { v: bigint; r: string; s: string }], + "view" + >; + getFunction( + nameOrSignature: "signCompact((address,uint256,uint256,uint256),bytes32)" + ): TypedContractMethod< + [wallet: VmSafe.WalletStruct, digest: BytesLike], + [[string, string] & { r: string; vs: string }], + "nonpayable" + >; + getFunction( + nameOrSignature: "signCompact(address,bytes32)" + ): TypedContractMethod< + [signer: AddressLike, digest: BytesLike], + [[string, string] & { r: string; vs: string }], + "view" + >; + getFunction( + nameOrSignature: "signCompact(bytes32)" + ): TypedContractMethod< + [digest: BytesLike], + [[string, string] & { r: string; vs: string }], + "view" + >; + getFunction( + nameOrSignature: "signCompact(uint256,bytes32)" + ): TypedContractMethod< + [privateKey: BigNumberish, digest: BytesLike], + [[string, string] & { r: string; vs: string }], + "view" + >; + getFunction( + nameOrSignature: "signP256" + ): TypedContractMethod< + [privateKey: BigNumberish, digest: BytesLike], + [[string, string] & { r: string; s: string }], + "view" + >; + getFunction( + nameOrSignature: "skip" + ): TypedContractMethod<[skipTest: boolean], [void], "nonpayable">; + getFunction( + nameOrSignature: "sleep" + ): TypedContractMethod<[duration: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "snapshot" + ): TypedContractMethod<[], [bigint], "nonpayable">; + getFunction( + nameOrSignature: "split" + ): TypedContractMethod< + [input: string, delimiter: string], + [string[]], + "view" + >; + getFunction( + nameOrSignature: "startBroadcast()" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "startBroadcast(address)" + ): TypedContractMethod<[signer: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "startBroadcast(uint256)" + ): TypedContractMethod<[privateKey: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "startMappingRecording" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "startPrank(address)" + ): TypedContractMethod<[msgSender: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "startPrank(address,address)" + ): TypedContractMethod< + [msgSender: AddressLike, txOrigin: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "startStateDiffRecording" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "stopAndReturnStateDiff" + ): TypedContractMethod< + [], + [VmSafe.AccountAccessStructOutput[]], + "nonpayable" + >; + getFunction( + nameOrSignature: "stopBroadcast" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "stopExpectSafeMemory" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "stopMappingRecording" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "stopPrank" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "store" + ): TypedContractMethod< + [target: AddressLike, slot: BytesLike, value: BytesLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "toBase64(string)" + ): TypedContractMethod<[data: string], [string], "view">; + getFunction( + nameOrSignature: "toBase64(bytes)" + ): TypedContractMethod<[data: BytesLike], [string], "view">; + getFunction( + nameOrSignature: "toBase64URL(string)" + ): TypedContractMethod<[data: string], [string], "view">; + getFunction( + nameOrSignature: "toBase64URL(bytes)" + ): TypedContractMethod<[data: BytesLike], [string], "view">; + getFunction( + nameOrSignature: "toLowercase" + ): TypedContractMethod<[input: string], [string], "view">; + getFunction( + nameOrSignature: "toString(address)" + ): TypedContractMethod<[value: AddressLike], [string], "view">; + getFunction( + nameOrSignature: "toString(uint256)" + ): TypedContractMethod<[value: BigNumberish], [string], "view">; + getFunction( + nameOrSignature: "toString(bytes)" + ): TypedContractMethod<[value: BytesLike], [string], "view">; + getFunction( + nameOrSignature: "toString(bool)" + ): TypedContractMethod<[value: boolean], [string], "view">; + getFunction( + nameOrSignature: "toString(int256)" + ): TypedContractMethod<[value: BigNumberish], [string], "view">; + getFunction( + nameOrSignature: "toString(bytes32)" + ): TypedContractMethod<[value: BytesLike], [string], "view">; + getFunction( + nameOrSignature: "toUppercase" + ): TypedContractMethod<[input: string], [string], "view">; + getFunction( + nameOrSignature: "transact(uint256,bytes32)" + ): TypedContractMethod< + [forkId: BigNumberish, txHash: BytesLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "transact(bytes32)" + ): TypedContractMethod<[txHash: BytesLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "trim" + ): TypedContractMethod<[input: string], [string], "view">; + getFunction( + nameOrSignature: "tryFfi" + ): TypedContractMethod< + [commandInput: string[]], + [VmSafe.FfiResultStructOutput], + "nonpayable" + >; + getFunction( + nameOrSignature: "txGasPrice" + ): TypedContractMethod<[newGasPrice: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "unixTime" + ): TypedContractMethod<[], [bigint], "nonpayable">; + getFunction( + nameOrSignature: "warp" + ): TypedContractMethod<[newTimestamp: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "writeFile" + ): TypedContractMethod<[path: string, data: string], [void], "nonpayable">; + getFunction( + nameOrSignature: "writeFileBinary" + ): TypedContractMethod<[path: string, data: BytesLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "writeJson(string,string,string)" + ): TypedContractMethod< + [json: string, path: string, valueKey: string], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "writeJson(string,string)" + ): TypedContractMethod<[json: string, path: string], [void], "nonpayable">; + getFunction( + nameOrSignature: "writeLine" + ): TypedContractMethod<[path: string, data: string], [void], "nonpayable">; + getFunction( + nameOrSignature: "writeToml(string,string,string)" + ): TypedContractMethod< + [json: string, path: string, valueKey: string], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "writeToml(string,string)" + ): TypedContractMethod<[json: string, path: string], [void], "nonpayable">; + + filters: {}; +} diff --git a/typechain-types/src/Upgrades.sol/VmSafe.ts b/typechain-types/src/Upgrades.sol/VmSafe.ts new file mode 100644 index 0000000..234377d --- /dev/null +++ b/typechain-types/src/Upgrades.sol/VmSafe.ts @@ -0,0 +1,6755 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../../common"; + +export declare namespace VmSafe { + export type WalletStruct = { + addr: AddressLike; + publicKeyX: BigNumberish; + publicKeyY: BigNumberish; + privateKey: BigNumberish; + }; + + export type WalletStructOutput = [ + addr: string, + publicKeyX: bigint, + publicKeyY: bigint, + privateKey: bigint + ] & { + addr: string; + publicKeyX: bigint; + publicKeyY: bigint; + privateKey: bigint; + }; + + export type EthGetLogsStruct = { + emitter: AddressLike; + topics: BytesLike[]; + data: BytesLike; + blockHash: BytesLike; + blockNumber: BigNumberish; + transactionHash: BytesLike; + transactionIndex: BigNumberish; + logIndex: BigNumberish; + removed: boolean; + }; + + export type EthGetLogsStructOutput = [ + emitter: string, + topics: string[], + data: string, + blockHash: string, + blockNumber: bigint, + transactionHash: string, + transactionIndex: bigint, + logIndex: bigint, + removed: boolean + ] & { + emitter: string; + topics: string[]; + data: string; + blockHash: string; + blockNumber: bigint; + transactionHash: string; + transactionIndex: bigint; + logIndex: bigint; + removed: boolean; + }; + + export type FsMetadataStruct = { + isDir: boolean; + isSymlink: boolean; + length: BigNumberish; + readOnly: boolean; + modified: BigNumberish; + accessed: BigNumberish; + created: BigNumberish; + }; + + export type FsMetadataStructOutput = [ + isDir: boolean, + isSymlink: boolean, + length: bigint, + readOnly: boolean, + modified: bigint, + accessed: bigint, + created: bigint + ] & { + isDir: boolean; + isSymlink: boolean; + length: bigint; + readOnly: boolean; + modified: bigint; + accessed: bigint; + created: bigint; + }; + + export type LogStruct = { + topics: BytesLike[]; + data: BytesLike; + emitter: AddressLike; + }; + + export type LogStructOutput = [ + topics: string[], + data: string, + emitter: string + ] & { topics: string[]; data: string; emitter: string }; + + export type GasStruct = { + gasLimit: BigNumberish; + gasTotalUsed: BigNumberish; + gasMemoryUsed: BigNumberish; + gasRefunded: BigNumberish; + gasRemaining: BigNumberish; + }; + + export type GasStructOutput = [ + gasLimit: bigint, + gasTotalUsed: bigint, + gasMemoryUsed: bigint, + gasRefunded: bigint, + gasRemaining: bigint + ] & { + gasLimit: bigint; + gasTotalUsed: bigint; + gasMemoryUsed: bigint; + gasRefunded: bigint; + gasRemaining: bigint; + }; + + export type DirEntryStruct = { + errorMessage: string; + path: string; + depth: BigNumberish; + isDir: boolean; + isSymlink: boolean; + }; + + export type DirEntryStructOutput = [ + errorMessage: string, + path: string, + depth: bigint, + isDir: boolean, + isSymlink: boolean + ] & { + errorMessage: string; + path: string; + depth: bigint; + isDir: boolean; + isSymlink: boolean; + }; + + export type RpcStruct = { key: string; url: string }; + + export type RpcStructOutput = [key: string, url: string] & { + key: string; + url: string; + }; + + export type ChainInfoStruct = { forkId: BigNumberish; chainId: BigNumberish }; + + export type ChainInfoStructOutput = [forkId: bigint, chainId: bigint] & { + forkId: bigint; + chainId: bigint; + }; + + export type StorageAccessStruct = { + account: AddressLike; + slot: BytesLike; + isWrite: boolean; + previousValue: BytesLike; + newValue: BytesLike; + reverted: boolean; + }; + + export type StorageAccessStructOutput = [ + account: string, + slot: string, + isWrite: boolean, + previousValue: string, + newValue: string, + reverted: boolean + ] & { + account: string; + slot: string; + isWrite: boolean; + previousValue: string; + newValue: string; + reverted: boolean; + }; + + export type AccountAccessStruct = { + chainInfo: VmSafe.ChainInfoStruct; + kind: BigNumberish; + account: AddressLike; + accessor: AddressLike; + initialized: boolean; + oldBalance: BigNumberish; + newBalance: BigNumberish; + deployedCode: BytesLike; + value: BigNumberish; + data: BytesLike; + reverted: boolean; + storageAccesses: VmSafe.StorageAccessStruct[]; + depth: BigNumberish; + }; + + export type AccountAccessStructOutput = [ + chainInfo: VmSafe.ChainInfoStructOutput, + kind: bigint, + account: string, + accessor: string, + initialized: boolean, + oldBalance: bigint, + newBalance: bigint, + deployedCode: string, + value: bigint, + data: string, + reverted: boolean, + storageAccesses: VmSafe.StorageAccessStructOutput[], + depth: bigint + ] & { + chainInfo: VmSafe.ChainInfoStructOutput; + kind: bigint; + account: string; + accessor: string; + initialized: boolean; + oldBalance: bigint; + newBalance: bigint; + deployedCode: string; + value: bigint; + data: string; + reverted: boolean; + storageAccesses: VmSafe.StorageAccessStructOutput[]; + depth: bigint; + }; + + export type FfiResultStruct = { + exitCode: BigNumberish; + stdout: BytesLike; + stderr: BytesLike; + }; + + export type FfiResultStructOutput = [ + exitCode: bigint, + stdout: string, + stderr: string + ] & { exitCode: bigint; stdout: string; stderr: string }; +} + +export interface VmSafeInterface extends Interface { + getFunction( + nameOrSignature: + | "accesses" + | "addr" + | "assertApproxEqAbs(uint256,uint256,uint256)" + | "assertApproxEqAbs(int256,int256,uint256)" + | "assertApproxEqAbs(int256,int256,uint256,string)" + | "assertApproxEqAbs(uint256,uint256,uint256,string)" + | "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)" + | "assertApproxEqAbsDecimal(int256,int256,uint256,uint256)" + | "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)" + | "assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)" + | "assertApproxEqRel(uint256,uint256,uint256,string)" + | "assertApproxEqRel(uint256,uint256,uint256)" + | "assertApproxEqRel(int256,int256,uint256,string)" + | "assertApproxEqRel(int256,int256,uint256)" + | "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)" + | "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)" + | "assertApproxEqRelDecimal(int256,int256,uint256,uint256)" + | "assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)" + | "assertEq(bytes32[],bytes32[])" + | "assertEq(int256[],int256[],string)" + | "assertEq(address,address,string)" + | "assertEq(string,string,string)" + | "assertEq(address[],address[])" + | "assertEq(address[],address[],string)" + | "assertEq(bool,bool,string)" + | "assertEq(address,address)" + | "assertEq(uint256[],uint256[],string)" + | "assertEq(bool[],bool[])" + | "assertEq(int256[],int256[])" + | "assertEq(int256,int256,string)" + | "assertEq(bytes32,bytes32)" + | "assertEq(uint256,uint256,string)" + | "assertEq(uint256[],uint256[])" + | "assertEq(bytes,bytes)" + | "assertEq(uint256,uint256)" + | "assertEq(bytes32,bytes32,string)" + | "assertEq(string[],string[])" + | "assertEq(bytes32[],bytes32[],string)" + | "assertEq(bytes,bytes,string)" + | "assertEq(bool[],bool[],string)" + | "assertEq(bytes[],bytes[])" + | "assertEq(string[],string[],string)" + | "assertEq(string,string)" + | "assertEq(bytes[],bytes[],string)" + | "assertEq(bool,bool)" + | "assertEq(int256,int256)" + | "assertEqDecimal(uint256,uint256,uint256)" + | "assertEqDecimal(int256,int256,uint256)" + | "assertEqDecimal(int256,int256,uint256,string)" + | "assertEqDecimal(uint256,uint256,uint256,string)" + | "assertFalse(bool,string)" + | "assertFalse(bool)" + | "assertGe(int256,int256)" + | "assertGe(int256,int256,string)" + | "assertGe(uint256,uint256)" + | "assertGe(uint256,uint256,string)" + | "assertGeDecimal(uint256,uint256,uint256)" + | "assertGeDecimal(int256,int256,uint256,string)" + | "assertGeDecimal(uint256,uint256,uint256,string)" + | "assertGeDecimal(int256,int256,uint256)" + | "assertGt(int256,int256)" + | "assertGt(uint256,uint256,string)" + | "assertGt(uint256,uint256)" + | "assertGt(int256,int256,string)" + | "assertGtDecimal(int256,int256,uint256,string)" + | "assertGtDecimal(uint256,uint256,uint256,string)" + | "assertGtDecimal(int256,int256,uint256)" + | "assertGtDecimal(uint256,uint256,uint256)" + | "assertLe(int256,int256,string)" + | "assertLe(uint256,uint256)" + | "assertLe(int256,int256)" + | "assertLe(uint256,uint256,string)" + | "assertLeDecimal(int256,int256,uint256)" + | "assertLeDecimal(uint256,uint256,uint256,string)" + | "assertLeDecimal(int256,int256,uint256,string)" + | "assertLeDecimal(uint256,uint256,uint256)" + | "assertLt(int256,int256)" + | "assertLt(uint256,uint256,string)" + | "assertLt(int256,int256,string)" + | "assertLt(uint256,uint256)" + | "assertLtDecimal(uint256,uint256,uint256)" + | "assertLtDecimal(int256,int256,uint256,string)" + | "assertLtDecimal(uint256,uint256,uint256,string)" + | "assertLtDecimal(int256,int256,uint256)" + | "assertNotEq(bytes32[],bytes32[])" + | "assertNotEq(int256[],int256[])" + | "assertNotEq(bool,bool,string)" + | "assertNotEq(bytes[],bytes[],string)" + | "assertNotEq(bool,bool)" + | "assertNotEq(bool[],bool[])" + | "assertNotEq(bytes,bytes)" + | "assertNotEq(address[],address[])" + | "assertNotEq(int256,int256,string)" + | "assertNotEq(uint256[],uint256[])" + | "assertNotEq(bool[],bool[],string)" + | "assertNotEq(string,string)" + | "assertNotEq(address[],address[],string)" + | "assertNotEq(string,string,string)" + | "assertNotEq(address,address,string)" + | "assertNotEq(bytes32,bytes32)" + | "assertNotEq(bytes,bytes,string)" + | "assertNotEq(uint256,uint256,string)" + | "assertNotEq(uint256[],uint256[],string)" + | "assertNotEq(address,address)" + | "assertNotEq(bytes32,bytes32,string)" + | "assertNotEq(string[],string[],string)" + | "assertNotEq(uint256,uint256)" + | "assertNotEq(bytes32[],bytes32[],string)" + | "assertNotEq(string[],string[])" + | "assertNotEq(int256[],int256[],string)" + | "assertNotEq(bytes[],bytes[])" + | "assertNotEq(int256,int256)" + | "assertNotEqDecimal(int256,int256,uint256)" + | "assertNotEqDecimal(int256,int256,uint256,string)" + | "assertNotEqDecimal(uint256,uint256,uint256)" + | "assertNotEqDecimal(uint256,uint256,uint256,string)" + | "assertTrue(bool)" + | "assertTrue(bool,string)" + | "assume" + | "breakpoint(string)" + | "breakpoint(string,bool)" + | "broadcast()" + | "broadcast(address)" + | "broadcast(uint256)" + | "broadcastRawTransaction" + | "closeFile" + | "computeCreate2Address(bytes32,bytes32)" + | "computeCreate2Address(bytes32,bytes32,address)" + | "computeCreateAddress" + | "copyFile" + | "createDir" + | "createWallet(string)" + | "createWallet(uint256)" + | "createWallet(uint256,string)" + | "deployCode(string,bytes)" + | "deployCode(string)" + | "deriveKey(string,string,uint32,string)" + | "deriveKey(string,uint32,string)" + | "deriveKey(string,uint32)" + | "deriveKey(string,string,uint32)" + | "ensNamehash" + | "envAddress(string)" + | "envAddress(string,string)" + | "envBool(string)" + | "envBool(string,string)" + | "envBytes(string)" + | "envBytes(string,string)" + | "envBytes32(string,string)" + | "envBytes32(string)" + | "envExists" + | "envInt(string,string)" + | "envInt(string)" + | "envOr(string,string,bytes32[])" + | "envOr(string,string,int256[])" + | "envOr(string,bool)" + | "envOr(string,address)" + | "envOr(string,uint256)" + | "envOr(string,string,bytes[])" + | "envOr(string,string,uint256[])" + | "envOr(string,string,string[])" + | "envOr(string,bytes)" + | "envOr(string,bytes32)" + | "envOr(string,int256)" + | "envOr(string,string,address[])" + | "envOr(string,string)" + | "envOr(string,string,bool[])" + | "envString(string,string)" + | "envString(string)" + | "envUint(string)" + | "envUint(string,string)" + | "eth_getLogs" + | "exists" + | "ffi" + | "fsMetadata" + | "getBlobBaseFee" + | "getBlockNumber" + | "getBlockTimestamp" + | "getCode" + | "getDeployedCode" + | "getFoundryVersion" + | "getLabel" + | "getMappingKeyAndParentOf" + | "getMappingLength" + | "getMappingSlotAt" + | "getNonce(address)" + | "getNonce((address,uint256,uint256,uint256))" + | "getRecordedLogs" + | "indexOf" + | "isContext" + | "isDir" + | "isFile" + | "keyExists" + | "keyExistsJson" + | "keyExistsToml" + | "label" + | "lastCallGas" + | "load" + | "parseAddress" + | "parseBool" + | "parseBytes" + | "parseBytes32" + | "parseInt" + | "parseJson(string)" + | "parseJson(string,string)" + | "parseJsonAddress" + | "parseJsonAddressArray" + | "parseJsonBool" + | "parseJsonBoolArray" + | "parseJsonBytes" + | "parseJsonBytes32" + | "parseJsonBytes32Array" + | "parseJsonBytesArray" + | "parseJsonInt" + | "parseJsonIntArray" + | "parseJsonKeys" + | "parseJsonString" + | "parseJsonStringArray" + | "parseJsonType(string,string)" + | "parseJsonType(string,string,string)" + | "parseJsonTypeArray" + | "parseJsonUint" + | "parseJsonUintArray" + | "parseToml(string,string)" + | "parseToml(string)" + | "parseTomlAddress" + | "parseTomlAddressArray" + | "parseTomlBool" + | "parseTomlBoolArray" + | "parseTomlBytes" + | "parseTomlBytes32" + | "parseTomlBytes32Array" + | "parseTomlBytesArray" + | "parseTomlInt" + | "parseTomlIntArray" + | "parseTomlKeys" + | "parseTomlString" + | "parseTomlStringArray" + | "parseTomlUint" + | "parseTomlUintArray" + | "parseUint" + | "pauseGasMetering" + | "projectRoot" + | "prompt" + | "promptAddress" + | "promptSecret" + | "promptSecretUint" + | "promptUint" + | "randomAddress" + | "randomUint()" + | "randomUint(uint256,uint256)" + | "readDir(string,uint64)" + | "readDir(string,uint64,bool)" + | "readDir(string)" + | "readFile" + | "readFileBinary" + | "readLine" + | "readLink" + | "record" + | "recordLogs" + | "rememberKey" + | "removeDir" + | "removeFile" + | "replace" + | "resumeGasMetering" + | "rpc(string,string,string)" + | "rpc(string,string)" + | "rpcUrl" + | "rpcUrlStructs" + | "rpcUrls" + | "serializeAddress(string,string,address[])" + | "serializeAddress(string,string,address)" + | "serializeBool(string,string,bool[])" + | "serializeBool(string,string,bool)" + | "serializeBytes(string,string,bytes[])" + | "serializeBytes(string,string,bytes)" + | "serializeBytes32(string,string,bytes32[])" + | "serializeBytes32(string,string,bytes32)" + | "serializeInt(string,string,int256)" + | "serializeInt(string,string,int256[])" + | "serializeJson" + | "serializeJsonType(string,bytes)" + | "serializeJsonType(string,string,string,bytes)" + | "serializeString(string,string,string[])" + | "serializeString(string,string,string)" + | "serializeUint(string,string,uint256)" + | "serializeUint(string,string,uint256[])" + | "serializeUintToHex" + | "setEnv" + | "sign(bytes32)" + | "sign(address,bytes32)" + | "sign((address,uint256,uint256,uint256),bytes32)" + | "sign(uint256,bytes32)" + | "signCompact((address,uint256,uint256,uint256),bytes32)" + | "signCompact(address,bytes32)" + | "signCompact(bytes32)" + | "signCompact(uint256,bytes32)" + | "signP256" + | "sleep" + | "split" + | "startBroadcast()" + | "startBroadcast(address)" + | "startBroadcast(uint256)" + | "startMappingRecording" + | "startStateDiffRecording" + | "stopAndReturnStateDiff" + | "stopBroadcast" + | "stopMappingRecording" + | "toBase64(string)" + | "toBase64(bytes)" + | "toBase64URL(string)" + | "toBase64URL(bytes)" + | "toLowercase" + | "toString(address)" + | "toString(uint256)" + | "toString(bytes)" + | "toString(bool)" + | "toString(int256)" + | "toString(bytes32)" + | "toUppercase" + | "trim" + | "tryFfi" + | "unixTime" + | "writeFile" + | "writeFileBinary" + | "writeJson(string,string,string)" + | "writeJson(string,string)" + | "writeLine" + | "writeToml(string,string,string)" + | "writeToml(string,string)" + ): FunctionFragment; + + encodeFunctionData( + functionFragment: "accesses", + values: [AddressLike] + ): string; + encodeFunctionData(functionFragment: "addr", values: [BigNumberish]): string; + encodeFunctionData( + functionFragment: "assertApproxEqAbs(uint256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqAbs(int256,int256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqAbs(int256,int256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqAbs(uint256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqAbsDecimal(int256,int256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqRel(uint256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqRel(uint256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqRel(int256,int256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqRel(int256,int256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqRelDecimal(int256,int256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bytes32[],bytes32[])", + values: [BytesLike[], BytesLike[]] + ): string; + encodeFunctionData( + functionFragment: "assertEq(int256[],int256[],string)", + values: [BigNumberish[], BigNumberish[], string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(address,address,string)", + values: [AddressLike, AddressLike, string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(string,string,string)", + values: [string, string, string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(address[],address[])", + values: [AddressLike[], AddressLike[]] + ): string; + encodeFunctionData( + functionFragment: "assertEq(address[],address[],string)", + values: [AddressLike[], AddressLike[], string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bool,bool,string)", + values: [boolean, boolean, string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(address,address)", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "assertEq(uint256[],uint256[],string)", + values: [BigNumberish[], BigNumberish[], string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bool[],bool[])", + values: [boolean[], boolean[]] + ): string; + encodeFunctionData( + functionFragment: "assertEq(int256[],int256[])", + values: [BigNumberish[], BigNumberish[]] + ): string; + encodeFunctionData( + functionFragment: "assertEq(int256,int256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bytes32,bytes32)", + values: [BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "assertEq(uint256,uint256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(uint256[],uint256[])", + values: [BigNumberish[], BigNumberish[]] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bytes,bytes)", + values: [BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "assertEq(uint256,uint256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bytes32,bytes32,string)", + values: [BytesLike, BytesLike, string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(string[],string[])", + values: [string[], string[]] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bytes32[],bytes32[],string)", + values: [BytesLike[], BytesLike[], string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bytes,bytes,string)", + values: [BytesLike, BytesLike, string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bool[],bool[],string)", + values: [boolean[], boolean[], string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bytes[],bytes[])", + values: [BytesLike[], BytesLike[]] + ): string; + encodeFunctionData( + functionFragment: "assertEq(string[],string[],string)", + values: [string[], string[], string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bytes[],bytes[],string)", + values: [BytesLike[], BytesLike[], string] + ): string; + encodeFunctionData( + functionFragment: "assertEq(bool,bool)", + values: [boolean, boolean] + ): string; + encodeFunctionData( + functionFragment: "assertEq(int256,int256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertEqDecimal(uint256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertEqDecimal(int256,int256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertEqDecimal(int256,int256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertEqDecimal(uint256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertFalse(bool,string)", + values: [boolean, string] + ): string; + encodeFunctionData( + functionFragment: "assertFalse(bool)", + values: [boolean] + ): string; + encodeFunctionData( + functionFragment: "assertGe(int256,int256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertGe(int256,int256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertGe(uint256,uint256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertGe(uint256,uint256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertGeDecimal(uint256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertGeDecimal(int256,int256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertGeDecimal(uint256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertGeDecimal(int256,int256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertGt(int256,int256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertGt(uint256,uint256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertGt(uint256,uint256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertGt(int256,int256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertGtDecimal(int256,int256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertGtDecimal(uint256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertGtDecimal(int256,int256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertGtDecimal(uint256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertLe(int256,int256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertLe(uint256,uint256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertLe(int256,int256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertLe(uint256,uint256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertLeDecimal(int256,int256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertLeDecimal(uint256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertLeDecimal(int256,int256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertLeDecimal(uint256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertLt(int256,int256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertLt(uint256,uint256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertLt(int256,int256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertLt(uint256,uint256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertLtDecimal(uint256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertLtDecimal(int256,int256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertLtDecimal(uint256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertLtDecimal(int256,int256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bytes32[],bytes32[])", + values: [BytesLike[], BytesLike[]] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(int256[],int256[])", + values: [BigNumberish[], BigNumberish[]] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bool,bool,string)", + values: [boolean, boolean, string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bytes[],bytes[],string)", + values: [BytesLike[], BytesLike[], string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bool,bool)", + values: [boolean, boolean] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bool[],bool[])", + values: [boolean[], boolean[]] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bytes,bytes)", + values: [BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(address[],address[])", + values: [AddressLike[], AddressLike[]] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(int256,int256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(uint256[],uint256[])", + values: [BigNumberish[], BigNumberish[]] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bool[],bool[],string)", + values: [boolean[], boolean[], string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(address[],address[],string)", + values: [AddressLike[], AddressLike[], string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(string,string,string)", + values: [string, string, string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(address,address,string)", + values: [AddressLike, AddressLike, string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bytes32,bytes32)", + values: [BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bytes,bytes,string)", + values: [BytesLike, BytesLike, string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(uint256,uint256,string)", + values: [BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(uint256[],uint256[],string)", + values: [BigNumberish[], BigNumberish[], string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(address,address)", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bytes32,bytes32,string)", + values: [BytesLike, BytesLike, string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(string[],string[],string)", + values: [string[], string[], string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(uint256,uint256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bytes32[],bytes32[],string)", + values: [BytesLike[], BytesLike[], string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(string[],string[])", + values: [string[], string[]] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(int256[],int256[],string)", + values: [BigNumberish[], BigNumberish[], string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(bytes[],bytes[])", + values: [BytesLike[], BytesLike[]] + ): string; + encodeFunctionData( + functionFragment: "assertNotEq(int256,int256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertNotEqDecimal(int256,int256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertNotEqDecimal(int256,int256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertNotEqDecimal(uint256,uint256,uint256)", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "assertNotEqDecimal(uint256,uint256,uint256,string)", + values: [BigNumberish, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "assertTrue(bool)", + values: [boolean] + ): string; + encodeFunctionData( + functionFragment: "assertTrue(bool,string)", + values: [boolean, string] + ): string; + encodeFunctionData(functionFragment: "assume", values: [boolean]): string; + encodeFunctionData( + functionFragment: "breakpoint(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "breakpoint(string,bool)", + values: [string, boolean] + ): string; + encodeFunctionData( + functionFragment: "broadcast()", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "broadcast(address)", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "broadcast(uint256)", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "broadcastRawTransaction", + values: [BytesLike] + ): string; + encodeFunctionData(functionFragment: "closeFile", values: [string]): string; + encodeFunctionData( + functionFragment: "computeCreate2Address(bytes32,bytes32)", + values: [BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "computeCreate2Address(bytes32,bytes32,address)", + values: [BytesLike, BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "computeCreateAddress", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "copyFile", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "createDir", + values: [string, boolean] + ): string; + encodeFunctionData( + functionFragment: "createWallet(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "createWallet(uint256)", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "createWallet(uint256,string)", + values: [BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "deployCode(string,bytes)", + values: [string, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "deployCode(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "deriveKey(string,string,uint32,string)", + values: [string, string, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "deriveKey(string,uint32,string)", + values: [string, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "deriveKey(string,uint32)", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "deriveKey(string,string,uint32)", + values: [string, string, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "ensNamehash", values: [string]): string; + encodeFunctionData( + functionFragment: "envAddress(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "envAddress(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "envBool(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "envBool(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "envBytes(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "envBytes(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "envBytes32(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "envBytes32(string)", + values: [string] + ): string; + encodeFunctionData(functionFragment: "envExists", values: [string]): string; + encodeFunctionData( + functionFragment: "envInt(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "envInt(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,string,bytes32[])", + values: [string, string, BytesLike[]] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,string,int256[])", + values: [string, string, BigNumberish[]] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,bool)", + values: [string, boolean] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,address)", + values: [string, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,uint256)", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,string,bytes[])", + values: [string, string, BytesLike[]] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,string,uint256[])", + values: [string, string, BigNumberish[]] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,string,string[])", + values: [string, string, string[]] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,bytes)", + values: [string, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,bytes32)", + values: [string, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,int256)", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,string,address[])", + values: [string, string, AddressLike[]] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "envOr(string,string,bool[])", + values: [string, string, boolean[]] + ): string; + encodeFunctionData( + functionFragment: "envString(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "envString(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "envUint(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "envUint(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "eth_getLogs", + values: [BigNumberish, BigNumberish, AddressLike, BytesLike[]] + ): string; + encodeFunctionData(functionFragment: "exists", values: [string]): string; + encodeFunctionData(functionFragment: "ffi", values: [string[]]): string; + encodeFunctionData(functionFragment: "fsMetadata", values: [string]): string; + encodeFunctionData( + functionFragment: "getBlobBaseFee", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getBlockNumber", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getBlockTimestamp", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "getCode", values: [string]): string; + encodeFunctionData( + functionFragment: "getDeployedCode", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "getFoundryVersion", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getLabel", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "getMappingKeyAndParentOf", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "getMappingLength", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "getMappingSlotAt", + values: [AddressLike, BytesLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "getNonce(address)", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "getNonce((address,uint256,uint256,uint256))", + values: [VmSafe.WalletStruct] + ): string; + encodeFunctionData( + functionFragment: "getRecordedLogs", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "indexOf", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "isContext", + values: [BigNumberish] + ): string; + encodeFunctionData(functionFragment: "isDir", values: [string]): string; + encodeFunctionData(functionFragment: "isFile", values: [string]): string; + encodeFunctionData( + functionFragment: "keyExists", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "keyExistsJson", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "keyExistsToml", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "label", + values: [AddressLike, string] + ): string; + encodeFunctionData( + functionFragment: "lastCallGas", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "load", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "parseAddress", + values: [string] + ): string; + encodeFunctionData(functionFragment: "parseBool", values: [string]): string; + encodeFunctionData(functionFragment: "parseBytes", values: [string]): string; + encodeFunctionData( + functionFragment: "parseBytes32", + values: [string] + ): string; + encodeFunctionData(functionFragment: "parseInt", values: [string]): string; + encodeFunctionData( + functionFragment: "parseJson(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "parseJson(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonAddress", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonAddressArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonBool", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonBoolArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonBytes", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonBytes32", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonBytes32Array", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonBytesArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonInt", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonIntArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonKeys", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonString", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonStringArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonType(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonType(string,string,string)", + values: [string, string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonTypeArray", + values: [string, string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonUint", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseJsonUintArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseToml(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseToml(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlAddress", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlAddressArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlBool", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlBoolArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlBytes", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlBytes32", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlBytes32Array", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlBytesArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlInt", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlIntArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlKeys", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlString", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlStringArray", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlUint", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "parseTomlUintArray", + values: [string, string] + ): string; + encodeFunctionData(functionFragment: "parseUint", values: [string]): string; + encodeFunctionData( + functionFragment: "pauseGasMetering", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "projectRoot", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "prompt", values: [string]): string; + encodeFunctionData( + functionFragment: "promptAddress", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "promptSecret", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "promptSecretUint", + values: [string] + ): string; + encodeFunctionData(functionFragment: "promptUint", values: [string]): string; + encodeFunctionData( + functionFragment: "randomAddress", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "randomUint()", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "randomUint(uint256,uint256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "readDir(string,uint64)", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "readDir(string,uint64,bool)", + values: [string, BigNumberish, boolean] + ): string; + encodeFunctionData( + functionFragment: "readDir(string)", + values: [string] + ): string; + encodeFunctionData(functionFragment: "readFile", values: [string]): string; + encodeFunctionData( + functionFragment: "readFileBinary", + values: [string] + ): string; + encodeFunctionData(functionFragment: "readLine", values: [string]): string; + encodeFunctionData(functionFragment: "readLink", values: [string]): string; + encodeFunctionData(functionFragment: "record", values?: undefined): string; + encodeFunctionData( + functionFragment: "recordLogs", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "rememberKey", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "removeDir", + values: [string, boolean] + ): string; + encodeFunctionData(functionFragment: "removeFile", values: [string]): string; + encodeFunctionData( + functionFragment: "replace", + values: [string, string, string] + ): string; + encodeFunctionData( + functionFragment: "resumeGasMetering", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "rpc(string,string,string)", + values: [string, string, string] + ): string; + encodeFunctionData( + functionFragment: "rpc(string,string)", + values: [string, string] + ): string; + encodeFunctionData(functionFragment: "rpcUrl", values: [string]): string; + encodeFunctionData( + functionFragment: "rpcUrlStructs", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "rpcUrls", values?: undefined): string; + encodeFunctionData( + functionFragment: "serializeAddress(string,string,address[])", + values: [string, string, AddressLike[]] + ): string; + encodeFunctionData( + functionFragment: "serializeAddress(string,string,address)", + values: [string, string, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "serializeBool(string,string,bool[])", + values: [string, string, boolean[]] + ): string; + encodeFunctionData( + functionFragment: "serializeBool(string,string,bool)", + values: [string, string, boolean] + ): string; + encodeFunctionData( + functionFragment: "serializeBytes(string,string,bytes[])", + values: [string, string, BytesLike[]] + ): string; + encodeFunctionData( + functionFragment: "serializeBytes(string,string,bytes)", + values: [string, string, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "serializeBytes32(string,string,bytes32[])", + values: [string, string, BytesLike[]] + ): string; + encodeFunctionData( + functionFragment: "serializeBytes32(string,string,bytes32)", + values: [string, string, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "serializeInt(string,string,int256)", + values: [string, string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "serializeInt(string,string,int256[])", + values: [string, string, BigNumberish[]] + ): string; + encodeFunctionData( + functionFragment: "serializeJson", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "serializeJsonType(string,bytes)", + values: [string, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "serializeJsonType(string,string,string,bytes)", + values: [string, string, string, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "serializeString(string,string,string[])", + values: [string, string, string[]] + ): string; + encodeFunctionData( + functionFragment: "serializeString(string,string,string)", + values: [string, string, string] + ): string; + encodeFunctionData( + functionFragment: "serializeUint(string,string,uint256)", + values: [string, string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "serializeUint(string,string,uint256[])", + values: [string, string, BigNumberish[]] + ): string; + encodeFunctionData( + functionFragment: "serializeUintToHex", + values: [string, string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "setEnv", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "sign(bytes32)", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "sign(address,bytes32)", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "sign((address,uint256,uint256,uint256),bytes32)", + values: [VmSafe.WalletStruct, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "sign(uint256,bytes32)", + values: [BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "signCompact((address,uint256,uint256,uint256),bytes32)", + values: [VmSafe.WalletStruct, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "signCompact(address,bytes32)", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "signCompact(bytes32)", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "signCompact(uint256,bytes32)", + values: [BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "signP256", + values: [BigNumberish, BytesLike] + ): string; + encodeFunctionData(functionFragment: "sleep", values: [BigNumberish]): string; + encodeFunctionData( + functionFragment: "split", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "startBroadcast()", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "startBroadcast(address)", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "startBroadcast(uint256)", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "startMappingRecording", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "startStateDiffRecording", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "stopAndReturnStateDiff", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "stopBroadcast", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "stopMappingRecording", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "toBase64(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "toBase64(bytes)", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "toBase64URL(string)", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "toBase64URL(bytes)", + values: [BytesLike] + ): string; + encodeFunctionData(functionFragment: "toLowercase", values: [string]): string; + encodeFunctionData( + functionFragment: "toString(address)", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "toString(uint256)", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "toString(bytes)", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "toString(bool)", + values: [boolean] + ): string; + encodeFunctionData( + functionFragment: "toString(int256)", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "toString(bytes32)", + values: [BytesLike] + ): string; + encodeFunctionData(functionFragment: "toUppercase", values: [string]): string; + encodeFunctionData(functionFragment: "trim", values: [string]): string; + encodeFunctionData(functionFragment: "tryFfi", values: [string[]]): string; + encodeFunctionData(functionFragment: "unixTime", values?: undefined): string; + encodeFunctionData( + functionFragment: "writeFile", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "writeFileBinary", + values: [string, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "writeJson(string,string,string)", + values: [string, string, string] + ): string; + encodeFunctionData( + functionFragment: "writeJson(string,string)", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "writeLine", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "writeToml(string,string,string)", + values: [string, string, string] + ): string; + encodeFunctionData( + functionFragment: "writeToml(string,string)", + values: [string, string] + ): string; + + decodeFunctionResult(functionFragment: "accesses", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "addr", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqAbs(uint256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqAbs(int256,int256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqAbs(int256,int256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqAbs(uint256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqAbsDecimal(int256,int256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqRel(uint256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqRel(uint256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqRel(int256,int256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqRel(int256,int256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqRelDecimal(int256,int256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bytes32[],bytes32[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(int256[],int256[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(address,address,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(string,string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(address[],address[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(address[],address[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bool,bool,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(address,address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(uint256[],uint256[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bool[],bool[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(int256[],int256[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(int256,int256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bytes32,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(uint256[],uint256[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bytes,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bytes32,bytes32,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(string[],string[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bytes32[],bytes32[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bytes,bytes,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bool[],bool[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bytes[],bytes[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(string[],string[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bytes[],bytes[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(bool,bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEq(int256,int256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEqDecimal(uint256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEqDecimal(int256,int256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEqDecimal(int256,int256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertEqDecimal(uint256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertFalse(bool,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertFalse(bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGe(int256,int256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGe(int256,int256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGe(uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGe(uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGeDecimal(uint256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGeDecimal(int256,int256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGeDecimal(uint256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGeDecimal(int256,int256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGt(int256,int256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGt(uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGt(uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGt(int256,int256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGtDecimal(int256,int256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGtDecimal(uint256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGtDecimal(int256,int256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertGtDecimal(uint256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLe(int256,int256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLe(uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLe(int256,int256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLe(uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLeDecimal(int256,int256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLeDecimal(uint256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLeDecimal(int256,int256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLeDecimal(uint256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLt(int256,int256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLt(uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLt(int256,int256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLt(uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLtDecimal(uint256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLtDecimal(int256,int256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLtDecimal(uint256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertLtDecimal(int256,int256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bytes32[],bytes32[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(int256[],int256[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bool,bool,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bytes[],bytes[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bool,bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bool[],bool[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bytes,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(address[],address[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(int256,int256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(uint256[],uint256[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bool[],bool[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(address[],address[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(string,string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(address,address,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bytes32,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bytes,bytes,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(uint256[],uint256[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(address,address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bytes32,bytes32,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(string[],string[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bytes32[],bytes32[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(string[],string[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(int256[],int256[],string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(bytes[],bytes[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEq(int256,int256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEqDecimal(int256,int256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEqDecimal(int256,int256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEqDecimal(uint256,uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertNotEqDecimal(uint256,uint256,uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertTrue(bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assertTrue(bool,string)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "assume", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "breakpoint(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "breakpoint(string,bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "broadcast()", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "broadcast(address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "broadcast(uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "broadcastRawTransaction", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "closeFile", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "computeCreate2Address(bytes32,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "computeCreate2Address(bytes32,bytes32,address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "computeCreateAddress", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "copyFile", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "createDir", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "createWallet(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "createWallet(uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "createWallet(uint256,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "deployCode(string,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "deployCode(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "deriveKey(string,string,uint32,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "deriveKey(string,uint32,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "deriveKey(string,uint32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "deriveKey(string,string,uint32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "ensNamehash", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envAddress(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envAddress(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envBool(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envBool(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envBytes(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envBytes(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envBytes32(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envBytes32(string)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "envExists", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "envInt(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envInt(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,string,bytes32[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,string,int256[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,string,bytes[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,string,uint256[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,string,string[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,int256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,string,address[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envOr(string,string,bool[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envString(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envString(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envUint(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "envUint(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "eth_getLogs", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "exists", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "ffi", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "fsMetadata", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "getBlobBaseFee", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getBlockNumber", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getBlockTimestamp", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "getCode", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "getDeployedCode", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getFoundryVersion", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "getLabel", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "getMappingKeyAndParentOf", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getMappingLength", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getMappingSlotAt", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getNonce(address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getNonce((address,uint256,uint256,uint256))", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getRecordedLogs", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "indexOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "isContext", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "isDir", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "isFile", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "keyExists", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "keyExistsJson", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "keyExistsToml", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "label", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "lastCallGas", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "load", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "parseAddress", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "parseBool", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "parseBytes", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "parseBytes32", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "parseInt", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "parseJson(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJson(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonAddress", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonAddressArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonBool", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonBoolArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonBytes", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonBytes32", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonBytes32Array", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonBytesArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonInt", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonIntArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonKeys", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonString", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonStringArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonType(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonType(string,string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonTypeArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonUint", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseJsonUintArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseToml(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseToml(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlAddress", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlAddressArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlBool", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlBoolArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlBytes", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlBytes32", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlBytes32Array", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlBytesArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlInt", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlIntArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlKeys", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlString", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlStringArray", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlUint", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "parseTomlUintArray", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "parseUint", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "pauseGasMetering", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "projectRoot", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "prompt", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "promptAddress", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "promptSecret", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "promptSecretUint", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "promptUint", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "randomAddress", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "randomUint()", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "randomUint(uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "readDir(string,uint64)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "readDir(string,uint64,bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "readDir(string)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "readFile", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "readFileBinary", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "readLine", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "readLink", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "record", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "recordLogs", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "rememberKey", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "removeDir", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "removeFile", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "replace", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "resumeGasMetering", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "rpc(string,string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "rpc(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "rpcUrl", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "rpcUrlStructs", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "rpcUrls", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "serializeAddress(string,string,address[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeAddress(string,string,address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeBool(string,string,bool[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeBool(string,string,bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeBytes(string,string,bytes[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeBytes(string,string,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeBytes32(string,string,bytes32[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeBytes32(string,string,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeInt(string,string,int256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeInt(string,string,int256[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeJson", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeJsonType(string,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeJsonType(string,string,string,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeString(string,string,string[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeString(string,string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeUint(string,string,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeUint(string,string,uint256[])", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "serializeUintToHex", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "setEnv", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "sign(bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "sign(address,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "sign((address,uint256,uint256,uint256),bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "sign(uint256,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "signCompact((address,uint256,uint256,uint256),bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "signCompact(address,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "signCompact(bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "signCompact(uint256,bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "signP256", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "sleep", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "split", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "startBroadcast()", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "startBroadcast(address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "startBroadcast(uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "startMappingRecording", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "startStateDiffRecording", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "stopAndReturnStateDiff", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "stopBroadcast", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "stopMappingRecording", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toBase64(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toBase64(bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toBase64URL(string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toBase64URL(bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toLowercase", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toString(address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toString(uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toString(bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toString(bool)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toString(int256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toString(bytes32)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "toUppercase", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "trim", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "tryFfi", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "unixTime", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "writeFile", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "writeFileBinary", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "writeJson(string,string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "writeJson(string,string)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "writeLine", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "writeToml(string,string,string)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "writeToml(string,string)", + data: BytesLike + ): Result; +} + +export interface VmSafe extends BaseContract { + connect(runner?: ContractRunner | null): VmSafe; + waitForDeployment(): Promise; + + interface: VmSafeInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + accesses: TypedContractMethod< + [target: AddressLike], + [[string[], string[]] & { readSlots: string[]; writeSlots: string[] }], + "nonpayable" + >; + + addr: TypedContractMethod<[privateKey: BigNumberish], [string], "view">; + + "assertApproxEqAbs(uint256,uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, maxDelta: BigNumberish], + [void], + "view" + >; + + "assertApproxEqAbs(int256,int256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, maxDelta: BigNumberish], + [void], + "view" + >; + + "assertApproxEqAbs(int256,int256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertApproxEqAbs(uint256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + decimals: BigNumberish + ], + [void], + "view" + >; + + "assertApproxEqAbsDecimal(int256,int256,uint256,uint256)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + decimals: BigNumberish + ], + [void], + "view" + >; + + "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertApproxEqRel(uint256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertApproxEqRel(uint256,uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, maxPercentDelta: BigNumberish], + [void], + "view" + >; + + "assertApproxEqRel(int256,int256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertApproxEqRel(int256,int256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, maxPercentDelta: BigNumberish], + [void], + "view" + >; + + "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + decimals: BigNumberish + ], + [void], + "view" + >; + + "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertApproxEqRelDecimal(int256,int256,uint256,uint256)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + decimals: BigNumberish + ], + [void], + "view" + >; + + "assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertEq(bytes32[],bytes32[])": TypedContractMethod< + [left: BytesLike[], right: BytesLike[]], + [void], + "view" + >; + + "assertEq(int256[],int256[],string)": TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[], error: string], + [void], + "view" + >; + + "assertEq(address,address,string)": TypedContractMethod< + [left: AddressLike, right: AddressLike, error: string], + [void], + "view" + >; + + "assertEq(string,string,string)": TypedContractMethod< + [left: string, right: string, error: string], + [void], + "view" + >; + + "assertEq(address[],address[])": TypedContractMethod< + [left: AddressLike[], right: AddressLike[]], + [void], + "view" + >; + + "assertEq(address[],address[],string)": TypedContractMethod< + [left: AddressLike[], right: AddressLike[], error: string], + [void], + "view" + >; + + "assertEq(bool,bool,string)": TypedContractMethod< + [left: boolean, right: boolean, error: string], + [void], + "view" + >; + + "assertEq(address,address)": TypedContractMethod< + [left: AddressLike, right: AddressLike], + [void], + "view" + >; + + "assertEq(uint256[],uint256[],string)": TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[], error: string], + [void], + "view" + >; + + "assertEq(bool[],bool[])": TypedContractMethod< + [left: boolean[], right: boolean[]], + [void], + "view" + >; + + "assertEq(int256[],int256[])": TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[]], + [void], + "view" + >; + + "assertEq(int256,int256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertEq(bytes32,bytes32)": TypedContractMethod< + [left: BytesLike, right: BytesLike], + [void], + "view" + >; + + "assertEq(uint256,uint256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertEq(uint256[],uint256[])": TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[]], + [void], + "view" + >; + + "assertEq(bytes,bytes)": TypedContractMethod< + [left: BytesLike, right: BytesLike], + [void], + "view" + >; + + "assertEq(uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertEq(bytes32,bytes32,string)": TypedContractMethod< + [left: BytesLike, right: BytesLike, error: string], + [void], + "view" + >; + + "assertEq(string[],string[])": TypedContractMethod< + [left: string[], right: string[]], + [void], + "view" + >; + + "assertEq(bytes32[],bytes32[],string)": TypedContractMethod< + [left: BytesLike[], right: BytesLike[], error: string], + [void], + "view" + >; + + "assertEq(bytes,bytes,string)": TypedContractMethod< + [left: BytesLike, right: BytesLike, error: string], + [void], + "view" + >; + + "assertEq(bool[],bool[],string)": TypedContractMethod< + [left: boolean[], right: boolean[], error: string], + [void], + "view" + >; + + "assertEq(bytes[],bytes[])": TypedContractMethod< + [left: BytesLike[], right: BytesLike[]], + [void], + "view" + >; + + "assertEq(string[],string[],string)": TypedContractMethod< + [left: string[], right: string[], error: string], + [void], + "view" + >; + + "assertEq(string,string)": TypedContractMethod< + [left: string, right: string], + [void], + "view" + >; + + "assertEq(bytes[],bytes[],string)": TypedContractMethod< + [left: BytesLike[], right: BytesLike[], error: string], + [void], + "view" + >; + + "assertEq(bool,bool)": TypedContractMethod< + [left: boolean, right: boolean], + [void], + "view" + >; + + "assertEq(int256,int256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertEqDecimal(uint256,uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertEqDecimal(int256,int256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertEqDecimal(int256,int256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertEqDecimal(uint256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertFalse(bool,string)": TypedContractMethod< + [condition: boolean, error: string], + [void], + "view" + >; + + "assertFalse(bool)": TypedContractMethod< + [condition: boolean], + [void], + "view" + >; + + "assertGe(int256,int256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertGe(int256,int256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertGe(uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertGe(uint256,uint256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertGeDecimal(uint256,uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertGeDecimal(int256,int256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertGeDecimal(uint256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertGeDecimal(int256,int256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertGt(int256,int256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertGt(uint256,uint256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertGt(uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertGt(int256,int256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertGtDecimal(int256,int256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertGtDecimal(uint256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertGtDecimal(int256,int256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertGtDecimal(uint256,uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertLe(int256,int256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertLe(uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertLe(int256,int256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertLe(uint256,uint256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertLeDecimal(int256,int256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertLeDecimal(uint256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertLeDecimal(int256,int256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertLeDecimal(uint256,uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertLt(int256,int256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertLt(uint256,uint256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertLt(int256,int256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertLt(uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertLtDecimal(uint256,uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertLtDecimal(int256,int256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertLtDecimal(uint256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertLtDecimal(int256,int256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertNotEq(bytes32[],bytes32[])": TypedContractMethod< + [left: BytesLike[], right: BytesLike[]], + [void], + "view" + >; + + "assertNotEq(int256[],int256[])": TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[]], + [void], + "view" + >; + + "assertNotEq(bool,bool,string)": TypedContractMethod< + [left: boolean, right: boolean, error: string], + [void], + "view" + >; + + "assertNotEq(bytes[],bytes[],string)": TypedContractMethod< + [left: BytesLike[], right: BytesLike[], error: string], + [void], + "view" + >; + + "assertNotEq(bool,bool)": TypedContractMethod< + [left: boolean, right: boolean], + [void], + "view" + >; + + "assertNotEq(bool[],bool[])": TypedContractMethod< + [left: boolean[], right: boolean[]], + [void], + "view" + >; + + "assertNotEq(bytes,bytes)": TypedContractMethod< + [left: BytesLike, right: BytesLike], + [void], + "view" + >; + + "assertNotEq(address[],address[])": TypedContractMethod< + [left: AddressLike[], right: AddressLike[]], + [void], + "view" + >; + + "assertNotEq(int256,int256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertNotEq(uint256[],uint256[])": TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[]], + [void], + "view" + >; + + "assertNotEq(bool[],bool[],string)": TypedContractMethod< + [left: boolean[], right: boolean[], error: string], + [void], + "view" + >; + + "assertNotEq(string,string)": TypedContractMethod< + [left: string, right: string], + [void], + "view" + >; + + "assertNotEq(address[],address[],string)": TypedContractMethod< + [left: AddressLike[], right: AddressLike[], error: string], + [void], + "view" + >; + + "assertNotEq(string,string,string)": TypedContractMethod< + [left: string, right: string, error: string], + [void], + "view" + >; + + "assertNotEq(address,address,string)": TypedContractMethod< + [left: AddressLike, right: AddressLike, error: string], + [void], + "view" + >; + + "assertNotEq(bytes32,bytes32)": TypedContractMethod< + [left: BytesLike, right: BytesLike], + [void], + "view" + >; + + "assertNotEq(bytes,bytes,string)": TypedContractMethod< + [left: BytesLike, right: BytesLike, error: string], + [void], + "view" + >; + + "assertNotEq(uint256,uint256,string)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + + "assertNotEq(uint256[],uint256[],string)": TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[], error: string], + [void], + "view" + >; + + "assertNotEq(address,address)": TypedContractMethod< + [left: AddressLike, right: AddressLike], + [void], + "view" + >; + + "assertNotEq(bytes32,bytes32,string)": TypedContractMethod< + [left: BytesLike, right: BytesLike, error: string], + [void], + "view" + >; + + "assertNotEq(string[],string[],string)": TypedContractMethod< + [left: string[], right: string[], error: string], + [void], + "view" + >; + + "assertNotEq(uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertNotEq(bytes32[],bytes32[],string)": TypedContractMethod< + [left: BytesLike[], right: BytesLike[], error: string], + [void], + "view" + >; + + "assertNotEq(string[],string[])": TypedContractMethod< + [left: string[], right: string[]], + [void], + "view" + >; + + "assertNotEq(int256[],int256[],string)": TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[], error: string], + [void], + "view" + >; + + "assertNotEq(bytes[],bytes[])": TypedContractMethod< + [left: BytesLike[], right: BytesLike[]], + [void], + "view" + >; + + "assertNotEq(int256,int256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + + "assertNotEqDecimal(int256,int256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertNotEqDecimal(int256,int256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertNotEqDecimal(uint256,uint256,uint256)": TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + + "assertNotEqDecimal(uint256,uint256,uint256,string)": TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + + "assertTrue(bool)": TypedContractMethod<[condition: boolean], [void], "view">; + + "assertTrue(bool,string)": TypedContractMethod< + [condition: boolean, error: string], + [void], + "view" + >; + + assume: TypedContractMethod<[condition: boolean], [void], "view">; + + "breakpoint(string)": TypedContractMethod< + [char: string], + [void], + "nonpayable" + >; + + "breakpoint(string,bool)": TypedContractMethod< + [char: string, value: boolean], + [void], + "nonpayable" + >; + + "broadcast()": TypedContractMethod<[], [void], "nonpayable">; + + "broadcast(address)": TypedContractMethod< + [signer: AddressLike], + [void], + "nonpayable" + >; + + "broadcast(uint256)": TypedContractMethod< + [privateKey: BigNumberish], + [void], + "nonpayable" + >; + + broadcastRawTransaction: TypedContractMethod< + [data: BytesLike], + [void], + "nonpayable" + >; + + closeFile: TypedContractMethod<[path: string], [void], "nonpayable">; + + "computeCreate2Address(bytes32,bytes32)": TypedContractMethod< + [salt: BytesLike, initCodeHash: BytesLike], + [string], + "view" + >; + + "computeCreate2Address(bytes32,bytes32,address)": TypedContractMethod< + [salt: BytesLike, initCodeHash: BytesLike, deployer: AddressLike], + [string], + "view" + >; + + computeCreateAddress: TypedContractMethod< + [deployer: AddressLike, nonce: BigNumberish], + [string], + "view" + >; + + copyFile: TypedContractMethod< + [from: string, to: string], + [bigint], + "nonpayable" + >; + + createDir: TypedContractMethod< + [path: string, recursive: boolean], + [void], + "nonpayable" + >; + + "createWallet(string)": TypedContractMethod< + [walletLabel: string], + [VmSafe.WalletStructOutput], + "nonpayable" + >; + + "createWallet(uint256)": TypedContractMethod< + [privateKey: BigNumberish], + [VmSafe.WalletStructOutput], + "nonpayable" + >; + + "createWallet(uint256,string)": TypedContractMethod< + [privateKey: BigNumberish, walletLabel: string], + [VmSafe.WalletStructOutput], + "nonpayable" + >; + + "deployCode(string,bytes)": TypedContractMethod< + [artifactPath: string, constructorArgs: BytesLike], + [string], + "nonpayable" + >; + + "deployCode(string)": TypedContractMethod< + [artifactPath: string], + [string], + "nonpayable" + >; + + "deriveKey(string,string,uint32,string)": TypedContractMethod< + [ + mnemonic: string, + derivationPath: string, + index: BigNumberish, + language: string + ], + [bigint], + "view" + >; + + "deriveKey(string,uint32,string)": TypedContractMethod< + [mnemonic: string, index: BigNumberish, language: string], + [bigint], + "view" + >; + + "deriveKey(string,uint32)": TypedContractMethod< + [mnemonic: string, index: BigNumberish], + [bigint], + "view" + >; + + "deriveKey(string,string,uint32)": TypedContractMethod< + [mnemonic: string, derivationPath: string, index: BigNumberish], + [bigint], + "view" + >; + + ensNamehash: TypedContractMethod<[name: string], [string], "view">; + + "envAddress(string)": TypedContractMethod<[name: string], [string], "view">; + + "envAddress(string,string)": TypedContractMethod< + [name: string, delim: string], + [string[]], + "view" + >; + + "envBool(string)": TypedContractMethod<[name: string], [boolean], "view">; + + "envBool(string,string)": TypedContractMethod< + [name: string, delim: string], + [boolean[]], + "view" + >; + + "envBytes(string)": TypedContractMethod<[name: string], [string], "view">; + + "envBytes(string,string)": TypedContractMethod< + [name: string, delim: string], + [string[]], + "view" + >; + + "envBytes32(string,string)": TypedContractMethod< + [name: string, delim: string], + [string[]], + "view" + >; + + "envBytes32(string)": TypedContractMethod<[name: string], [string], "view">; + + envExists: TypedContractMethod<[name: string], [boolean], "view">; + + "envInt(string,string)": TypedContractMethod< + [name: string, delim: string], + [bigint[]], + "view" + >; + + "envInt(string)": TypedContractMethod<[name: string], [bigint], "view">; + + "envOr(string,string,bytes32[])": TypedContractMethod< + [name: string, delim: string, defaultValue: BytesLike[]], + [string[]], + "view" + >; + + "envOr(string,string,int256[])": TypedContractMethod< + [name: string, delim: string, defaultValue: BigNumberish[]], + [bigint[]], + "view" + >; + + "envOr(string,bool)": TypedContractMethod< + [name: string, defaultValue: boolean], + [boolean], + "view" + >; + + "envOr(string,address)": TypedContractMethod< + [name: string, defaultValue: AddressLike], + [string], + "view" + >; + + "envOr(string,uint256)": TypedContractMethod< + [name: string, defaultValue: BigNumberish], + [bigint], + "view" + >; + + "envOr(string,string,bytes[])": TypedContractMethod< + [name: string, delim: string, defaultValue: BytesLike[]], + [string[]], + "view" + >; + + "envOr(string,string,uint256[])": TypedContractMethod< + [name: string, delim: string, defaultValue: BigNumberish[]], + [bigint[]], + "view" + >; + + "envOr(string,string,string[])": TypedContractMethod< + [name: string, delim: string, defaultValue: string[]], + [string[]], + "view" + >; + + "envOr(string,bytes)": TypedContractMethod< + [name: string, defaultValue: BytesLike], + [string], + "view" + >; + + "envOr(string,bytes32)": TypedContractMethod< + [name: string, defaultValue: BytesLike], + [string], + "view" + >; + + "envOr(string,int256)": TypedContractMethod< + [name: string, defaultValue: BigNumberish], + [bigint], + "view" + >; + + "envOr(string,string,address[])": TypedContractMethod< + [name: string, delim: string, defaultValue: AddressLike[]], + [string[]], + "view" + >; + + "envOr(string,string)": TypedContractMethod< + [name: string, defaultValue: string], + [string], + "view" + >; + + "envOr(string,string,bool[])": TypedContractMethod< + [name: string, delim: string, defaultValue: boolean[]], + [boolean[]], + "view" + >; + + "envString(string,string)": TypedContractMethod< + [name: string, delim: string], + [string[]], + "view" + >; + + "envString(string)": TypedContractMethod<[name: string], [string], "view">; + + "envUint(string)": TypedContractMethod<[name: string], [bigint], "view">; + + "envUint(string,string)": TypedContractMethod< + [name: string, delim: string], + [bigint[]], + "view" + >; + + eth_getLogs: TypedContractMethod< + [ + fromBlock: BigNumberish, + toBlock: BigNumberish, + target: AddressLike, + topics: BytesLike[] + ], + [VmSafe.EthGetLogsStructOutput[]], + "nonpayable" + >; + + exists: TypedContractMethod<[path: string], [boolean], "nonpayable">; + + ffi: TypedContractMethod<[commandInput: string[]], [string], "nonpayable">; + + fsMetadata: TypedContractMethod< + [path: string], + [VmSafe.FsMetadataStructOutput], + "view" + >; + + getBlobBaseFee: TypedContractMethod<[], [bigint], "view">; + + getBlockNumber: TypedContractMethod<[], [bigint], "view">; + + getBlockTimestamp: TypedContractMethod<[], [bigint], "view">; + + getCode: TypedContractMethod<[artifactPath: string], [string], "view">; + + getDeployedCode: TypedContractMethod< + [artifactPath: string], + [string], + "view" + >; + + getFoundryVersion: TypedContractMethod<[], [string], "view">; + + getLabel: TypedContractMethod<[account: AddressLike], [string], "view">; + + getMappingKeyAndParentOf: TypedContractMethod< + [target: AddressLike, elementSlot: BytesLike], + [ + [boolean, string, string] & { + found: boolean; + key: string; + parent: string; + } + ], + "nonpayable" + >; + + getMappingLength: TypedContractMethod< + [target: AddressLike, mappingSlot: BytesLike], + [bigint], + "nonpayable" + >; + + getMappingSlotAt: TypedContractMethod< + [target: AddressLike, mappingSlot: BytesLike, idx: BigNumberish], + [string], + "nonpayable" + >; + + "getNonce(address)": TypedContractMethod< + [account: AddressLike], + [bigint], + "view" + >; + + "getNonce((address,uint256,uint256,uint256))": TypedContractMethod< + [wallet: VmSafe.WalletStruct], + [bigint], + "nonpayable" + >; + + getRecordedLogs: TypedContractMethod< + [], + [VmSafe.LogStructOutput[]], + "nonpayable" + >; + + indexOf: TypedContractMethod<[input: string, key: string], [bigint], "view">; + + isContext: TypedContractMethod<[context: BigNumberish], [boolean], "view">; + + isDir: TypedContractMethod<[path: string], [boolean], "nonpayable">; + + isFile: TypedContractMethod<[path: string], [boolean], "nonpayable">; + + keyExists: TypedContractMethod< + [json: string, key: string], + [boolean], + "view" + >; + + keyExistsJson: TypedContractMethod< + [json: string, key: string], + [boolean], + "view" + >; + + keyExistsToml: TypedContractMethod< + [toml: string, key: string], + [boolean], + "view" + >; + + label: TypedContractMethod< + [account: AddressLike, newLabel: string], + [void], + "nonpayable" + >; + + lastCallGas: TypedContractMethod<[], [VmSafe.GasStructOutput], "view">; + + load: TypedContractMethod< + [target: AddressLike, slot: BytesLike], + [string], + "view" + >; + + parseAddress: TypedContractMethod< + [stringifiedValue: string], + [string], + "view" + >; + + parseBool: TypedContractMethod<[stringifiedValue: string], [boolean], "view">; + + parseBytes: TypedContractMethod<[stringifiedValue: string], [string], "view">; + + parseBytes32: TypedContractMethod< + [stringifiedValue: string], + [string], + "view" + >; + + parseInt: TypedContractMethod<[stringifiedValue: string], [bigint], "view">; + + "parseJson(string)": TypedContractMethod<[json: string], [string], "view">; + + "parseJson(string,string)": TypedContractMethod< + [json: string, key: string], + [string], + "view" + >; + + parseJsonAddress: TypedContractMethod< + [json: string, key: string], + [string], + "view" + >; + + parseJsonAddressArray: TypedContractMethod< + [json: string, key: string], + [string[]], + "view" + >; + + parseJsonBool: TypedContractMethod< + [json: string, key: string], + [boolean], + "view" + >; + + parseJsonBoolArray: TypedContractMethod< + [json: string, key: string], + [boolean[]], + "view" + >; + + parseJsonBytes: TypedContractMethod< + [json: string, key: string], + [string], + "view" + >; + + parseJsonBytes32: TypedContractMethod< + [json: string, key: string], + [string], + "view" + >; + + parseJsonBytes32Array: TypedContractMethod< + [json: string, key: string], + [string[]], + "view" + >; + + parseJsonBytesArray: TypedContractMethod< + [json: string, key: string], + [string[]], + "view" + >; + + parseJsonInt: TypedContractMethod< + [json: string, key: string], + [bigint], + "view" + >; + + parseJsonIntArray: TypedContractMethod< + [json: string, key: string], + [bigint[]], + "view" + >; + + parseJsonKeys: TypedContractMethod< + [json: string, key: string], + [string[]], + "view" + >; + + parseJsonString: TypedContractMethod< + [json: string, key: string], + [string], + "view" + >; + + parseJsonStringArray: TypedContractMethod< + [json: string, key: string], + [string[]], + "view" + >; + + "parseJsonType(string,string)": TypedContractMethod< + [json: string, typeDescription: string], + [string], + "view" + >; + + "parseJsonType(string,string,string)": TypedContractMethod< + [json: string, key: string, typeDescription: string], + [string], + "view" + >; + + parseJsonTypeArray: TypedContractMethod< + [json: string, key: string, typeDescription: string], + [string], + "view" + >; + + parseJsonUint: TypedContractMethod< + [json: string, key: string], + [bigint], + "view" + >; + + parseJsonUintArray: TypedContractMethod< + [json: string, key: string], + [bigint[]], + "view" + >; + + "parseToml(string,string)": TypedContractMethod< + [toml: string, key: string], + [string], + "view" + >; + + "parseToml(string)": TypedContractMethod<[toml: string], [string], "view">; + + parseTomlAddress: TypedContractMethod< + [toml: string, key: string], + [string], + "view" + >; + + parseTomlAddressArray: TypedContractMethod< + [toml: string, key: string], + [string[]], + "view" + >; + + parseTomlBool: TypedContractMethod< + [toml: string, key: string], + [boolean], + "view" + >; + + parseTomlBoolArray: TypedContractMethod< + [toml: string, key: string], + [boolean[]], + "view" + >; + + parseTomlBytes: TypedContractMethod< + [toml: string, key: string], + [string], + "view" + >; + + parseTomlBytes32: TypedContractMethod< + [toml: string, key: string], + [string], + "view" + >; + + parseTomlBytes32Array: TypedContractMethod< + [toml: string, key: string], + [string[]], + "view" + >; + + parseTomlBytesArray: TypedContractMethod< + [toml: string, key: string], + [string[]], + "view" + >; + + parseTomlInt: TypedContractMethod< + [toml: string, key: string], + [bigint], + "view" + >; + + parseTomlIntArray: TypedContractMethod< + [toml: string, key: string], + [bigint[]], + "view" + >; + + parseTomlKeys: TypedContractMethod< + [toml: string, key: string], + [string[]], + "view" + >; + + parseTomlString: TypedContractMethod< + [toml: string, key: string], + [string], + "view" + >; + + parseTomlStringArray: TypedContractMethod< + [toml: string, key: string], + [string[]], + "view" + >; + + parseTomlUint: TypedContractMethod< + [toml: string, key: string], + [bigint], + "view" + >; + + parseTomlUintArray: TypedContractMethod< + [toml: string, key: string], + [bigint[]], + "view" + >; + + parseUint: TypedContractMethod<[stringifiedValue: string], [bigint], "view">; + + pauseGasMetering: TypedContractMethod<[], [void], "nonpayable">; + + projectRoot: TypedContractMethod<[], [string], "view">; + + prompt: TypedContractMethod<[promptText: string], [string], "nonpayable">; + + promptAddress: TypedContractMethod< + [promptText: string], + [string], + "nonpayable" + >; + + promptSecret: TypedContractMethod< + [promptText: string], + [string], + "nonpayable" + >; + + promptSecretUint: TypedContractMethod< + [promptText: string], + [bigint], + "nonpayable" + >; + + promptUint: TypedContractMethod<[promptText: string], [bigint], "nonpayable">; + + randomAddress: TypedContractMethod<[], [string], "nonpayable">; + + "randomUint()": TypedContractMethod<[], [bigint], "nonpayable">; + + "randomUint(uint256,uint256)": TypedContractMethod< + [min: BigNumberish, max: BigNumberish], + [bigint], + "nonpayable" + >; + + "readDir(string,uint64)": TypedContractMethod< + [path: string, maxDepth: BigNumberish], + [VmSafe.DirEntryStructOutput[]], + "view" + >; + + "readDir(string,uint64,bool)": TypedContractMethod< + [path: string, maxDepth: BigNumberish, followLinks: boolean], + [VmSafe.DirEntryStructOutput[]], + "view" + >; + + "readDir(string)": TypedContractMethod< + [path: string], + [VmSafe.DirEntryStructOutput[]], + "view" + >; + + readFile: TypedContractMethod<[path: string], [string], "view">; + + readFileBinary: TypedContractMethod<[path: string], [string], "view">; + + readLine: TypedContractMethod<[path: string], [string], "view">; + + readLink: TypedContractMethod<[linkPath: string], [string], "view">; + + record: TypedContractMethod<[], [void], "nonpayable">; + + recordLogs: TypedContractMethod<[], [void], "nonpayable">; + + rememberKey: TypedContractMethod< + [privateKey: BigNumberish], + [string], + "nonpayable" + >; + + removeDir: TypedContractMethod< + [path: string, recursive: boolean], + [void], + "nonpayable" + >; + + removeFile: TypedContractMethod<[path: string], [void], "nonpayable">; + + replace: TypedContractMethod< + [input: string, from: string, to: string], + [string], + "view" + >; + + resumeGasMetering: TypedContractMethod<[], [void], "nonpayable">; + + "rpc(string,string,string)": TypedContractMethod< + [urlOrAlias: string, method: string, params: string], + [string], + "nonpayable" + >; + + "rpc(string,string)": TypedContractMethod< + [method: string, params: string], + [string], + "nonpayable" + >; + + rpcUrl: TypedContractMethod<[rpcAlias: string], [string], "view">; + + rpcUrlStructs: TypedContractMethod<[], [VmSafe.RpcStructOutput[]], "view">; + + rpcUrls: TypedContractMethod<[], [[string, string][]], "view">; + + "serializeAddress(string,string,address[])": TypedContractMethod< + [objectKey: string, valueKey: string, values: AddressLike[]], + [string], + "nonpayable" + >; + + "serializeAddress(string,string,address)": TypedContractMethod< + [objectKey: string, valueKey: string, value: AddressLike], + [string], + "nonpayable" + >; + + "serializeBool(string,string,bool[])": TypedContractMethod< + [objectKey: string, valueKey: string, values: boolean[]], + [string], + "nonpayable" + >; + + "serializeBool(string,string,bool)": TypedContractMethod< + [objectKey: string, valueKey: string, value: boolean], + [string], + "nonpayable" + >; + + "serializeBytes(string,string,bytes[])": TypedContractMethod< + [objectKey: string, valueKey: string, values: BytesLike[]], + [string], + "nonpayable" + >; + + "serializeBytes(string,string,bytes)": TypedContractMethod< + [objectKey: string, valueKey: string, value: BytesLike], + [string], + "nonpayable" + >; + + "serializeBytes32(string,string,bytes32[])": TypedContractMethod< + [objectKey: string, valueKey: string, values: BytesLike[]], + [string], + "nonpayable" + >; + + "serializeBytes32(string,string,bytes32)": TypedContractMethod< + [objectKey: string, valueKey: string, value: BytesLike], + [string], + "nonpayable" + >; + + "serializeInt(string,string,int256)": TypedContractMethod< + [objectKey: string, valueKey: string, value: BigNumberish], + [string], + "nonpayable" + >; + + "serializeInt(string,string,int256[])": TypedContractMethod< + [objectKey: string, valueKey: string, values: BigNumberish[]], + [string], + "nonpayable" + >; + + serializeJson: TypedContractMethod< + [objectKey: string, value: string], + [string], + "nonpayable" + >; + + "serializeJsonType(string,bytes)": TypedContractMethod< + [typeDescription: string, value: BytesLike], + [string], + "view" + >; + + "serializeJsonType(string,string,string,bytes)": TypedContractMethod< + [ + objectKey: string, + valueKey: string, + typeDescription: string, + value: BytesLike + ], + [string], + "nonpayable" + >; + + "serializeString(string,string,string[])": TypedContractMethod< + [objectKey: string, valueKey: string, values: string[]], + [string], + "nonpayable" + >; + + "serializeString(string,string,string)": TypedContractMethod< + [objectKey: string, valueKey: string, value: string], + [string], + "nonpayable" + >; + + "serializeUint(string,string,uint256)": TypedContractMethod< + [objectKey: string, valueKey: string, value: BigNumberish], + [string], + "nonpayable" + >; + + "serializeUint(string,string,uint256[])": TypedContractMethod< + [objectKey: string, valueKey: string, values: BigNumberish[]], + [string], + "nonpayable" + >; + + serializeUintToHex: TypedContractMethod< + [objectKey: string, valueKey: string, value: BigNumberish], + [string], + "nonpayable" + >; + + setEnv: TypedContractMethod< + [name: string, value: string], + [void], + "nonpayable" + >; + + "sign(bytes32)": TypedContractMethod< + [digest: BytesLike], + [[bigint, string, string] & { v: bigint; r: string; s: string }], + "view" + >; + + "sign(address,bytes32)": TypedContractMethod< + [signer: AddressLike, digest: BytesLike], + [[bigint, string, string] & { v: bigint; r: string; s: string }], + "view" + >; + + "sign((address,uint256,uint256,uint256),bytes32)": TypedContractMethod< + [wallet: VmSafe.WalletStruct, digest: BytesLike], + [[bigint, string, string] & { v: bigint; r: string; s: string }], + "nonpayable" + >; + + "sign(uint256,bytes32)": TypedContractMethod< + [privateKey: BigNumberish, digest: BytesLike], + [[bigint, string, string] & { v: bigint; r: string; s: string }], + "view" + >; + + "signCompact((address,uint256,uint256,uint256),bytes32)": TypedContractMethod< + [wallet: VmSafe.WalletStruct, digest: BytesLike], + [[string, string] & { r: string; vs: string }], + "nonpayable" + >; + + "signCompact(address,bytes32)": TypedContractMethod< + [signer: AddressLike, digest: BytesLike], + [[string, string] & { r: string; vs: string }], + "view" + >; + + "signCompact(bytes32)": TypedContractMethod< + [digest: BytesLike], + [[string, string] & { r: string; vs: string }], + "view" + >; + + "signCompact(uint256,bytes32)": TypedContractMethod< + [privateKey: BigNumberish, digest: BytesLike], + [[string, string] & { r: string; vs: string }], + "view" + >; + + signP256: TypedContractMethod< + [privateKey: BigNumberish, digest: BytesLike], + [[string, string] & { r: string; s: string }], + "view" + >; + + sleep: TypedContractMethod<[duration: BigNumberish], [void], "nonpayable">; + + split: TypedContractMethod< + [input: string, delimiter: string], + [string[]], + "view" + >; + + "startBroadcast()": TypedContractMethod<[], [void], "nonpayable">; + + "startBroadcast(address)": TypedContractMethod< + [signer: AddressLike], + [void], + "nonpayable" + >; + + "startBroadcast(uint256)": TypedContractMethod< + [privateKey: BigNumberish], + [void], + "nonpayable" + >; + + startMappingRecording: TypedContractMethod<[], [void], "nonpayable">; + + startStateDiffRecording: TypedContractMethod<[], [void], "nonpayable">; + + stopAndReturnStateDiff: TypedContractMethod< + [], + [VmSafe.AccountAccessStructOutput[]], + "nonpayable" + >; + + stopBroadcast: TypedContractMethod<[], [void], "nonpayable">; + + stopMappingRecording: TypedContractMethod<[], [void], "nonpayable">; + + "toBase64(string)": TypedContractMethod<[data: string], [string], "view">; + + "toBase64(bytes)": TypedContractMethod<[data: BytesLike], [string], "view">; + + "toBase64URL(string)": TypedContractMethod<[data: string], [string], "view">; + + "toBase64URL(bytes)": TypedContractMethod< + [data: BytesLike], + [string], + "view" + >; + + toLowercase: TypedContractMethod<[input: string], [string], "view">; + + "toString(address)": TypedContractMethod< + [value: AddressLike], + [string], + "view" + >; + + "toString(uint256)": TypedContractMethod< + [value: BigNumberish], + [string], + "view" + >; + + "toString(bytes)": TypedContractMethod<[value: BytesLike], [string], "view">; + + "toString(bool)": TypedContractMethod<[value: boolean], [string], "view">; + + "toString(int256)": TypedContractMethod< + [value: BigNumberish], + [string], + "view" + >; + + "toString(bytes32)": TypedContractMethod< + [value: BytesLike], + [string], + "view" + >; + + toUppercase: TypedContractMethod<[input: string], [string], "view">; + + trim: TypedContractMethod<[input: string], [string], "view">; + + tryFfi: TypedContractMethod< + [commandInput: string[]], + [VmSafe.FfiResultStructOutput], + "nonpayable" + >; + + unixTime: TypedContractMethod<[], [bigint], "nonpayable">; + + writeFile: TypedContractMethod< + [path: string, data: string], + [void], + "nonpayable" + >; + + writeFileBinary: TypedContractMethod< + [path: string, data: BytesLike], + [void], + "nonpayable" + >; + + "writeJson(string,string,string)": TypedContractMethod< + [json: string, path: string, valueKey: string], + [void], + "nonpayable" + >; + + "writeJson(string,string)": TypedContractMethod< + [json: string, path: string], + [void], + "nonpayable" + >; + + writeLine: TypedContractMethod< + [path: string, data: string], + [void], + "nonpayable" + >; + + "writeToml(string,string,string)": TypedContractMethod< + [json: string, path: string, valueKey: string], + [void], + "nonpayable" + >; + + "writeToml(string,string)": TypedContractMethod< + [json: string, path: string], + [void], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "accesses" + ): TypedContractMethod< + [target: AddressLike], + [[string[], string[]] & { readSlots: string[]; writeSlots: string[] }], + "nonpayable" + >; + getFunction( + nameOrSignature: "addr" + ): TypedContractMethod<[privateKey: BigNumberish], [string], "view">; + getFunction( + nameOrSignature: "assertApproxEqAbs(uint256,uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, maxDelta: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqAbs(int256,int256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, maxDelta: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqAbs(int256,int256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqAbs(uint256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + decimals: BigNumberish + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqAbsDecimal(int256,int256,uint256,uint256)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + decimals: BigNumberish + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxDelta: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqRel(uint256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqRel(uint256,uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, maxPercentDelta: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqRel(int256,int256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqRel(int256,int256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, maxPercentDelta: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + decimals: BigNumberish + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqRelDecimal(int256,int256,uint256,uint256)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + decimals: BigNumberish + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + maxPercentDelta: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(bytes32[],bytes32[])" + ): TypedContractMethod< + [left: BytesLike[], right: BytesLike[]], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(int256[],int256[],string)" + ): TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(address,address,string)" + ): TypedContractMethod< + [left: AddressLike, right: AddressLike, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(string,string,string)" + ): TypedContractMethod< + [left: string, right: string, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(address[],address[])" + ): TypedContractMethod< + [left: AddressLike[], right: AddressLike[]], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(address[],address[],string)" + ): TypedContractMethod< + [left: AddressLike[], right: AddressLike[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(bool,bool,string)" + ): TypedContractMethod< + [left: boolean, right: boolean, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(address,address)" + ): TypedContractMethod< + [left: AddressLike, right: AddressLike], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(uint256[],uint256[],string)" + ): TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(bool[],bool[])" + ): TypedContractMethod<[left: boolean[], right: boolean[]], [void], "view">; + getFunction( + nameOrSignature: "assertEq(int256[],int256[])" + ): TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[]], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(int256,int256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(bytes32,bytes32)" + ): TypedContractMethod<[left: BytesLike, right: BytesLike], [void], "view">; + getFunction( + nameOrSignature: "assertEq(uint256,uint256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(uint256[],uint256[])" + ): TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[]], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(bytes,bytes)" + ): TypedContractMethod<[left: BytesLike, right: BytesLike], [void], "view">; + getFunction( + nameOrSignature: "assertEq(uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(bytes32,bytes32,string)" + ): TypedContractMethod< + [left: BytesLike, right: BytesLike, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(string[],string[])" + ): TypedContractMethod<[left: string[], right: string[]], [void], "view">; + getFunction( + nameOrSignature: "assertEq(bytes32[],bytes32[],string)" + ): TypedContractMethod< + [left: BytesLike[], right: BytesLike[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(bytes,bytes,string)" + ): TypedContractMethod< + [left: BytesLike, right: BytesLike, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(bool[],bool[],string)" + ): TypedContractMethod< + [left: boolean[], right: boolean[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(bytes[],bytes[])" + ): TypedContractMethod< + [left: BytesLike[], right: BytesLike[]], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(string[],string[],string)" + ): TypedContractMethod< + [left: string[], right: string[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(string,string)" + ): TypedContractMethod<[left: string, right: string], [void], "view">; + getFunction( + nameOrSignature: "assertEq(bytes[],bytes[],string)" + ): TypedContractMethod< + [left: BytesLike[], right: BytesLike[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEq(bool,bool)" + ): TypedContractMethod<[left: boolean, right: boolean], [void], "view">; + getFunction( + nameOrSignature: "assertEq(int256,int256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEqDecimal(uint256,uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEqDecimal(int256,int256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEqDecimal(int256,int256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertEqDecimal(uint256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertFalse(bool,string)" + ): TypedContractMethod<[condition: boolean, error: string], [void], "view">; + getFunction( + nameOrSignature: "assertFalse(bool)" + ): TypedContractMethod<[condition: boolean], [void], "view">; + getFunction( + nameOrSignature: "assertGe(int256,int256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGe(int256,int256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGe(uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGe(uint256,uint256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGeDecimal(uint256,uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGeDecimal(int256,int256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGeDecimal(uint256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGeDecimal(int256,int256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGt(int256,int256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGt(uint256,uint256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGt(uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGt(int256,int256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGtDecimal(int256,int256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGtDecimal(uint256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGtDecimal(int256,int256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertGtDecimal(uint256,uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLe(int256,int256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLe(uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLe(int256,int256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLe(uint256,uint256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLeDecimal(int256,int256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLeDecimal(uint256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLeDecimal(int256,int256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLeDecimal(uint256,uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLt(int256,int256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLt(uint256,uint256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLt(int256,int256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLt(uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLtDecimal(uint256,uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLtDecimal(int256,int256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLtDecimal(uint256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertLtDecimal(int256,int256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(bytes32[],bytes32[])" + ): TypedContractMethod< + [left: BytesLike[], right: BytesLike[]], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(int256[],int256[])" + ): TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[]], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(bool,bool,string)" + ): TypedContractMethod< + [left: boolean, right: boolean, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(bytes[],bytes[],string)" + ): TypedContractMethod< + [left: BytesLike[], right: BytesLike[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(bool,bool)" + ): TypedContractMethod<[left: boolean, right: boolean], [void], "view">; + getFunction( + nameOrSignature: "assertNotEq(bool[],bool[])" + ): TypedContractMethod<[left: boolean[], right: boolean[]], [void], "view">; + getFunction( + nameOrSignature: "assertNotEq(bytes,bytes)" + ): TypedContractMethod<[left: BytesLike, right: BytesLike], [void], "view">; + getFunction( + nameOrSignature: "assertNotEq(address[],address[])" + ): TypedContractMethod< + [left: AddressLike[], right: AddressLike[]], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(int256,int256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(uint256[],uint256[])" + ): TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[]], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(bool[],bool[],string)" + ): TypedContractMethod< + [left: boolean[], right: boolean[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(string,string)" + ): TypedContractMethod<[left: string, right: string], [void], "view">; + getFunction( + nameOrSignature: "assertNotEq(address[],address[],string)" + ): TypedContractMethod< + [left: AddressLike[], right: AddressLike[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(string,string,string)" + ): TypedContractMethod< + [left: string, right: string, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(address,address,string)" + ): TypedContractMethod< + [left: AddressLike, right: AddressLike, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(bytes32,bytes32)" + ): TypedContractMethod<[left: BytesLike, right: BytesLike], [void], "view">; + getFunction( + nameOrSignature: "assertNotEq(bytes,bytes,string)" + ): TypedContractMethod< + [left: BytesLike, right: BytesLike, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(uint256,uint256,string)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(uint256[],uint256[],string)" + ): TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(address,address)" + ): TypedContractMethod< + [left: AddressLike, right: AddressLike], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(bytes32,bytes32,string)" + ): TypedContractMethod< + [left: BytesLike, right: BytesLike, error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(string[],string[],string)" + ): TypedContractMethod< + [left: string[], right: string[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(bytes32[],bytes32[],string)" + ): TypedContractMethod< + [left: BytesLike[], right: BytesLike[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(string[],string[])" + ): TypedContractMethod<[left: string[], right: string[]], [void], "view">; + getFunction( + nameOrSignature: "assertNotEq(int256[],int256[],string)" + ): TypedContractMethod< + [left: BigNumberish[], right: BigNumberish[], error: string], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(bytes[],bytes[])" + ): TypedContractMethod< + [left: BytesLike[], right: BytesLike[]], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEq(int256,int256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEqDecimal(int256,int256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEqDecimal(int256,int256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEqDecimal(uint256,uint256,uint256)" + ): TypedContractMethod< + [left: BigNumberish, right: BigNumberish, decimals: BigNumberish], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertNotEqDecimal(uint256,uint256,uint256,string)" + ): TypedContractMethod< + [ + left: BigNumberish, + right: BigNumberish, + decimals: BigNumberish, + error: string + ], + [void], + "view" + >; + getFunction( + nameOrSignature: "assertTrue(bool)" + ): TypedContractMethod<[condition: boolean], [void], "view">; + getFunction( + nameOrSignature: "assertTrue(bool,string)" + ): TypedContractMethod<[condition: boolean, error: string], [void], "view">; + getFunction( + nameOrSignature: "assume" + ): TypedContractMethod<[condition: boolean], [void], "view">; + getFunction( + nameOrSignature: "breakpoint(string)" + ): TypedContractMethod<[char: string], [void], "nonpayable">; + getFunction( + nameOrSignature: "breakpoint(string,bool)" + ): TypedContractMethod<[char: string, value: boolean], [void], "nonpayable">; + getFunction( + nameOrSignature: "broadcast()" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "broadcast(address)" + ): TypedContractMethod<[signer: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "broadcast(uint256)" + ): TypedContractMethod<[privateKey: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "broadcastRawTransaction" + ): TypedContractMethod<[data: BytesLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "closeFile" + ): TypedContractMethod<[path: string], [void], "nonpayable">; + getFunction( + nameOrSignature: "computeCreate2Address(bytes32,bytes32)" + ): TypedContractMethod< + [salt: BytesLike, initCodeHash: BytesLike], + [string], + "view" + >; + getFunction( + nameOrSignature: "computeCreate2Address(bytes32,bytes32,address)" + ): TypedContractMethod< + [salt: BytesLike, initCodeHash: BytesLike, deployer: AddressLike], + [string], + "view" + >; + getFunction( + nameOrSignature: "computeCreateAddress" + ): TypedContractMethod< + [deployer: AddressLike, nonce: BigNumberish], + [string], + "view" + >; + getFunction( + nameOrSignature: "copyFile" + ): TypedContractMethod<[from: string, to: string], [bigint], "nonpayable">; + getFunction( + nameOrSignature: "createDir" + ): TypedContractMethod< + [path: string, recursive: boolean], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "createWallet(string)" + ): TypedContractMethod< + [walletLabel: string], + [VmSafe.WalletStructOutput], + "nonpayable" + >; + getFunction( + nameOrSignature: "createWallet(uint256)" + ): TypedContractMethod< + [privateKey: BigNumberish], + [VmSafe.WalletStructOutput], + "nonpayable" + >; + getFunction( + nameOrSignature: "createWallet(uint256,string)" + ): TypedContractMethod< + [privateKey: BigNumberish, walletLabel: string], + [VmSafe.WalletStructOutput], + "nonpayable" + >; + getFunction( + nameOrSignature: "deployCode(string,bytes)" + ): TypedContractMethod< + [artifactPath: string, constructorArgs: BytesLike], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "deployCode(string)" + ): TypedContractMethod<[artifactPath: string], [string], "nonpayable">; + getFunction( + nameOrSignature: "deriveKey(string,string,uint32,string)" + ): TypedContractMethod< + [ + mnemonic: string, + derivationPath: string, + index: BigNumberish, + language: string + ], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "deriveKey(string,uint32,string)" + ): TypedContractMethod< + [mnemonic: string, index: BigNumberish, language: string], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "deriveKey(string,uint32)" + ): TypedContractMethod< + [mnemonic: string, index: BigNumberish], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "deriveKey(string,string,uint32)" + ): TypedContractMethod< + [mnemonic: string, derivationPath: string, index: BigNumberish], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "ensNamehash" + ): TypedContractMethod<[name: string], [string], "view">; + getFunction( + nameOrSignature: "envAddress(string)" + ): TypedContractMethod<[name: string], [string], "view">; + getFunction( + nameOrSignature: "envAddress(string,string)" + ): TypedContractMethod<[name: string, delim: string], [string[]], "view">; + getFunction( + nameOrSignature: "envBool(string)" + ): TypedContractMethod<[name: string], [boolean], "view">; + getFunction( + nameOrSignature: "envBool(string,string)" + ): TypedContractMethod<[name: string, delim: string], [boolean[]], "view">; + getFunction( + nameOrSignature: "envBytes(string)" + ): TypedContractMethod<[name: string], [string], "view">; + getFunction( + nameOrSignature: "envBytes(string,string)" + ): TypedContractMethod<[name: string, delim: string], [string[]], "view">; + getFunction( + nameOrSignature: "envBytes32(string,string)" + ): TypedContractMethod<[name: string, delim: string], [string[]], "view">; + getFunction( + nameOrSignature: "envBytes32(string)" + ): TypedContractMethod<[name: string], [string], "view">; + getFunction( + nameOrSignature: "envExists" + ): TypedContractMethod<[name: string], [boolean], "view">; + getFunction( + nameOrSignature: "envInt(string,string)" + ): TypedContractMethod<[name: string, delim: string], [bigint[]], "view">; + getFunction( + nameOrSignature: "envInt(string)" + ): TypedContractMethod<[name: string], [bigint], "view">; + getFunction( + nameOrSignature: "envOr(string,string,bytes32[])" + ): TypedContractMethod< + [name: string, delim: string, defaultValue: BytesLike[]], + [string[]], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,string,int256[])" + ): TypedContractMethod< + [name: string, delim: string, defaultValue: BigNumberish[]], + [bigint[]], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,bool)" + ): TypedContractMethod< + [name: string, defaultValue: boolean], + [boolean], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,address)" + ): TypedContractMethod< + [name: string, defaultValue: AddressLike], + [string], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,uint256)" + ): TypedContractMethod< + [name: string, defaultValue: BigNumberish], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,string,bytes[])" + ): TypedContractMethod< + [name: string, delim: string, defaultValue: BytesLike[]], + [string[]], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,string,uint256[])" + ): TypedContractMethod< + [name: string, delim: string, defaultValue: BigNumberish[]], + [bigint[]], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,string,string[])" + ): TypedContractMethod< + [name: string, delim: string, defaultValue: string[]], + [string[]], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,bytes)" + ): TypedContractMethod< + [name: string, defaultValue: BytesLike], + [string], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,bytes32)" + ): TypedContractMethod< + [name: string, defaultValue: BytesLike], + [string], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,int256)" + ): TypedContractMethod< + [name: string, defaultValue: BigNumberish], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,string,address[])" + ): TypedContractMethod< + [name: string, delim: string, defaultValue: AddressLike[]], + [string[]], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,string)" + ): TypedContractMethod< + [name: string, defaultValue: string], + [string], + "view" + >; + getFunction( + nameOrSignature: "envOr(string,string,bool[])" + ): TypedContractMethod< + [name: string, delim: string, defaultValue: boolean[]], + [boolean[]], + "view" + >; + getFunction( + nameOrSignature: "envString(string,string)" + ): TypedContractMethod<[name: string, delim: string], [string[]], "view">; + getFunction( + nameOrSignature: "envString(string)" + ): TypedContractMethod<[name: string], [string], "view">; + getFunction( + nameOrSignature: "envUint(string)" + ): TypedContractMethod<[name: string], [bigint], "view">; + getFunction( + nameOrSignature: "envUint(string,string)" + ): TypedContractMethod<[name: string, delim: string], [bigint[]], "view">; + getFunction( + nameOrSignature: "eth_getLogs" + ): TypedContractMethod< + [ + fromBlock: BigNumberish, + toBlock: BigNumberish, + target: AddressLike, + topics: BytesLike[] + ], + [VmSafe.EthGetLogsStructOutput[]], + "nonpayable" + >; + getFunction( + nameOrSignature: "exists" + ): TypedContractMethod<[path: string], [boolean], "nonpayable">; + getFunction( + nameOrSignature: "ffi" + ): TypedContractMethod<[commandInput: string[]], [string], "nonpayable">; + getFunction( + nameOrSignature: "fsMetadata" + ): TypedContractMethod< + [path: string], + [VmSafe.FsMetadataStructOutput], + "view" + >; + getFunction( + nameOrSignature: "getBlobBaseFee" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "getBlockNumber" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "getBlockTimestamp" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "getCode" + ): TypedContractMethod<[artifactPath: string], [string], "view">; + getFunction( + nameOrSignature: "getDeployedCode" + ): TypedContractMethod<[artifactPath: string], [string], "view">; + getFunction( + nameOrSignature: "getFoundryVersion" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "getLabel" + ): TypedContractMethod<[account: AddressLike], [string], "view">; + getFunction( + nameOrSignature: "getMappingKeyAndParentOf" + ): TypedContractMethod< + [target: AddressLike, elementSlot: BytesLike], + [ + [boolean, string, string] & { + found: boolean; + key: string; + parent: string; + } + ], + "nonpayable" + >; + getFunction( + nameOrSignature: "getMappingLength" + ): TypedContractMethod< + [target: AddressLike, mappingSlot: BytesLike], + [bigint], + "nonpayable" + >; + getFunction( + nameOrSignature: "getMappingSlotAt" + ): TypedContractMethod< + [target: AddressLike, mappingSlot: BytesLike, idx: BigNumberish], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "getNonce(address)" + ): TypedContractMethod<[account: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "getNonce((address,uint256,uint256,uint256))" + ): TypedContractMethod<[wallet: VmSafe.WalletStruct], [bigint], "nonpayable">; + getFunction( + nameOrSignature: "getRecordedLogs" + ): TypedContractMethod<[], [VmSafe.LogStructOutput[]], "nonpayable">; + getFunction( + nameOrSignature: "indexOf" + ): TypedContractMethod<[input: string, key: string], [bigint], "view">; + getFunction( + nameOrSignature: "isContext" + ): TypedContractMethod<[context: BigNumberish], [boolean], "view">; + getFunction( + nameOrSignature: "isDir" + ): TypedContractMethod<[path: string], [boolean], "nonpayable">; + getFunction( + nameOrSignature: "isFile" + ): TypedContractMethod<[path: string], [boolean], "nonpayable">; + getFunction( + nameOrSignature: "keyExists" + ): TypedContractMethod<[json: string, key: string], [boolean], "view">; + getFunction( + nameOrSignature: "keyExistsJson" + ): TypedContractMethod<[json: string, key: string], [boolean], "view">; + getFunction( + nameOrSignature: "keyExistsToml" + ): TypedContractMethod<[toml: string, key: string], [boolean], "view">; + getFunction( + nameOrSignature: "label" + ): TypedContractMethod< + [account: AddressLike, newLabel: string], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "lastCallGas" + ): TypedContractMethod<[], [VmSafe.GasStructOutput], "view">; + getFunction( + nameOrSignature: "load" + ): TypedContractMethod< + [target: AddressLike, slot: BytesLike], + [string], + "view" + >; + getFunction( + nameOrSignature: "parseAddress" + ): TypedContractMethod<[stringifiedValue: string], [string], "view">; + getFunction( + nameOrSignature: "parseBool" + ): TypedContractMethod<[stringifiedValue: string], [boolean], "view">; + getFunction( + nameOrSignature: "parseBytes" + ): TypedContractMethod<[stringifiedValue: string], [string], "view">; + getFunction( + nameOrSignature: "parseBytes32" + ): TypedContractMethod<[stringifiedValue: string], [string], "view">; + getFunction( + nameOrSignature: "parseInt" + ): TypedContractMethod<[stringifiedValue: string], [bigint], "view">; + getFunction( + nameOrSignature: "parseJson(string)" + ): TypedContractMethod<[json: string], [string], "view">; + getFunction( + nameOrSignature: "parseJson(string,string)" + ): TypedContractMethod<[json: string, key: string], [string], "view">; + getFunction( + nameOrSignature: "parseJsonAddress" + ): TypedContractMethod<[json: string, key: string], [string], "view">; + getFunction( + nameOrSignature: "parseJsonAddressArray" + ): TypedContractMethod<[json: string, key: string], [string[]], "view">; + getFunction( + nameOrSignature: "parseJsonBool" + ): TypedContractMethod<[json: string, key: string], [boolean], "view">; + getFunction( + nameOrSignature: "parseJsonBoolArray" + ): TypedContractMethod<[json: string, key: string], [boolean[]], "view">; + getFunction( + nameOrSignature: "parseJsonBytes" + ): TypedContractMethod<[json: string, key: string], [string], "view">; + getFunction( + nameOrSignature: "parseJsonBytes32" + ): TypedContractMethod<[json: string, key: string], [string], "view">; + getFunction( + nameOrSignature: "parseJsonBytes32Array" + ): TypedContractMethod<[json: string, key: string], [string[]], "view">; + getFunction( + nameOrSignature: "parseJsonBytesArray" + ): TypedContractMethod<[json: string, key: string], [string[]], "view">; + getFunction( + nameOrSignature: "parseJsonInt" + ): TypedContractMethod<[json: string, key: string], [bigint], "view">; + getFunction( + nameOrSignature: "parseJsonIntArray" + ): TypedContractMethod<[json: string, key: string], [bigint[]], "view">; + getFunction( + nameOrSignature: "parseJsonKeys" + ): TypedContractMethod<[json: string, key: string], [string[]], "view">; + getFunction( + nameOrSignature: "parseJsonString" + ): TypedContractMethod<[json: string, key: string], [string], "view">; + getFunction( + nameOrSignature: "parseJsonStringArray" + ): TypedContractMethod<[json: string, key: string], [string[]], "view">; + getFunction( + nameOrSignature: "parseJsonType(string,string)" + ): TypedContractMethod< + [json: string, typeDescription: string], + [string], + "view" + >; + getFunction( + nameOrSignature: "parseJsonType(string,string,string)" + ): TypedContractMethod< + [json: string, key: string, typeDescription: string], + [string], + "view" + >; + getFunction( + nameOrSignature: "parseJsonTypeArray" + ): TypedContractMethod< + [json: string, key: string, typeDescription: string], + [string], + "view" + >; + getFunction( + nameOrSignature: "parseJsonUint" + ): TypedContractMethod<[json: string, key: string], [bigint], "view">; + getFunction( + nameOrSignature: "parseJsonUintArray" + ): TypedContractMethod<[json: string, key: string], [bigint[]], "view">; + getFunction( + nameOrSignature: "parseToml(string,string)" + ): TypedContractMethod<[toml: string, key: string], [string], "view">; + getFunction( + nameOrSignature: "parseToml(string)" + ): TypedContractMethod<[toml: string], [string], "view">; + getFunction( + nameOrSignature: "parseTomlAddress" + ): TypedContractMethod<[toml: string, key: string], [string], "view">; + getFunction( + nameOrSignature: "parseTomlAddressArray" + ): TypedContractMethod<[toml: string, key: string], [string[]], "view">; + getFunction( + nameOrSignature: "parseTomlBool" + ): TypedContractMethod<[toml: string, key: string], [boolean], "view">; + getFunction( + nameOrSignature: "parseTomlBoolArray" + ): TypedContractMethod<[toml: string, key: string], [boolean[]], "view">; + getFunction( + nameOrSignature: "parseTomlBytes" + ): TypedContractMethod<[toml: string, key: string], [string], "view">; + getFunction( + nameOrSignature: "parseTomlBytes32" + ): TypedContractMethod<[toml: string, key: string], [string], "view">; + getFunction( + nameOrSignature: "parseTomlBytes32Array" + ): TypedContractMethod<[toml: string, key: string], [string[]], "view">; + getFunction( + nameOrSignature: "parseTomlBytesArray" + ): TypedContractMethod<[toml: string, key: string], [string[]], "view">; + getFunction( + nameOrSignature: "parseTomlInt" + ): TypedContractMethod<[toml: string, key: string], [bigint], "view">; + getFunction( + nameOrSignature: "parseTomlIntArray" + ): TypedContractMethod<[toml: string, key: string], [bigint[]], "view">; + getFunction( + nameOrSignature: "parseTomlKeys" + ): TypedContractMethod<[toml: string, key: string], [string[]], "view">; + getFunction( + nameOrSignature: "parseTomlString" + ): TypedContractMethod<[toml: string, key: string], [string], "view">; + getFunction( + nameOrSignature: "parseTomlStringArray" + ): TypedContractMethod<[toml: string, key: string], [string[]], "view">; + getFunction( + nameOrSignature: "parseTomlUint" + ): TypedContractMethod<[toml: string, key: string], [bigint], "view">; + getFunction( + nameOrSignature: "parseTomlUintArray" + ): TypedContractMethod<[toml: string, key: string], [bigint[]], "view">; + getFunction( + nameOrSignature: "parseUint" + ): TypedContractMethod<[stringifiedValue: string], [bigint], "view">; + getFunction( + nameOrSignature: "pauseGasMetering" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "projectRoot" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "prompt" + ): TypedContractMethod<[promptText: string], [string], "nonpayable">; + getFunction( + nameOrSignature: "promptAddress" + ): TypedContractMethod<[promptText: string], [string], "nonpayable">; + getFunction( + nameOrSignature: "promptSecret" + ): TypedContractMethod<[promptText: string], [string], "nonpayable">; + getFunction( + nameOrSignature: "promptSecretUint" + ): TypedContractMethod<[promptText: string], [bigint], "nonpayable">; + getFunction( + nameOrSignature: "promptUint" + ): TypedContractMethod<[promptText: string], [bigint], "nonpayable">; + getFunction( + nameOrSignature: "randomAddress" + ): TypedContractMethod<[], [string], "nonpayable">; + getFunction( + nameOrSignature: "randomUint()" + ): TypedContractMethod<[], [bigint], "nonpayable">; + getFunction( + nameOrSignature: "randomUint(uint256,uint256)" + ): TypedContractMethod< + [min: BigNumberish, max: BigNumberish], + [bigint], + "nonpayable" + >; + getFunction( + nameOrSignature: "readDir(string,uint64)" + ): TypedContractMethod< + [path: string, maxDepth: BigNumberish], + [VmSafe.DirEntryStructOutput[]], + "view" + >; + getFunction( + nameOrSignature: "readDir(string,uint64,bool)" + ): TypedContractMethod< + [path: string, maxDepth: BigNumberish, followLinks: boolean], + [VmSafe.DirEntryStructOutput[]], + "view" + >; + getFunction( + nameOrSignature: "readDir(string)" + ): TypedContractMethod< + [path: string], + [VmSafe.DirEntryStructOutput[]], + "view" + >; + getFunction( + nameOrSignature: "readFile" + ): TypedContractMethod<[path: string], [string], "view">; + getFunction( + nameOrSignature: "readFileBinary" + ): TypedContractMethod<[path: string], [string], "view">; + getFunction( + nameOrSignature: "readLine" + ): TypedContractMethod<[path: string], [string], "view">; + getFunction( + nameOrSignature: "readLink" + ): TypedContractMethod<[linkPath: string], [string], "view">; + getFunction( + nameOrSignature: "record" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "recordLogs" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "rememberKey" + ): TypedContractMethod<[privateKey: BigNumberish], [string], "nonpayable">; + getFunction( + nameOrSignature: "removeDir" + ): TypedContractMethod< + [path: string, recursive: boolean], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "removeFile" + ): TypedContractMethod<[path: string], [void], "nonpayable">; + getFunction( + nameOrSignature: "replace" + ): TypedContractMethod< + [input: string, from: string, to: string], + [string], + "view" + >; + getFunction( + nameOrSignature: "resumeGasMetering" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "rpc(string,string,string)" + ): TypedContractMethod< + [urlOrAlias: string, method: string, params: string], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "rpc(string,string)" + ): TypedContractMethod< + [method: string, params: string], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "rpcUrl" + ): TypedContractMethod<[rpcAlias: string], [string], "view">; + getFunction( + nameOrSignature: "rpcUrlStructs" + ): TypedContractMethod<[], [VmSafe.RpcStructOutput[]], "view">; + getFunction( + nameOrSignature: "rpcUrls" + ): TypedContractMethod<[], [[string, string][]], "view">; + getFunction( + nameOrSignature: "serializeAddress(string,string,address[])" + ): TypedContractMethod< + [objectKey: string, valueKey: string, values: AddressLike[]], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeAddress(string,string,address)" + ): TypedContractMethod< + [objectKey: string, valueKey: string, value: AddressLike], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeBool(string,string,bool[])" + ): TypedContractMethod< + [objectKey: string, valueKey: string, values: boolean[]], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeBool(string,string,bool)" + ): TypedContractMethod< + [objectKey: string, valueKey: string, value: boolean], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeBytes(string,string,bytes[])" + ): TypedContractMethod< + [objectKey: string, valueKey: string, values: BytesLike[]], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeBytes(string,string,bytes)" + ): TypedContractMethod< + [objectKey: string, valueKey: string, value: BytesLike], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeBytes32(string,string,bytes32[])" + ): TypedContractMethod< + [objectKey: string, valueKey: string, values: BytesLike[]], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeBytes32(string,string,bytes32)" + ): TypedContractMethod< + [objectKey: string, valueKey: string, value: BytesLike], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeInt(string,string,int256)" + ): TypedContractMethod< + [objectKey: string, valueKey: string, value: BigNumberish], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeInt(string,string,int256[])" + ): TypedContractMethod< + [objectKey: string, valueKey: string, values: BigNumberish[]], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeJson" + ): TypedContractMethod< + [objectKey: string, value: string], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeJsonType(string,bytes)" + ): TypedContractMethod< + [typeDescription: string, value: BytesLike], + [string], + "view" + >; + getFunction( + nameOrSignature: "serializeJsonType(string,string,string,bytes)" + ): TypedContractMethod< + [ + objectKey: string, + valueKey: string, + typeDescription: string, + value: BytesLike + ], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeString(string,string,string[])" + ): TypedContractMethod< + [objectKey: string, valueKey: string, values: string[]], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeString(string,string,string)" + ): TypedContractMethod< + [objectKey: string, valueKey: string, value: string], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeUint(string,string,uint256)" + ): TypedContractMethod< + [objectKey: string, valueKey: string, value: BigNumberish], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeUint(string,string,uint256[])" + ): TypedContractMethod< + [objectKey: string, valueKey: string, values: BigNumberish[]], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "serializeUintToHex" + ): TypedContractMethod< + [objectKey: string, valueKey: string, value: BigNumberish], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "setEnv" + ): TypedContractMethod<[name: string, value: string], [void], "nonpayable">; + getFunction( + nameOrSignature: "sign(bytes32)" + ): TypedContractMethod< + [digest: BytesLike], + [[bigint, string, string] & { v: bigint; r: string; s: string }], + "view" + >; + getFunction( + nameOrSignature: "sign(address,bytes32)" + ): TypedContractMethod< + [signer: AddressLike, digest: BytesLike], + [[bigint, string, string] & { v: bigint; r: string; s: string }], + "view" + >; + getFunction( + nameOrSignature: "sign((address,uint256,uint256,uint256),bytes32)" + ): TypedContractMethod< + [wallet: VmSafe.WalletStruct, digest: BytesLike], + [[bigint, string, string] & { v: bigint; r: string; s: string }], + "nonpayable" + >; + getFunction( + nameOrSignature: "sign(uint256,bytes32)" + ): TypedContractMethod< + [privateKey: BigNumberish, digest: BytesLike], + [[bigint, string, string] & { v: bigint; r: string; s: string }], + "view" + >; + getFunction( + nameOrSignature: "signCompact((address,uint256,uint256,uint256),bytes32)" + ): TypedContractMethod< + [wallet: VmSafe.WalletStruct, digest: BytesLike], + [[string, string] & { r: string; vs: string }], + "nonpayable" + >; + getFunction( + nameOrSignature: "signCompact(address,bytes32)" + ): TypedContractMethod< + [signer: AddressLike, digest: BytesLike], + [[string, string] & { r: string; vs: string }], + "view" + >; + getFunction( + nameOrSignature: "signCompact(bytes32)" + ): TypedContractMethod< + [digest: BytesLike], + [[string, string] & { r: string; vs: string }], + "view" + >; + getFunction( + nameOrSignature: "signCompact(uint256,bytes32)" + ): TypedContractMethod< + [privateKey: BigNumberish, digest: BytesLike], + [[string, string] & { r: string; vs: string }], + "view" + >; + getFunction( + nameOrSignature: "signP256" + ): TypedContractMethod< + [privateKey: BigNumberish, digest: BytesLike], + [[string, string] & { r: string; s: string }], + "view" + >; + getFunction( + nameOrSignature: "sleep" + ): TypedContractMethod<[duration: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "split" + ): TypedContractMethod< + [input: string, delimiter: string], + [string[]], + "view" + >; + getFunction( + nameOrSignature: "startBroadcast()" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "startBroadcast(address)" + ): TypedContractMethod<[signer: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "startBroadcast(uint256)" + ): TypedContractMethod<[privateKey: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "startMappingRecording" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "startStateDiffRecording" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "stopAndReturnStateDiff" + ): TypedContractMethod< + [], + [VmSafe.AccountAccessStructOutput[]], + "nonpayable" + >; + getFunction( + nameOrSignature: "stopBroadcast" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "stopMappingRecording" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "toBase64(string)" + ): TypedContractMethod<[data: string], [string], "view">; + getFunction( + nameOrSignature: "toBase64(bytes)" + ): TypedContractMethod<[data: BytesLike], [string], "view">; + getFunction( + nameOrSignature: "toBase64URL(string)" + ): TypedContractMethod<[data: string], [string], "view">; + getFunction( + nameOrSignature: "toBase64URL(bytes)" + ): TypedContractMethod<[data: BytesLike], [string], "view">; + getFunction( + nameOrSignature: "toLowercase" + ): TypedContractMethod<[input: string], [string], "view">; + getFunction( + nameOrSignature: "toString(address)" + ): TypedContractMethod<[value: AddressLike], [string], "view">; + getFunction( + nameOrSignature: "toString(uint256)" + ): TypedContractMethod<[value: BigNumberish], [string], "view">; + getFunction( + nameOrSignature: "toString(bytes)" + ): TypedContractMethod<[value: BytesLike], [string], "view">; + getFunction( + nameOrSignature: "toString(bool)" + ): TypedContractMethod<[value: boolean], [string], "view">; + getFunction( + nameOrSignature: "toString(int256)" + ): TypedContractMethod<[value: BigNumberish], [string], "view">; + getFunction( + nameOrSignature: "toString(bytes32)" + ): TypedContractMethod<[value: BytesLike], [string], "view">; + getFunction( + nameOrSignature: "toUppercase" + ): TypedContractMethod<[input: string], [string], "view">; + getFunction( + nameOrSignature: "trim" + ): TypedContractMethod<[input: string], [string], "view">; + getFunction( + nameOrSignature: "tryFfi" + ): TypedContractMethod< + [commandInput: string[]], + [VmSafe.FfiResultStructOutput], + "nonpayable" + >; + getFunction( + nameOrSignature: "unixTime" + ): TypedContractMethod<[], [bigint], "nonpayable">; + getFunction( + nameOrSignature: "writeFile" + ): TypedContractMethod<[path: string, data: string], [void], "nonpayable">; + getFunction( + nameOrSignature: "writeFileBinary" + ): TypedContractMethod<[path: string, data: BytesLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "writeJson(string,string,string)" + ): TypedContractMethod< + [json: string, path: string, valueKey: string], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "writeJson(string,string)" + ): TypedContractMethod<[json: string, path: string], [void], "nonpayable">; + getFunction( + nameOrSignature: "writeLine" + ): TypedContractMethod<[path: string, data: string], [void], "nonpayable">; + getFunction( + nameOrSignature: "writeToml(string,string,string)" + ): TypedContractMethod< + [json: string, path: string, valueKey: string], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "writeToml(string,string)" + ): TypedContractMethod<[json: string, path: string], [void], "nonpayable">; + + filters: {}; +} diff --git a/typechain-types/src/Upgrades.sol/index.ts b/typechain-types/src/Upgrades.sol/index.ts new file mode 100644 index 0000000..0b74e74 --- /dev/null +++ b/typechain-types/src/Upgrades.sol/index.ts @@ -0,0 +1,22 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { Address } from "./Address"; +export type { BeaconProxy } from "./BeaconProxy"; +export type { ERC1967Proxy } from "./ERC1967Proxy"; +export type { ERC1967Utils } from "./ERC1967Utils"; +export type { IBeacon } from "./IBeacon"; +export type { IERC1967 } from "./IERC1967"; +export type { IProxyAdmin } from "./IProxyAdmin"; +export type { ITransparentUpgradeableProxy } from "./ITransparentUpgradeableProxy"; +export type { IUpgradeableBeacon } from "./IUpgradeableBeacon"; +export type { IUpgradeableProxy } from "./IUpgradeableProxy"; +export type { Math } from "./Math"; +export type { Ownable } from "./Ownable"; +export type { Proxy } from "./Proxy"; +export type { ProxyAdmin } from "./ProxyAdmin"; +export type { Strings } from "./Strings"; +export type { TransparentUpgradeableProxy } from "./TransparentUpgradeableProxy"; +export type { UpgradeableBeacon } from "./UpgradeableBeacon"; +export type { Vm } from "./Vm"; +export type { VmSafe } from "./VmSafe"; diff --git a/typechain-types/src/index.ts b/typechain-types/src/index.ts index 9894792..5216086 100644 --- a/typechain-types/src/index.ts +++ b/typechain-types/src/index.ts @@ -1,5 +1,7 @@ /* Autogenerated file. Do not edit manually. */ /* tslint:disable */ /* eslint-disable */ +import type * as upgradesSol from "./Upgrades.sol"; +export type { upgradesSol }; export type { OrganizationRegistry } from "./OrganizationRegistry"; export type { ProcessRegistry } from "./ProcessRegistry";