{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"194:7172:38:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;194:7172:38;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"194:7172:38:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Collection of functions related to the address type\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":\"AddressUpgradeable\"},\"evmVersion\":\"london\",\"libraries\":{\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker\":\"0x4200000000000000000000000000000000000776\"},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":automate/=lib/automate/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":gelato/=lib/automate/contracts/\",\":hardhat/=lib/automate/node_modules/hardhat/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/\",\":prb-test/=lib/automate/lib/prb-test/src/\",\":prb/-est/=lib/automate/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","automate/=lib/automate/contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","gelato/=lib/automate/contracts/","hardhat/=lib/automate/node_modules/hardhat/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/","prb-test/=lib/automate/lib/prb-test/src/","prb/-est/=lib/automate/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":"AddressUpgradeable"},"evmVersion":"london","libraries":{"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker":"0x4200000000000000000000000000000000000776"}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Collection of functions related to the address type"},"ast":{"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol","id":49072,"exportedSymbols":{"AddressUpgradeable":[49071]},"nodeType":"SourceUnit","src":"101:7266:38","nodes":[{"id":48830,"nodeType":"PragmaDirective","src":"101:23:38","nodes":[],"literals":["solidity","^","0.8",".1"]},{"id":49071,"nodeType":"ContractDefinition","src":"194:7172:38","nodes":[{"id":48846,"nodeType":"FunctionDefinition","src":"1186:320:38","nodes":[],"body":{"id":48845,"nodeType":"Block","src":"1252:254:38","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":48843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":48839,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48834,"src":"1476:7:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":48840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"code","nodeType":"MemberAccess","src":"1476:12:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":48841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1476:19:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":48842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1498:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1476:23:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":48838,"id":48844,"nodeType":"Return","src":"1469:30:38"}]},"documentation":{"id":48832,"nodeType":"StructuredDocumentation","src":"227:954:38","text":" @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n  - an externally-owned account\n  - a contract in construction\n  - an address where a contract will be created\n  - an address where a contract lived, but was destroyed\n ====\n [IMPORTANT]\n ====\n You shouldn't rely on `isContract` to protect against flash loan attacks!\n Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\n like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\n constructor.\n ===="},"implemented":true,"kind":"function","modifiers":[],"name":"isContract","nameLocation":"1195:10:38","parameters":{"id":48835,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48834,"mutability":"mutable","name":"account","nameLocation":"1214:7:38","nodeType":"VariableDeclaration","scope":48846,"src":"1206:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48833,"name":"address","nodeType":"ElementaryTypeName","src":"1206:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1205:17:38"},"returnParameters":{"id":48838,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48837,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48846,"src":"1246:4:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48836,"name":"bool","nodeType":"ElementaryTypeName","src":"1246:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1245:6:38"},"scope":49071,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":48880,"nodeType":"FunctionDefinition","src":"2423:312:38","nodes":[],"body":{"id":48879,"nodeType":"Block","src":"2494:241:38","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":48861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":48857,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2520:4:38","typeDescriptions":{"typeIdentifier":"t_contract$_AddressUpgradeable_$49071","typeString":"library AddressUpgradeable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AddressUpgradeable_$49071","typeString":"library AddressUpgradeable"}],"id":48856,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2512:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48855,"name":"address","nodeType":"ElementaryTypeName","src":"2512:7:38","typeDescriptions":{}}},"id":48858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2512:13:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":48859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","src":"2512:21:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":48860,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48851,"src":"2537:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2512:31:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e6365","id":48862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2545:31:38","typeDescriptions":{"typeIdentifier":"t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9","typeString":"literal_string \"Address: insufficient balance\""},"value":"Address: insufficient balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9","typeString":"literal_string \"Address: insufficient balance\""}],"id":48854,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2504:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":48863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2504:73:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48864,"nodeType":"ExpressionStatement","src":"2504:73:38"},{"assignments":[48866,null],"declarations":[{"constant":false,"id":48866,"mutability":"mutable","name":"success","nameLocation":"2594:7:38","nodeType":"VariableDeclaration","scope":48879,"src":"2589:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48865,"name":"bool","nodeType":"ElementaryTypeName","src":"2589:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":48873,"initialValue":{"arguments":[{"hexValue":"","id":48871,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2637:2:38","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":48867,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48849,"src":"2607:9:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":48868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"2607:14:38","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":48870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":48869,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48851,"src":"2629:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2607:29:38","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":48872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2607:33:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2588:52:38"},{"expression":{"arguments":[{"id":48875,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48866,"src":"2658:7:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564","id":48876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2667:60:38","typeDescriptions":{"typeIdentifier":"t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae","typeString":"literal_string \"Address: unable to send value, recipient may have reverted\""},"value":"Address: unable to send value, recipient may have reverted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae","typeString":"literal_string \"Address: unable to send value, recipient may have reverted\""}],"id":48874,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2650:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":48877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2650:78:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48878,"nodeType":"ExpressionStatement","src":"2650:78:38"}]},"documentation":{"id":48847,"nodeType":"StructuredDocumentation","src":"1512:906:38","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://diligence.consensys.net/posts/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.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]."},"implemented":true,"kind":"function","modifiers":[],"name":"sendValue","nameLocation":"2432:9:38","parameters":{"id":48852,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48849,"mutability":"mutable","name":"recipient","nameLocation":"2458:9:38","nodeType":"VariableDeclaration","scope":48880,"src":"2442:25:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":48848,"name":"address","nodeType":"ElementaryTypeName","src":"2442:15:38","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":48851,"mutability":"mutable","name":"amount","nameLocation":"2477:6:38","nodeType":"VariableDeclaration","scope":48880,"src":"2469:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48850,"name":"uint256","nodeType":"ElementaryTypeName","src":"2469:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2441:43:38"},"returnParameters":{"id":48853,"nodeType":"ParameterList","parameters":[],"src":"2494:0:38"},"scope":49071,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48897,"nodeType":"FunctionDefinition","src":"3477:173:38","nodes":[],"body":{"id":48896,"nodeType":"Block","src":"3566:84:38","nodes":[],"statements":[{"expression":{"arguments":[{"id":48891,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48883,"src":"3596:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48892,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48885,"src":"3604:4:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564","id":48893,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3610:32:38","typeDescriptions":{"typeIdentifier":"t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df","typeString":"literal_string \"Address: low-level call failed\""},"value":"Address: low-level call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df","typeString":"literal_string \"Address: low-level call failed\""}],"id":48890,"name":"functionCall","nodeType":"Identifier","overloadedDeclarations":[48897,48917],"referencedDeclaration":48917,"src":"3583:12:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,string memory) returns (bytes memory)"}},"id":48894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3583:60:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":48889,"id":48895,"nodeType":"Return","src":"3576:67:38"}]},"documentation":{"id":48881,"nodeType":"StructuredDocumentation","src":"2741:731:38","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, it is bubbled up by this\n function (like regular Solidity function calls).\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.\n _Available since v3.1._"},"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"3486:12:38","parameters":{"id":48886,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48883,"mutability":"mutable","name":"target","nameLocation":"3507:6:38","nodeType":"VariableDeclaration","scope":48897,"src":"3499:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48882,"name":"address","nodeType":"ElementaryTypeName","src":"3499:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48885,"mutability":"mutable","name":"data","nameLocation":"3528:4:38","nodeType":"VariableDeclaration","scope":48897,"src":"3515:17:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48884,"name":"bytes","nodeType":"ElementaryTypeName","src":"3515:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3498:35:38"},"returnParameters":{"id":48889,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48888,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48897,"src":"3552:12:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48887,"name":"bytes","nodeType":"ElementaryTypeName","src":"3552:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3551:14:38"},"scope":49071,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48917,"nodeType":"FunctionDefinition","src":"3872:223:38","nodes":[],"body":{"id":48916,"nodeType":"Block","src":"4019:76:38","nodes":[],"statements":[{"expression":{"arguments":[{"id":48910,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48900,"src":"4058:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48911,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48902,"src":"4066:4:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":48912,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4072:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":48913,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48904,"src":"4075:12:38","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"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"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":48909,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[48937,48987],"referencedDeclaration":48987,"src":"4036:21:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,string memory) returns (bytes memory)"}},"id":48914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4036:52:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":48908,"id":48915,"nodeType":"Return","src":"4029:59:38"}]},"documentation":{"id":48898,"nodeType":"StructuredDocumentation","src":"3656:211:38","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._"},"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"3881:12:38","parameters":{"id":48905,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48900,"mutability":"mutable","name":"target","nameLocation":"3911:6:38","nodeType":"VariableDeclaration","scope":48917,"src":"3903:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48899,"name":"address","nodeType":"ElementaryTypeName","src":"3903:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48902,"mutability":"mutable","name":"data","nameLocation":"3940:4:38","nodeType":"VariableDeclaration","scope":48917,"src":"3927:17:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48901,"name":"bytes","nodeType":"ElementaryTypeName","src":"3927:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":48904,"mutability":"mutable","name":"errorMessage","nameLocation":"3968:12:38","nodeType":"VariableDeclaration","scope":48917,"src":"3954:26:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":48903,"name":"string","nodeType":"ElementaryTypeName","src":"3954:6:38","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3893:93:38"},"returnParameters":{"id":48908,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48907,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48917,"src":"4005:12:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48906,"name":"bytes","nodeType":"ElementaryTypeName","src":"4005:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4004:14:38"},"scope":49071,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48937,"nodeType":"FunctionDefinition","src":"4457:254:38","nodes":[],"body":{"id":48936,"nodeType":"Block","src":"4600:111:38","nodes":[],"statements":[{"expression":{"arguments":[{"id":48930,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48920,"src":"4639:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48931,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48922,"src":"4647:4:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":48932,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48924,"src":"4653:5:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564","id":48933,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4660:43:38","typeDescriptions":{"typeIdentifier":"t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc","typeString":"literal_string \"Address: low-level call with value failed\""},"value":"Address: low-level call with value failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc","typeString":"literal_string \"Address: low-level call with value failed\""}],"id":48929,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[48937,48987],"referencedDeclaration":48987,"src":"4617:21:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,string memory) returns (bytes memory)"}},"id":48934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4617:87:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":48928,"id":48935,"nodeType":"Return","src":"4610:94:38"}]},"documentation":{"id":48918,"nodeType":"StructuredDocumentation","src":"4101:351:38","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`.\n _Available since v3.1._"},"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"4466:21:38","parameters":{"id":48925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48920,"mutability":"mutable","name":"target","nameLocation":"4505:6:38","nodeType":"VariableDeclaration","scope":48937,"src":"4497:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48919,"name":"address","nodeType":"ElementaryTypeName","src":"4497:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48922,"mutability":"mutable","name":"data","nameLocation":"4534:4:38","nodeType":"VariableDeclaration","scope":48937,"src":"4521:17:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48921,"name":"bytes","nodeType":"ElementaryTypeName","src":"4521:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":48924,"mutability":"mutable","name":"value","nameLocation":"4556:5:38","nodeType":"VariableDeclaration","scope":48937,"src":"4548:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48923,"name":"uint256","nodeType":"ElementaryTypeName","src":"4548:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4487:80:38"},"returnParameters":{"id":48928,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48927,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48937,"src":"4586:12:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48926,"name":"bytes","nodeType":"ElementaryTypeName","src":"4586:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4585:14:38"},"scope":49071,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48987,"nodeType":"FunctionDefinition","src":"4959:499:38","nodes":[],"body":{"id":48986,"nodeType":"Block","src":"5138:320:38","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":48958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":48954,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5164:4:38","typeDescriptions":{"typeIdentifier":"t_contract$_AddressUpgradeable_$49071","typeString":"library AddressUpgradeable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AddressUpgradeable_$49071","typeString":"library AddressUpgradeable"}],"id":48953,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5156:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48952,"name":"address","nodeType":"ElementaryTypeName","src":"5156:7:38","typeDescriptions":{}}},"id":48955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5156:13:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":48956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","src":"5156:21:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":48957,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48944,"src":"5181:5:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5156:30:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c","id":48959,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5188:40:38","typeDescriptions":{"typeIdentifier":"t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c","typeString":"literal_string \"Address: insufficient balance for call\""},"value":"Address: insufficient balance for call"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c","typeString":"literal_string \"Address: insufficient balance for call\""}],"id":48951,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5148:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":48960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5148:81:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48961,"nodeType":"ExpressionStatement","src":"5148:81:38"},{"expression":{"arguments":[{"arguments":[{"id":48964,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48940,"src":"5258:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":48963,"name":"isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48846,"src":"5247:10:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":48965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5247:18:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374","id":48966,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5267:31:38","typeDescriptions":{"typeIdentifier":"t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad","typeString":"literal_string \"Address: call to non-contract\""},"value":"Address: call to non-contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad","typeString":"literal_string \"Address: call to non-contract\""}],"id":48962,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5239:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":48967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5239:60:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48968,"nodeType":"ExpressionStatement","src":"5239:60:38"},{"assignments":[48970,48972],"declarations":[{"constant":false,"id":48970,"mutability":"mutable","name":"success","nameLocation":"5316:7:38","nodeType":"VariableDeclaration","scope":48986,"src":"5311:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48969,"name":"bool","nodeType":"ElementaryTypeName","src":"5311:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":48972,"mutability":"mutable","name":"returndata","nameLocation":"5338:10:38","nodeType":"VariableDeclaration","scope":48986,"src":"5325:23:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48971,"name":"bytes","nodeType":"ElementaryTypeName","src":"5325:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":48979,"initialValue":{"arguments":[{"id":48977,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48942,"src":"5378:4:38","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":48973,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48940,"src":"5352:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":48974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"5352:11:38","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":48976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":48975,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48944,"src":"5371:5:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"5352:25:38","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":48978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5352:31:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"5310:73:38"},{"expression":{"arguments":[{"id":48981,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48970,"src":"5417:7:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":48982,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48972,"src":"5426:10:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":48983,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48946,"src":"5438:12:38","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":48980,"name":"verifyCallResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49070,"src":"5400:16:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bool,bytes memory,string memory) pure returns (bytes memory)"}},"id":48984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5400:51:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":48950,"id":48985,"nodeType":"Return","src":"5393:58:38"}]},"documentation":{"id":48938,"nodeType":"StructuredDocumentation","src":"4717:237:38","text":" @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._"},"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"4968:21:38","parameters":{"id":48947,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48940,"mutability":"mutable","name":"target","nameLocation":"5007:6:38","nodeType":"VariableDeclaration","scope":48987,"src":"4999:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48939,"name":"address","nodeType":"ElementaryTypeName","src":"4999:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48942,"mutability":"mutable","name":"data","nameLocation":"5036:4:38","nodeType":"VariableDeclaration","scope":48987,"src":"5023:17:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48941,"name":"bytes","nodeType":"ElementaryTypeName","src":"5023:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":48944,"mutability":"mutable","name":"value","nameLocation":"5058:5:38","nodeType":"VariableDeclaration","scope":48987,"src":"5050:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48943,"name":"uint256","nodeType":"ElementaryTypeName","src":"5050:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":48946,"mutability":"mutable","name":"errorMessage","nameLocation":"5087:12:38","nodeType":"VariableDeclaration","scope":48987,"src":"5073:26:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":48945,"name":"string","nodeType":"ElementaryTypeName","src":"5073:6:38","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4989:116:38"},"returnParameters":{"id":48950,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48949,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48987,"src":"5124:12:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48948,"name":"bytes","nodeType":"ElementaryTypeName","src":"5124:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5123:14:38"},"scope":49071,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":49004,"nodeType":"FunctionDefinition","src":"5635:197:38","nodes":[],"body":{"id":49003,"nodeType":"Block","src":"5735:97:38","nodes":[],"statements":[{"expression":{"arguments":[{"id":48998,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48990,"src":"5771:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48999,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48992,"src":"5779:4:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564","id":49000,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5785:39:38","typeDescriptions":{"typeIdentifier":"t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0","typeString":"literal_string \"Address: low-level static call failed\""},"value":"Address: low-level static call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0","typeString":"literal_string \"Address: low-level static call failed\""}],"id":48997,"name":"functionStaticCall","nodeType":"Identifier","overloadedDeclarations":[49004,49039],"referencedDeclaration":49039,"src":"5752:18:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,string memory) view returns (bytes memory)"}},"id":49001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5752:73:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":48996,"id":49002,"nodeType":"Return","src":"5745:80:38"}]},"documentation":{"id":48988,"nodeType":"StructuredDocumentation","src":"5464:166:38","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"5644:18:38","parameters":{"id":48993,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48990,"mutability":"mutable","name":"target","nameLocation":"5671:6:38","nodeType":"VariableDeclaration","scope":49004,"src":"5663:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48989,"name":"address","nodeType":"ElementaryTypeName","src":"5663:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48992,"mutability":"mutable","name":"data","nameLocation":"5692:4:38","nodeType":"VariableDeclaration","scope":49004,"src":"5679:17:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48991,"name":"bytes","nodeType":"ElementaryTypeName","src":"5679:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5662:35:38"},"returnParameters":{"id":48996,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48995,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49004,"src":"5721:12:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48994,"name":"bytes","nodeType":"ElementaryTypeName","src":"5721:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5720:14:38"},"scope":49071,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":49039,"nodeType":"FunctionDefinition","src":"6016:386:38","nodes":[],"body":{"id":49038,"nodeType":"Block","src":"6174:228:38","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":49018,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49007,"src":"6203:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":49017,"name":"isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48846,"src":"6192:10:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":49019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6192:18:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a207374617469632063616c6c20746f206e6f6e2d636f6e7472616374","id":49020,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6212:38:38","typeDescriptions":{"typeIdentifier":"t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9","typeString":"literal_string \"Address: static call to non-contract\""},"value":"Address: static call to non-contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9","typeString":"literal_string \"Address: static call to non-contract\""}],"id":49016,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6184:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":49021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6184:67:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49022,"nodeType":"ExpressionStatement","src":"6184:67:38"},{"assignments":[49024,49026],"declarations":[{"constant":false,"id":49024,"mutability":"mutable","name":"success","nameLocation":"6268:7:38","nodeType":"VariableDeclaration","scope":49038,"src":"6263:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":49023,"name":"bool","nodeType":"ElementaryTypeName","src":"6263:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":49026,"mutability":"mutable","name":"returndata","nameLocation":"6290:10:38","nodeType":"VariableDeclaration","scope":49038,"src":"6277:23:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":49025,"name":"bytes","nodeType":"ElementaryTypeName","src":"6277:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":49031,"initialValue":{"arguments":[{"id":49029,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49009,"src":"6322:4:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":49027,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49007,"src":"6304:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":49028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"staticcall","nodeType":"MemberAccess","src":"6304:17:38","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":49030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6304:23:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6262:65:38"},{"expression":{"arguments":[{"id":49033,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49024,"src":"6361:7:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":49034,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49026,"src":"6370:10:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":49035,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49011,"src":"6382:12:38","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":49032,"name":"verifyCallResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49070,"src":"6344:16:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bool,bytes memory,string memory) pure returns (bytes memory)"}},"id":49036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6344:51:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":49015,"id":49037,"nodeType":"Return","src":"6337:58:38"}]},"documentation":{"id":49005,"nodeType":"StructuredDocumentation","src":"5838:173:38","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"6025:18:38","parameters":{"id":49012,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49007,"mutability":"mutable","name":"target","nameLocation":"6061:6:38","nodeType":"VariableDeclaration","scope":49039,"src":"6053:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49006,"name":"address","nodeType":"ElementaryTypeName","src":"6053:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":49009,"mutability":"mutable","name":"data","nameLocation":"6090:4:38","nodeType":"VariableDeclaration","scope":49039,"src":"6077:17:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":49008,"name":"bytes","nodeType":"ElementaryTypeName","src":"6077:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":49011,"mutability":"mutable","name":"errorMessage","nameLocation":"6118:12:38","nodeType":"VariableDeclaration","scope":49039,"src":"6104:26:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":49010,"name":"string","nodeType":"ElementaryTypeName","src":"6104:6:38","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6043:93:38"},"returnParameters":{"id":49015,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49014,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49039,"src":"6160:12:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":49013,"name":"bytes","nodeType":"ElementaryTypeName","src":"6160:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6159:14:38"},"scope":49071,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":49070,"nodeType":"FunctionDefinition","src":"6622:742:38","nodes":[],"body":{"id":49069,"nodeType":"Block","src":"6782:582:38","nodes":[],"statements":[{"condition":{"id":49051,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49042,"src":"6796:7:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":49067,"nodeType":"Block","src":"6853:505:38","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":49055,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49044,"src":"6937:10:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":49056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"6937:17:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":49057,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6957:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6937:21:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":49065,"nodeType":"Block","src":"7295:53:38","statements":[{"expression":{"arguments":[{"id":49062,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49046,"src":"7320:12:38","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":49061,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"7313:6:38","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":49063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7313:20:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49064,"nodeType":"ExpressionStatement","src":"7313:20:38"}]},"id":49066,"nodeType":"IfStatement","src":"6933:415:38","trueBody":{"id":49060,"nodeType":"Block","src":"6960:329:38","statements":[{"AST":{"nodeType":"YulBlock","src":"7130:145:38","statements":[{"nodeType":"YulVariableDeclaration","src":"7152:40:38","value":{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"7181:10:38"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7175:5:38"},"nodeType":"YulFunctionCall","src":"7175:17:38"},"variables":[{"name":"returndata_size","nodeType":"YulTypedName","src":"7156:15:38","type":""}]},{"expression":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7224:2:38","type":"","value":"32"},{"name":"returndata","nodeType":"YulIdentifier","src":"7228:10:38"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7220:3:38"},"nodeType":"YulFunctionCall","src":"7220:19:38"},{"name":"returndata_size","nodeType":"YulIdentifier","src":"7241:15:38"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7213:6:38"},"nodeType":"YulFunctionCall","src":"7213:44:38"},"nodeType":"YulExpressionStatement","src":"7213:44:38"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":49044,"isOffset":false,"isSlot":false,"src":"7181:10:38","valueSize":1},{"declaration":49044,"isOffset":false,"isSlot":false,"src":"7228:10:38","valueSize":1}],"id":49059,"nodeType":"InlineAssembly","src":"7121:154:38"}]}}]},"id":49068,"nodeType":"IfStatement","src":"6792:566:38","trueBody":{"id":49054,"nodeType":"Block","src":"6805:42:38","statements":[{"expression":{"id":49052,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49044,"src":"6826:10:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":49050,"id":49053,"nodeType":"Return","src":"6819:17:38"}]}}]},"documentation":{"id":49040,"nodeType":"StructuredDocumentation","src":"6408:209:38","text":" @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the\n revert reason using the provided one.\n _Available since v4.3._"},"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResult","nameLocation":"6631:16:38","parameters":{"id":49047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49042,"mutability":"mutable","name":"success","nameLocation":"6662:7:38","nodeType":"VariableDeclaration","scope":49070,"src":"6657:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":49041,"name":"bool","nodeType":"ElementaryTypeName","src":"6657:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":49044,"mutability":"mutable","name":"returndata","nameLocation":"6692:10:38","nodeType":"VariableDeclaration","scope":49070,"src":"6679:23:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":49043,"name":"bytes","nodeType":"ElementaryTypeName","src":"6679:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":49046,"mutability":"mutable","name":"errorMessage","nameLocation":"6726:12:38","nodeType":"VariableDeclaration","scope":49070,"src":"6712:26:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":49045,"name":"string","nodeType":"ElementaryTypeName","src":"6712:6:38","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6647:97:38"},"returnParameters":{"id":49050,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49049,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49070,"src":"6768:12:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":49048,"name":"bytes","nodeType":"ElementaryTypeName","src":"6768:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6767:14:38"},"scope":49071,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"AddressUpgradeable","contractDependencies":[],"contractKind":"library","documentation":{"id":48831,"nodeType":"StructuredDocumentation","src":"126:67:38","text":" @dev Collection of functions related to the address type"},"fullyImplemented":true,"linearizedBaseContracts":[49071],"name":"AddressUpgradeable","nameLocation":"202:18:38","scope":49072,"usedErrors":[]}],"license":"MIT"},"id":38}